From 56536bbfd20e0eccb87ec1728741996439c89d64 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Wed, 31 Oct 2018 11:31:15 +0100 Subject: [PATCH] Not throwing exception when pom is missing' --- .../cloud/release/internal/pom/PomReader.java | 3 +++ .../cloud/release/internal/pom/PomUpdater.java | 4 ++++ .../cloud/release/internal/pom/PomReaderTests.java | 6 ++---- .../cloud/release/internal/pom/PomUpdaterTests.java | 8 ++++++++ .../projects/spring-cloud-sleuth/empty-folder/.gitkeep | 0 5 files changed, 17 insertions(+), 4 deletions(-) create mode 100644 spring-cloud-release-tools-core/src/test/resources/projects/spring-cloud-sleuth/empty-folder/.gitkeep diff --git a/spring-cloud-release-tools-core/src/main/java/org/springframework/cloud/release/internal/pom/PomReader.java b/spring-cloud-release-tools-core/src/main/java/org/springframework/cloud/release/internal/pom/PomReader.java index 9ac343d8..594aaae5 100644 --- a/spring-cloud-release-tools-core/src/main/java/org/springframework/cloud/release/internal/pom/PomReader.java +++ b/spring-cloud-release-tools-core/src/main/java/org/springframework/cloud/release/internal/pom/PomReader.java @@ -38,6 +38,9 @@ class PomReader { if (file.isDirectory()) { pom = new File(file,"pom.xml"); } + if (!pom.exists()) { + return null; + } String fileText = ""; try(Reader reader = new FileReader(pom)) { if (file.isFile()) { diff --git a/spring-cloud-release-tools-core/src/main/java/org/springframework/cloud/release/internal/pom/PomUpdater.java b/spring-cloud-release-tools-core/src/main/java/org/springframework/cloud/release/internal/pom/PomUpdater.java index bfeccea7..ab53c452 100644 --- a/spring-cloud-release-tools-core/src/main/java/org/springframework/cloud/release/internal/pom/PomUpdater.java +++ b/spring-cloud-release-tools-core/src/main/java/org/springframework/cloud/release/internal/pom/PomUpdater.java @@ -68,6 +68,10 @@ class PomUpdater { return false; } Model model = this.pomReader.readPom(rootPom); + if (model == null) { + log.info("Failed to read the model"); + return false; + } 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()); diff --git a/spring-cloud-release-tools-core/src/test/java/org/springframework/cloud/release/internal/pom/PomReaderTests.java b/spring-cloud-release-tools-core/src/test/java/org/springframework/cloud/release/internal/pom/PomReaderTests.java index d4a1ee19..e59ec2d4 100644 --- a/spring-cloud-release-tools-core/src/test/java/org/springframework/cloud/release/internal/pom/PomReaderTests.java +++ b/spring-cloud-release-tools-core/src/test/java/org/springframework/cloud/release/internal/pom/PomReaderTests.java @@ -68,10 +68,8 @@ public class PomReaderTests { } @Test - public void should_throw_exception_when_file_is_missing() { - thenThrownBy(() -> this.pomReader.readPom(new File("foo/bar"))) - .hasMessageStartingWith("Failed to read file: ") - .hasCauseInstanceOf(IOException.class); + public void should_return_null_when_file_is_missing() { + then(this.pomReader.readPom(new File("foo/bar"))).isNull(); } @Test diff --git a/spring-cloud-release-tools-core/src/test/java/org/springframework/cloud/release/internal/pom/PomUpdaterTests.java b/spring-cloud-release-tools-core/src/test/java/org/springframework/cloud/release/internal/pom/PomUpdaterTests.java index 53c117b2..dc1e38a5 100644 --- a/spring-cloud-release-tools-core/src/test/java/org/springframework/cloud/release/internal/pom/PomUpdaterTests.java +++ b/spring-cloud-release-tools-core/src/test/java/org/springframework/cloud/release/internal/pom/PomUpdaterTests.java @@ -81,6 +81,14 @@ public class PomUpdaterTests { .then(this.pomUpdater.shouldProjectBeUpdated(springCloudSleuthPom, this.versions)).isTrue(); } + @Test + public void should_not_update_pom_when_project_is_on_the_versions_list_but_there_is_no_pom() throws Exception { + File springCloudSleuthPom = file("/projects/spring-cloud-sleuth/empty-folder"); + + BDDAssertions + .then(this.pomUpdater.shouldProjectBeUpdated(springCloudSleuthPom, this.versions)).isFalse(); + } + @Test public void should_not_update_the_pom_if_no_changes_were_made() throws Exception { File originalPom = pom("/projects/project"); diff --git a/spring-cloud-release-tools-core/src/test/resources/projects/spring-cloud-sleuth/empty-folder/.gitkeep b/spring-cloud-release-tools-core/src/test/resources/projects/spring-cloud-sleuth/empty-folder/.gitkeep new file mode 100644 index 00000000..e69de29b