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