Revise repository declarations handling.
We now rewrite the <repositories> section of each parent pom to leave the milestone repo for milestone releases, remove all repositories if the release is a GA or service release and put both repositories back after a release. Closes #39
This commit is contained in:
@@ -21,9 +21,8 @@ import java.io.InputStream;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
|
||||
import org.springframework.data.release.build.Pom.RepositoryElementFactory;
|
||||
import org.xmlbeam.XBProjector;
|
||||
|
||||
/**
|
||||
@@ -49,4 +48,34 @@ class MavenBuildSystemUnitTests {
|
||||
.endsWith(IOUtils.LINE_SEPARATOR);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldRemoveRepositories() throws Exception {
|
||||
|
||||
ClassPathResource resource = new ClassPathResource("sample-pom.xml");
|
||||
|
||||
try (InputStream is = resource.getInputStream()) {
|
||||
|
||||
byte[] bytes = MavenBuildSystem.doWithProjection(projector, is, Pom.class, Pom::deleteRepositories);
|
||||
|
||||
assertThat(new String(bytes)).contains("<repositories>").doesNotContain("<repository>");
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldAddRepositories() throws Exception {
|
||||
|
||||
ClassPathResource resource = new ClassPathResource("sample-pom.xml");
|
||||
|
||||
try (InputStream is = resource.getInputStream()) {
|
||||
|
||||
byte[] bytes = MavenBuildSystem.doWithProjection(projector, is, Pom.class, pom -> {
|
||||
pom.deleteRepositories();
|
||||
pom.setRepositories(RepositoryElementFactory.of(Repository.SNAPSHOT, Repository.MILESTONE));
|
||||
});
|
||||
|
||||
assertThat(new String(bytes)).containsSubsequence("repositories", "<id>spring-snapshot</id>", "<snapshots>",
|
||||
"<enabled>true</enabled>", "<releases>", "<enabled>false</enabled>", "spring-milestone");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,11 +17,8 @@ package org.springframework.data.release.build;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.assertj.core.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.data.release.model.Iteration;
|
||||
import org.springframework.data.release.model.Phase;
|
||||
import org.springframework.data.release.model.Projects;
|
||||
@@ -48,22 +45,6 @@ class UpdateInformationUnitTests {
|
||||
Assertions.assertThatIllegalArgumentException().isThrownBy(() -> UpdateInformation.of(hopperM1, null));
|
||||
}
|
||||
|
||||
@Test
|
||||
void exposesMilestoneRepositoryForMilestone() {
|
||||
assertThat(UpdateInformation.of(hopperM1, Phase.PREPARE).getRepository().getId())
|
||||
.isEqualTo("spring-libs-milestone");
|
||||
}
|
||||
|
||||
@Test
|
||||
void exposesReleaseRepositoryForGA() {
|
||||
|
||||
Arrays.asList(Iteration.GA, Iteration.SR1).forEach(iteration -> {
|
||||
TrainIteration trainIteration = new TrainIteration(ReleaseTrains.HOPPER, iteration);
|
||||
assertThat(UpdateInformation.of(trainIteration, Phase.PREPARE).getRepository().getId())
|
||||
.isEqualTo("spring-libs-release");
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
void calculatesProjectVersionToSetCorrectly() {
|
||||
|
||||
@@ -74,6 +55,32 @@ class UpdateInformationUnitTests {
|
||||
assertThat(updateInformation.getProjectVersionToSet(Projects.JPA).toString()).isEqualTo("1.10.0.BUILD-SNAPSHOT");
|
||||
}
|
||||
|
||||
@Test
|
||||
void milestoneReposContainedForMilestoneRelease() {
|
||||
|
||||
UpdateInformation updateInformation = UpdateInformation.of(hopperM1, Phase.PREPARE);
|
||||
|
||||
assertThat(updateInformation.getRepositories()).containsOnly(Repository.MILESTONE);
|
||||
}
|
||||
|
||||
@Test
|
||||
void noReposContainedForGaRelease() {
|
||||
|
||||
UpdateInformation updateInformation = UpdateInformation.of(new TrainIteration(ReleaseTrains.HOPPER, Iteration.GA),
|
||||
Phase.PREPARE);
|
||||
|
||||
assertThat(updateInformation.getRepositories()).isEmpty();
|
||||
}
|
||||
|
||||
@Test
|
||||
void cleanupSetsMilestoneAndSnapshotRepos() {
|
||||
|
||||
UpdateInformation updateInformation = UpdateInformation.of(new TrainIteration(ReleaseTrains.HOPPER, Iteration.GA),
|
||||
Phase.CLEANUP);
|
||||
|
||||
assertThat(updateInformation.getRepositories()).contains(Repository.MILESTONE, Repository.SNAPSHOT);
|
||||
}
|
||||
|
||||
@Test // #155
|
||||
void calculatesProjectCalverVersionToSetCorrectly() {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user