From 49f6c77f3d986fcb4a2b069788ea6e67b87d6bbd Mon Sep 17 00:00:00 2001 From: Mohammed inane Date: Mon, 15 Apr 2024 17:12:33 +0200 Subject: [PATCH] Revise repository addition logic for snapshot versions --- ...ootVersionRepositoriesBuildCustomizer.java | 4 +++ ...rsionRepositoriesBuildCustomizerTests.java | 27 ++++++++++++++++--- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/initializr-generator-spring/src/main/java/io/spring/initializr/generator/spring/build/SpringBootVersionRepositoriesBuildCustomizer.java b/initializr-generator-spring/src/main/java/io/spring/initializr/generator/spring/build/SpringBootVersionRepositoriesBuildCustomizer.java index 19c996d425..eb94874d73 100644 --- a/initializr-generator-spring/src/main/java/io/spring/initializr/generator/spring/build/SpringBootVersionRepositoriesBuildCustomizer.java +++ b/initializr-generator-spring/src/main/java/io/spring/initializr/generator/spring/build/SpringBootVersionRepositoriesBuildCustomizer.java @@ -51,8 +51,12 @@ public void customize(Build build) { build.repositories().add("maven-central"); if (this.springBootVersion.getQualifier() != null) { String qualifier = this.springBootVersion.getQualifier().getId(); + Integer patch = this.springBootVersion.getPatch(); if (!qualifier.equals("RELEASE")) { if (qualifier.contains("SNAPSHOT")) { + if (patch == 0) { + addMilestoneRepository(build); + } addSnapshotRepository(build); } else { diff --git a/initializr-generator-spring/src/test/java/io/spring/initializr/generator/spring/build/SpringBootVersionRepositoriesBuildCustomizerTests.java b/initializr-generator-spring/src/test/java/io/spring/initializr/generator/spring/build/SpringBootVersionRepositoriesBuildCustomizerTests.java index 21f39719d6..63cb31b8b0 100644 --- a/initializr-generator-spring/src/test/java/io/spring/initializr/generator/spring/build/SpringBootVersionRepositoriesBuildCustomizerTests.java +++ b/initializr-generator-spring/src/test/java/io/spring/initializr/generator/spring/build/SpringBootVersionRepositoriesBuildCustomizerTests.java @@ -79,17 +79,38 @@ void addMavenCentralAndMilestonesWhenUsingSemVerReleaseCandidate() { void addMavenCentralAndNonReleaseWhenUsingSnapshot() { MavenBuild build = new MavenBuild(); new SpringBootVersionRepositoriesBuildCustomizer(Version.parse("2.1.0.BUILD-SNAPSHOT")).customize(build); - assertNonReleaseRepositories(build); + assertNonReleaseRepositoriesWhenPatchIsZero(build); } @Test void addMavenCentralAndNonReleaseWhenUsingSemVerSnapshot() { MavenBuild build = new MavenBuild(); new SpringBootVersionRepositoriesBuildCustomizer(Version.parse("2.1.0-SNAPSHOT")).customize(build); - assertNonReleaseRepositories(build); + assertNonReleaseRepositoriesWhenPatchIsZero(build); } - private void assertNonReleaseRepositories(MavenBuild build) { + @Test + void addMavenCentralAndNonReleaseWhenUsingSemVerSnapshotAndPatchDifferentToZero() { + MavenBuild build = new MavenBuild(); + new SpringBootVersionRepositoriesBuildCustomizer(Version.parse("2.1.1-SNAPSHOT")).customize(build); + assertNonReleaseRepositoriesWhenPatchIsDifferentToZero(build); + } + + private void assertNonReleaseRepositoriesWhenPatchIsZero(MavenBuild build) { + List repositories = build.repositories().items().collect(Collectors.toList()); + assertThat(repositories).hasSize(3); + assertThat(repositories.get(0)).isEqualTo(MavenRepository.MAVEN_CENTRAL); + assertThat(repositories.get(1)).hasFieldOrPropertyWithValue("id", "spring-milestones") + .hasFieldOrPropertyWithValue("name", "Spring Milestones") + .hasFieldOrPropertyWithValue("url", "https://repo.spring.io/milestone") + .hasFieldOrPropertyWithValue("snapshotsEnabled", false); + assertThat(repositories.get(2)).hasFieldOrPropertyWithValue("id", "spring-snapshots") + .hasFieldOrPropertyWithValue("name", "Spring Snapshots") + .hasFieldOrPropertyWithValue("url", "https://repo.spring.io/snapshot") + .hasFieldOrPropertyWithValue("snapshotsEnabled", true); + } + + private void assertNonReleaseRepositoriesWhenPatchIsDifferentToZero(MavenBuild build) { List repositories = build.repositories().items().collect(Collectors.toList()); assertThat(repositories).hasSize(2); assertThat(repositories.get(0)).isEqualTo(MavenRepository.MAVEN_CENTRAL);