From 50a4155d1cc955334fb683a850b20ea22f7a289d Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Wed, 4 Mar 2020 13:15:13 +0100 Subject: [PATCH] Fixes properties update for Gradle --- .../main/java/releaser/internal/Releaser.java | 6 ++++-- .../internal/buildsystem/GradleUpdater.java | 20 ++++++++----------- .../postrelease/PostReleaseActions.java | 10 ++++++++-- .../internal/gradle/GradleUpdaterTests.java | 6 +++--- .../postrelease/PostReleaseActionsTests.java | 5 +++-- .../spring/ReleaserConfiguration.java | 4 ++-- 6 files changed, 28 insertions(+), 23 deletions(-) diff --git a/releaser-core/src/main/java/releaser/internal/Releaser.java b/releaser-core/src/main/java/releaser/internal/Releaser.java index 0c151989..1bf84860 100644 --- a/releaser-core/src/main/java/releaser/internal/Releaser.java +++ b/releaser-core/src/main/java/releaser/internal/Releaser.java @@ -109,10 +109,12 @@ public class Releaser { private ExecutionResult updateProjectFromBom(File project, Projects versions, ProjectVersion versionFromBom, boolean assertSnapshots) { log.info("Will update the project with versions [{}]", versions); + ReleaserProperties updatedProperties = new ReleaserPropertiesUpdater() + .updateProperties(this.releaserProperties, project); this.projectPomUpdater.updateProjectFromReleaseTrain(project, versions, versionFromBom, assertSnapshots); - this.gradleUpdater.updateProjectFromReleaseTrain(project, versions, - versionFromBom, assertSnapshots); + this.gradleUpdater.updateProjectFromReleaseTrain(updatedProperties, project, + versions, versionFromBom, assertSnapshots); ProjectVersion changedVersion = new ProjectVersion(project); log.info("\n\nProject was successfully updated to [{}]", changedVersion.version); return ExecutionResult.success(); diff --git a/releaser-core/src/main/java/releaser/internal/buildsystem/GradleUpdater.java b/releaser-core/src/main/java/releaser/internal/buildsystem/GradleUpdater.java index de4c3f39..0db4ca0a 100644 --- a/releaser-core/src/main/java/releaser/internal/buildsystem/GradleUpdater.java +++ b/releaser-core/src/main/java/releaser/internal/buildsystem/GradleUpdater.java @@ -45,12 +45,6 @@ public class GradleUpdater { private static final Logger log = LoggerFactory.getLogger(GradleUpdater.class); - private final ReleaserProperties properties; - - public GradleUpdater(ReleaserProperties properties) { - this.properties = properties; - } - /** * For the given root folder (typically the working directory) performs the whole flow * of updating {@code gradle.properties} with values from BOM project. Remember to @@ -61,16 +55,18 @@ public class GradleUpdater { * @param versionFromBom - version for the project from Spring Cloud Release * @param assertVersions - should snapshots / milestone / rc presence be asserted */ - public void updateProjectFromReleaseTrain(File projectRoot, Projects projects, - ProjectVersion versionFromBom, boolean assertVersions) { - processAllGradleProps(projectRoot, projects, versionFromBom, assertVersions); + public void updateProjectFromReleaseTrain(ReleaserProperties properties, + File projectRoot, Projects projects, ProjectVersion versionFromBom, + boolean assertVersions) { + processAllGradleProps(properties, projectRoot, projects, versionFromBom, + assertVersions); } - private void processAllGradleProps(File projectRoot, Projects projects, - ProjectVersion versionFromBom, boolean assertVersions) { + private void processAllGradleProps(ReleaserProperties properties, File projectRoot, + Projects projects, ProjectVersion versionFromBom, boolean assertVersions) { try { Files.walkFileTree(projectRoot.toPath(), new GradlePropertiesWalker( - this.properties, projects, versionFromBom, assertVersions)); + properties, projects, versionFromBom, assertVersions)); } catch (IOException e) { throw new IllegalStateException(e); diff --git a/releaser-core/src/main/java/releaser/internal/postrelease/PostReleaseActions.java b/releaser-core/src/main/java/releaser/internal/postrelease/PostReleaseActions.java index 1058b82d..a68e7ff8 100644 --- a/releaser-core/src/main/java/releaser/internal/postrelease/PostReleaseActions.java +++ b/releaser-core/src/main/java/releaser/internal/postrelease/PostReleaseActions.java @@ -248,6 +248,11 @@ public class PostReleaseActions implements Closeable { this.projectGitHandler.pushCurrentBranch(file); } + private ReleaserProperties updatedProperties(File file) { + ReleaserPropertiesUpdater updater = new ReleaserPropertiesUpdater(); + return updater.updateProperties(this.properties, file); + } + private ProjectVersion newProjectVersion(File file) { try { return new ProjectVersion(file); @@ -265,10 +270,11 @@ public class PostReleaseActions implements Closeable { } private void updateWithVersions(File file, Projects newPostRelease) { + ReleaserProperties updatedProperties = updatedProperties(file); this.projectPomUpdater.updateProjectFromReleaseTrain(file, newPostRelease, newProjectVersion(file), false); - this.gradleUpdater.updateProjectFromReleaseTrain(file, newPostRelease, - newProjectVersion(file), false); + this.gradleUpdater.updateProjectFromReleaseTrain(updatedProperties, file, + newPostRelease, newProjectVersion(file), false); } private ProjectAndFuture run(String key, String url, Runnable runnable) { diff --git a/releaser-core/src/test/java/releaser/internal/gradle/GradleUpdaterTests.java b/releaser-core/src/test/java/releaser/internal/gradle/GradleUpdaterTests.java index f3e2c24e..503590a4 100644 --- a/releaser-core/src/test/java/releaser/internal/gradle/GradleUpdaterTests.java +++ b/releaser-core/src/test/java/releaser/internal/gradle/GradleUpdaterTests.java @@ -68,8 +68,8 @@ public class GradleUpdaterTests { new ProjectVersion("spring-cloud-contract", "1.0.0"), new ProjectVersion("spring-cloud-sleuth", "2.0.0")); - new GradleUpdater(properties).updateProjectFromReleaseTrain(projectRoot, projects, - new ProjectVersion("spring-cloud-contract", "1.0.0"), true); + new GradleUpdater().updateProjectFromReleaseTrain(properties, projectRoot, + projects, new ProjectVersion("spring-cloud-contract", "1.0.0"), true); then(asString(tmpFile("gradleproject/gradle.properties"))).contains("foo=1.0.0"); then(asString(tmpFile("gradleproject/child/gradle.properties"))) @@ -91,7 +91,7 @@ public class GradleUpdaterTests { new ProjectVersion("spring-cloud-contract", "1.0.0.BUILD-SNAPSHOT"), new ProjectVersion("spring-cloud-sleuth", "2.0.0")); - thenThrownBy(() -> new GradleUpdater(properties).updateProjectFromReleaseTrain( + thenThrownBy(() -> new GradleUpdater().updateProjectFromReleaseTrain(properties, projectRoot, projects, new ProjectVersion("spring-cloud-contract", "1.0.0.RELEASE"), true)) .hasMessageContaining( diff --git a/releaser-core/src/test/java/releaser/internal/postrelease/PostReleaseActionsTests.java b/releaser-core/src/test/java/releaser/internal/postrelease/PostReleaseActionsTests.java index 57fe7d49..1c8cbb46 100644 --- a/releaser-core/src/test/java/releaser/internal/postrelease/PostReleaseActionsTests.java +++ b/releaser-core/src/test/java/releaser/internal/postrelease/PostReleaseActionsTests.java @@ -177,8 +177,9 @@ public class PostReleaseActionsTests { private void thenGradleUpdaterWasCalled() { BDDMockito.then(this.gradleUpdater).should().updateProjectFromReleaseTrain( - BDDMockito.any(File.class), BDDMockito.any(Projects.class), - BDDMockito.any(ProjectVersion.class), BDDMockito.eq(false)); + BDDMockito.any(ReleaserProperties.class), BDDMockito.any(File.class), + BDDMockito.any(Projects.class), BDDMockito.any(ProjectVersion.class), + BDDMockito.eq(false)); } @Test diff --git a/releaser-spring/src/main/java/releaser/internal/spring/ReleaserConfiguration.java b/releaser-spring/src/main/java/releaser/internal/spring/ReleaserConfiguration.java index b30fecd8..d93aee81 100644 --- a/releaser-spring/src/main/java/releaser/internal/spring/ReleaserConfiguration.java +++ b/releaser-spring/src/main/java/releaser/internal/spring/ReleaserConfiguration.java @@ -124,8 +124,8 @@ class ReleaserConfiguration { @Bean @ConditionalOnMissingBean - GradleUpdater gradleUpdater(ReleaserProperties properties) { - return new GradleUpdater(properties); + GradleUpdater gradleUpdater() { + return new GradleUpdater(); } @Bean