Fixes properties update for Gradle

This commit is contained in:
Marcin Grzejszczak
2020-03-04 13:15:13 +01:00
parent 9f32851fb7
commit 50a4155d1c
6 changed files with 28 additions and 23 deletions

View File

@@ -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();

View File

@@ -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);

View File

@@ -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) {

View File

@@ -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(

View File

@@ -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

View File

@@ -124,8 +124,8 @@ class ReleaserConfiguration {
@Bean
@ConditionalOnMissingBean
GradleUpdater gradleUpdater(ReleaserProperties properties) {
return new GradleUpdater(properties);
GradleUpdater gradleUpdater() {
return new GradleUpdater();
}
@Bean