diff --git a/releaser-core/pom.xml b/releaser-core/pom.xml index 7040c0d4..b0477972 100644 --- a/releaser-core/pom.xml +++ b/releaser-core/pom.xml @@ -51,6 +51,10 @@ org.slf4j jcl-over-slf4j + + org.slf4j + slf4j-nop + diff --git a/releaser-core/src/main/java/org/springframework/cloud/release/internal/PomUpdater.java b/releaser-core/src/main/java/org/springframework/cloud/release/internal/PomUpdater.java index 8d062e12..934ab8c2 100644 --- a/releaser-core/src/main/java/org/springframework/cloud/release/internal/PomUpdater.java +++ b/releaser-core/src/main/java/org/springframework/cloud/release/internal/PomUpdater.java @@ -57,9 +57,10 @@ class PomUpdater { * @return {@code true} if the project is on the list of projects to be updated */ boolean shouldProjectBeUpdated(File rootFolder, Versions versions) { - File rootPom = new File(rootFolder, "pom.xml"); + File rootPom = rootPom(rootFolder); Model model = this.pomReader.readPom(rootPom); - if (!versions.shouldBeUpdated(model.getArtifactId())) { + String artifactId = artifactId(model); + if (!versions.shouldBeUpdated(artifactId)) { log.info("Skipping project [{}] since it's not on the list of projects to update", model.getArtifactId()); return false; } @@ -67,6 +68,21 @@ class PomUpdater { return true; } + private File rootPom(File rootFolder) { + if (rootFolder.getName().endsWith(".xml")) { + return rootFolder; + } + return new File(rootFolder, "pom.xml"); + } + + private String artifactId(Model model) { + boolean parent = model.getArtifactId().endsWith("-parent"); + if (!parent) { + return model.getArtifactId(); + } + return model.getArtifactId().substring(0, model.getArtifactId().indexOf("-parent")); + } + ModelWrapper readModel(File pom) { return new ModelWrapper(this.pomReader.readPom(pom)); } diff --git a/releaser-core/src/test/java/org/springframework/cloud/release/internal/PomUpdaterTests.java b/releaser-core/src/test/java/org/springframework/cloud/release/internal/PomUpdaterTests.java index 2bd74fdb..2b928408 100644 --- a/releaser-core/src/test/java/org/springframework/cloud/release/internal/PomUpdaterTests.java +++ b/releaser-core/src/test/java/org/springframework/cloud/release/internal/PomUpdaterTests.java @@ -54,6 +54,20 @@ public class PomUpdaterTests { then(this.pomUpdater.shouldProjectBeUpdated(springCloudReleasePom, this.versions)).isFalse(); } + @Test + public void should_not_update_pom_when_project_with_parent_suffix_is_not_on_the_versions_list() throws Exception { + File springCloud = pom("/projects/project", "pom_with_parent_suffix.xml"); + + then(this.pomUpdater.shouldProjectBeUpdated(springCloud, this.versions)).isFalse(); + } + + @Test + public void should_update_pom_for_project_with_suffix_when_project_is_on_the_versions_list() throws Exception { + File springCloud = pom("/projects/project", "pom_matching_with_parent_suffix.xml"); + + then(this.pomUpdater.shouldProjectBeUpdated(springCloud, this.versions)).isTrue(); + } + @Test public void should_update_pom_when_project_is_not_on_the_versions_list() throws Exception { File springCloudSleuthPom = file("/projects/spring-cloud-sleuth"); diff --git a/releaser-core/src/test/resources/projects/project/pom_matching_with_parent_suffix.xml b/releaser-core/src/test/resources/projects/project/pom_matching_with_parent_suffix.xml new file mode 100644 index 00000000..d6f6628f --- /dev/null +++ b/releaser-core/src/test/resources/projects/project/pom_matching_with_parent_suffix.xml @@ -0,0 +1,41 @@ + + + + + 4.0.0 + + spring-cloud-sleuth-parent + 1.2.0.BUILD-SNAPSHOT + pom + foo + foo + + + parentGroup + parentArtifactId + 1.3.1.BUILD-SNAPSHOT + + + + + + 1.3.1.BUILD-SNAPSHOT + 1.2.0.BUILD-SNAPSHOT + + diff --git a/releaser-core/src/test/resources/projects/project/pom_with_parent_suffix.xml b/releaser-core/src/test/resources/projects/project/pom_with_parent_suffix.xml new file mode 100644 index 00000000..8a4f9248 --- /dev/null +++ b/releaser-core/src/test/resources/projects/project/pom_with_parent_suffix.xml @@ -0,0 +1,41 @@ + + + + + 4.0.0 + + foo-parent + 1.2.0.BUILD-SNAPSHOT + pom + foo + foo + + + parentGroup + parentArtifactId + 1.3.1.BUILD-SNAPSHOT + + + + + + 1.3.1.BUILD-SNAPSHOT + 1.2.0.BUILD-SNAPSHOT + +