From fce69fb473251b1ae1466eaa80345c12c3995c7d Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Sun, 4 Mar 2018 11:03:29 +0100 Subject: [PATCH] Fixed snapshot resolution; fixes gh-79 --- .../cloud/release/internal/gradle/GradleUpdater.java | 6 ++---- .../cloud/release/internal/pom/ProjectPomUpdater.java | 11 +++++++++-- .../release/internal/gradle/GradleUpdaterTests.java | 2 +- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/spring-cloud-release-tools-core/src/main/java/org/springframework/cloud/release/internal/gradle/GradleUpdater.java b/spring-cloud-release-tools-core/src/main/java/org/springframework/cloud/release/internal/gradle/GradleUpdater.java index ce9d3a24..c8a820c6 100644 --- a/spring-cloud-release-tools-core/src/main/java/org/springframework/cloud/release/internal/gradle/GradleUpdater.java +++ b/spring-cloud-release-tools-core/src/main/java/org/springframework/cloud/release/internal/gradle/GradleUpdater.java @@ -65,7 +65,6 @@ public class GradleUpdater { private final ReleaserProperties properties; private final Projects projects; - private final ProjectVersion versionFromScRelease; private final boolean snapshotVersion; private final boolean assertSnapshots; @@ -73,7 +72,6 @@ public class GradleUpdater { ProjectVersion versionFromScRelease, boolean assertSnapshots) { this.properties = properties; this.projects = projects; - this.versionFromScRelease = versionFromScRelease; this.snapshotVersion = !assertSnapshots || versionFromScRelease.isSnapshot(); this.assertSnapshots = assertSnapshots; } @@ -115,9 +113,9 @@ public class GradleUpdater { while (scanner.hasNextLine()) { String line = scanner.nextLine(); lineNumber++; - boolean containsSnapshot = line.contains("BUILD-SNAPSHOT"); + boolean containsSnapshot = line.contains("SNAPSHOT"); if (containsSnapshot) { - throw new IllegalStateException("The file [" + path + "] contains a BUILD-SNAPSHOT " + throw new IllegalStateException("The file [" + path + "] contains a SNAPSHOT " + "version for a non snapshot release in line number [" + lineNumber + "]\n\n" + line); } } diff --git a/spring-cloud-release-tools-core/src/main/java/org/springframework/cloud/release/internal/pom/ProjectPomUpdater.java b/spring-cloud-release-tools-core/src/main/java/org/springframework/cloud/release/internal/pom/ProjectPomUpdater.java index 4f8b3d94..f620734c 100644 --- a/spring-cloud-release-tools-core/src/main/java/org/springframework/cloud/release/internal/pom/ProjectPomUpdater.java +++ b/spring-cloud-release-tools-core/src/main/java/org/springframework/cloud/release/internal/pom/ProjectPomUpdater.java @@ -23,6 +23,8 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.SimpleFileVisitor; import java.nio.file.attribute.BasicFileAttributes; +import java.util.Arrays; +import java.util.List; import java.util.Map; import java.util.Scanner; @@ -38,6 +40,10 @@ import org.springframework.cloud.release.internal.git.ProjectGitHandler; */ public class ProjectPomUpdater { + private static final List IGNORED_SNAPSHOT_LINE_CHECKS = Arrays.asList( + "replace=" + ); + private static final Logger log = LoggerFactory.getLogger(ProjectPomUpdater.class); private final ReleaserProperties properties; @@ -138,9 +144,10 @@ public class ProjectPomUpdater { while (scanner.hasNextLine()) { String line = scanner.nextLine(); lineNumber++; - boolean containsSnapshot = line.contains("BUILD-SNAPSHOT"); + boolean containsSnapshot = line.contains("SNAPSHOT") && + IGNORED_SNAPSHOT_LINE_CHECKS.stream().noneMatch(line::contains); if (containsSnapshot) { - throw new IllegalStateException("The file [" + path + "] contains a BUILD-SNAPSHOT " + throw new IllegalStateException("The file [" + path + "] contains a SNAPSHOT " + "version for a non snapshot release in line number [" + lineNumber + "]\n\n" + line); } } diff --git a/spring-cloud-release-tools-core/src/test/java/org/springframework/cloud/release/internal/gradle/GradleUpdaterTests.java b/spring-cloud-release-tools-core/src/test/java/org/springframework/cloud/release/internal/gradle/GradleUpdaterTests.java index 3439e265..84477f53 100644 --- a/spring-cloud-release-tools-core/src/test/java/org/springframework/cloud/release/internal/gradle/GradleUpdaterTests.java +++ b/spring-cloud-release-tools-core/src/test/java/org/springframework/cloud/release/internal/gradle/GradleUpdaterTests.java @@ -71,7 +71,7 @@ public class GradleUpdaterTests { thenThrownBy(() -> new GradleUpdater(properties).updateProjectFromSCRelease(projectRoot, projects, new ProjectVersion("spring-cloud-contract", "1.0.0"), true)) - .hasMessageContaining("contains a BUILD-SNAPSHOT version for a non snapshot release in line number"); + .hasMessageContaining("contains a SNAPSHOT version for a non snapshot release in line number"); } private File file(String relativePath) throws URISyntaxException {