Updates for new sagain api, s-c-build 3.1 and boot 2.6 (#243)
Updates releaser to use spring cloud build 3.1.0 Transitively uses boot 2.6 Updates releaser to use new Sagan API Fixes gh-196 Fixes gh-194
This commit is contained in:
@@ -35,8 +35,7 @@ public class InitializrSpringCloudInfoService extends SpringCloudRelease {
|
||||
|
||||
private RestTemplate rest;
|
||||
|
||||
public InitializrSpringCloudInfoService(RestTemplate rest, Github github,
|
||||
GithubPomReader reader) {
|
||||
public InitializrSpringCloudInfoService(RestTemplate rest, Github github, GithubPomReader reader) {
|
||||
super(github, reader);
|
||||
this.rest = rest;
|
||||
}
|
||||
@@ -48,17 +47,16 @@ public class InitializrSpringCloudInfoService extends SpringCloudRelease {
|
||||
Map<String, SpringBootAndCloudVersion> cache = new HashMap<>();
|
||||
Map<String, Object> response = rest.getForObject(INITIALIZR_URL, Map.class);
|
||||
if (!response.containsKey("bom-ranges")) {
|
||||
throw new SpringCloudVersionNotFoundException(new InitializrParseException(
|
||||
"bom-ranges key not found in Initializr info endpoint"));
|
||||
throw new SpringCloudVersionNotFoundException(
|
||||
new InitializrParseException("bom-ranges key not found in Initializr info endpoint"));
|
||||
}
|
||||
Map<String, Object> bomRanges = (Map<String, Object>) response.get("bom-ranges");
|
||||
if (!bomRanges.containsKey("spring-cloud")) {
|
||||
throw new SpringCloudVersionNotFoundException(new InitializrParseException(
|
||||
"spring-cloud key not found in Initializr info endpoint"));
|
||||
throw new SpringCloudVersionNotFoundException(
|
||||
new InitializrParseException("spring-cloud key not found in Initializr info endpoint"));
|
||||
}
|
||||
|
||||
Map<String, String> springCloud = (Map<String, String>) bomRanges
|
||||
.get("spring-cloud");
|
||||
Map<String, String> springCloud = (Map<String, String>) bomRanges.get("spring-cloud");
|
||||
for (String key : springCloud.keySet()) {
|
||||
String rangeString = springCloud.get(key);
|
||||
cache.put(key, parseRangeString(rangeString, key));
|
||||
@@ -71,8 +69,7 @@ public class InitializrSpringCloudInfoService extends SpringCloudRelease {
|
||||
throw new SpringCloudVersionNotFoundException(springBootVersion);
|
||||
}
|
||||
|
||||
private SpringBootAndCloudVersion parseRangeString(String rangeString,
|
||||
String springCloudVersion) {
|
||||
private SpringBootAndCloudVersion parseRangeString(String rangeString, String springCloudVersion) {
|
||||
// Example of rangeString Spring Boot >=2.0.0.M3 and <2.0.0.M5
|
||||
String versions = rangeString.substring(13);
|
||||
boolean startVersionInclusive = true;
|
||||
@@ -94,12 +91,11 @@ public class InitializrSpringCloudInfoService extends SpringCloudRelease {
|
||||
cleanedVersions = versions.split(" and <");
|
||||
}
|
||||
if (cleanedVersions.length == 1) {
|
||||
return new SpringBootAndCloudVersion(cleanedVersions[0],
|
||||
startVersionInclusive, "99999.99999.99999.RELEASE",
|
||||
return new SpringBootAndCloudVersion(cleanedVersions[0], startVersionInclusive, "99999.99999.99999.RELEASE",
|
||||
endVersionInclusive, springCloudVersion);
|
||||
}
|
||||
return new SpringBootAndCloudVersion(cleanedVersions[0], startVersionInclusive,
|
||||
cleanedVersions[1], endVersionInclusive, springCloudVersion);
|
||||
return new SpringBootAndCloudVersion(cleanedVersions[0], startVersionInclusive, cleanedVersions[1],
|
||||
endVersionInclusive, springCloudVersion);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -37,8 +37,7 @@ public class SpringBootAndCloudVersion {
|
||||
|
||||
private String springCloudVersion;
|
||||
|
||||
public SpringBootAndCloudVersion(String bootStartVersion,
|
||||
boolean statVersionInclusive, String bootEndVersion,
|
||||
public SpringBootAndCloudVersion(String bootStartVersion, boolean statVersionInclusive, String bootEndVersion,
|
||||
boolean endVersionInclusive, String springCloudVersion) {
|
||||
this.bootEndVersion = bootEndVersion;
|
||||
this.comparableBootEndVersion = new ComparableVersion(bootEndVersion);
|
||||
@@ -80,10 +79,8 @@ public class SpringBootAndCloudVersion {
|
||||
boolean matchesSpringBootVersion(ComparableVersion versionToCheck) {
|
||||
int startVersionComparison = comparableBootStartVersion.compareTo(versionToCheck);
|
||||
int endVersionComparison = versionToCheck.compareTo(comparableBootEndVersion);
|
||||
return ((startVersionInclusive && startVersionComparison == 0)
|
||||
|| startVersionComparison <= -1)
|
||||
&& ((endVersionInclusive && endVersionComparison == 0)
|
||||
|| endVersionComparison <= -1);
|
||||
return ((startVersionInclusive && startVersionComparison == 0) || startVersionComparison <= -1)
|
||||
&& ((endVersionInclusive && endVersionComparison == 0) || endVersionComparison <= -1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -45,8 +45,7 @@ public class SpringCloudInfoApplication {
|
||||
SpringCloudInfoConfigurationProperties properties) {
|
||||
Github github = new RtGithub(properties.getGit().getOauthToken());
|
||||
RestTemplate rest = new RestTemplateBuilder().build();
|
||||
return new InitializrSpringCloudInfoService(rest, github,
|
||||
new GithubPomReader(new MavenXpp3Reader(), rest));
|
||||
return new InitializrSpringCloudInfoService(rest, github, new GithubPomReader(new MavenXpp3Reader(), rest));
|
||||
}
|
||||
|
||||
@Configuration
|
||||
@@ -54,8 +53,7 @@ public class SpringCloudInfoApplication {
|
||||
|
||||
@Override
|
||||
protected void configure(HttpSecurity http) throws Exception {
|
||||
http.authorizeRequests().anyRequest().permitAll().and().httpBasic().disable()
|
||||
.csrf().disable();
|
||||
http.authorizeRequests().anyRequest().permitAll().and().httpBasic().disable().csrf().disable();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -57,8 +57,7 @@ public class SpringCloudInfoRestController {
|
||||
}
|
||||
|
||||
@GetMapping("/bomversions/{bomVersion}")
|
||||
public Map<String, String> bomVersions(@PathVariable String bomVersion)
|
||||
throws IOException {
|
||||
public Map<String, String> bomVersions(@PathVariable String bomVersion) throws IOException {
|
||||
try {
|
||||
return versionService.getReleaseVersions(bomVersion);
|
||||
}
|
||||
@@ -74,8 +73,7 @@ public class SpringCloudInfoRestController {
|
||||
}
|
||||
|
||||
@GetMapping("/milestones/{name}/duedate")
|
||||
public SpringCloudInfoService.Milestone milestoneDueDate(@PathVariable String name)
|
||||
throws IOException {
|
||||
public SpringCloudInfoService.Milestone milestoneDueDate(@PathVariable String name) throws IOException {
|
||||
try {
|
||||
return versionService.getMilestoneDueDate(name);
|
||||
}
|
||||
|
||||
@@ -29,18 +29,15 @@ import org.springframework.cloud.info.exceptions.SpringCloudVersionNotFoundExcep
|
||||
*/
|
||||
public interface SpringCloudInfoService {
|
||||
|
||||
SpringCloudVersion getSpringCloudVersion(String bootVersion)
|
||||
throws SpringCloudVersionNotFoundException;
|
||||
SpringCloudVersion getSpringCloudVersion(String bootVersion) throws SpringCloudVersionNotFoundException;
|
||||
|
||||
Collection<String> getSpringCloudVersions() throws IOException;
|
||||
|
||||
Map<String, String> getReleaseVersions(String bomVersion)
|
||||
throws SpringCloudVersionNotFoundException, IOException;
|
||||
Map<String, String> getReleaseVersions(String bomVersion) throws SpringCloudVersionNotFoundException, IOException;
|
||||
|
||||
Collection<String> getMilestones() throws IOException;
|
||||
|
||||
Milestone getMilestoneDueDate(String name)
|
||||
throws SpringCloudMilestoneNotFoundException, IOException;
|
||||
Milestone getMilestoneDueDate(String name) throws SpringCloudMilestoneNotFoundException, IOException;
|
||||
|
||||
class Milestone {
|
||||
|
||||
|
||||
@@ -56,8 +56,7 @@ public abstract class SpringCloudRelease implements SpringCloudInfoService {
|
||||
/**
|
||||
* Github tags path.
|
||||
*/
|
||||
public static final String SPRING_CLOUD_RELEASE_TAGS_PATH = "repos/"
|
||||
+ SPRING_CLOUD_RELEASE_COORDINATES + "/tags";
|
||||
public static final String SPRING_CLOUD_RELEASE_TAGS_PATH = "repos/" + SPRING_CLOUD_RELEASE_COORDINATES + "/tags";
|
||||
|
||||
private static final String SPRING_CLOUD_RELEASE_RAW = "https://raw.githubusercontent.com/"
|
||||
+ SPRING_CLOUD_RELEASE_COORDINATES;
|
||||
@@ -87,8 +86,8 @@ public abstract class SpringCloudRelease implements SpringCloudInfoService {
|
||||
@Cacheable("springCloudVersions")
|
||||
public Collection<String> getSpringCloudVersions() throws IOException {
|
||||
List<String> releaseVersions = new ArrayList<>();
|
||||
JsonReader reader = github.entry().uri().path(SPRING_CLOUD_RELEASE_TAGS_PATH)
|
||||
.back().fetch().as(JsonResponse.class).json();
|
||||
JsonReader reader = github.entry().uri().path(SPRING_CLOUD_RELEASE_TAGS_PATH).back().fetch()
|
||||
.as(JsonResponse.class).json();
|
||||
JsonArray tags = reader.readArray();
|
||||
reader.close();
|
||||
List<JsonObject> tagsList = tags.getValuesAs(JsonObject.class);
|
||||
@@ -108,12 +107,10 @@ public abstract class SpringCloudRelease implements SpringCloudInfoService {
|
||||
}
|
||||
try {
|
||||
Map<String, String> versions = new HashMap<>();
|
||||
Model model = reader.readPomFromUrl(
|
||||
String.format(SPRING_CLOUD_RELEASE_DEPENDENCIES_RAW, bomVersion));
|
||||
Model model = reader.readPomFromUrl(String.format(SPRING_CLOUD_RELEASE_DEPENDENCIES_RAW, bomVersion));
|
||||
for (String name : model.getProperties().stringPropertyNames()) {
|
||||
if (name.startsWith("spring-cloud-")) {
|
||||
versions.put(name.replace(".version", ""),
|
||||
model.getProperties().getProperty(name));
|
||||
versions.put(name.replace(".version", ""), model.getProperties().getProperty(name));
|
||||
}
|
||||
}
|
||||
versions.put("spring-boot", getSpringCloudBootVersion(bomVersion));
|
||||
@@ -138,8 +135,7 @@ public abstract class SpringCloudRelease implements SpringCloudInfoService {
|
||||
|
||||
@Override
|
||||
@Cacheable("milestoneDueDate")
|
||||
public Milestone getMilestoneDueDate(String name)
|
||||
throws SpringCloudMilestoneNotFoundException, IOException {
|
||||
public Milestone getMilestoneDueDate(String name) throws SpringCloudMilestoneNotFoundException, IOException {
|
||||
Iterable<com.jcabi.github.Milestone> milestones = getMilestonesFromGithub();
|
||||
for (com.jcabi.github.Milestone milestone : milestones) {
|
||||
JsonObject json = milestone.json();
|
||||
@@ -149,8 +145,7 @@ public abstract class SpringCloudRelease implements SpringCloudInfoService {
|
||||
}
|
||||
else {
|
||||
Instant instant = Instant.parse(json.getString("due_on"));
|
||||
return new Milestone(LocalDateTime
|
||||
.ofInstant(instant, ZoneId.of(ZoneOffset.UTC.getId()))
|
||||
return new Milestone(LocalDateTime.ofInstant(instant, ZoneId.of(ZoneOffset.UTC.getId()))
|
||||
.toLocalDate().toString());
|
||||
}
|
||||
}
|
||||
@@ -161,15 +156,12 @@ public abstract class SpringCloudRelease implements SpringCloudInfoService {
|
||||
private Iterable<com.jcabi.github.Milestone> getMilestonesFromGithub() {
|
||||
Map<String, String> params = new HashMap<>();
|
||||
params.put("state", "open");
|
||||
return github.repos()
|
||||
.get(new Coordinates.Simple(SPRING_CLOUD_RELEASE_COORDINATES))
|
||||
.milestones().iterate(params);
|
||||
return github.repos().get(new Coordinates.Simple(SPRING_CLOUD_RELEASE_COORDINATES)).milestones()
|
||||
.iterate(params);
|
||||
}
|
||||
|
||||
private String getSpringCloudBootVersion(String bomVersion)
|
||||
throws IOException, XmlPullParserException {
|
||||
Model model = reader.readPomFromUrl(
|
||||
String.format(SPRING_CLOUD_STARTER_PARENT_RAW, bomVersion));
|
||||
private String getSpringCloudBootVersion(String bomVersion) throws IOException, XmlPullParserException {
|
||||
Model model = reader.readPomFromUrl(String.format(SPRING_CLOUD_STARTER_PARENT_RAW, bomVersion));
|
||||
return model.getParent().getVersion();
|
||||
}
|
||||
|
||||
|
||||
@@ -22,8 +22,7 @@ package org.springframework.cloud.info.exceptions;
|
||||
public class SpringCloudMilestoneNotFoundException extends Exception {
|
||||
|
||||
public SpringCloudMilestoneNotFoundException(String name) {
|
||||
super("Spring Cloud milestone " + name
|
||||
+ " was not found in Spring Cloud Release");
|
||||
super("Spring Cloud milestone " + name + " was not found in Spring Cloud Release");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -22,8 +22,7 @@ package org.springframework.cloud.info.exceptions;
|
||||
public class SpringCloudVersionNotFoundException extends Exception {
|
||||
|
||||
public SpringCloudVersionNotFoundException(String springBootVersion) {
|
||||
super("Spring Cloud version not found for Spring Boot Version "
|
||||
+ springBootVersion);
|
||||
super("Spring Cloud version not found for Spring Boot Version " + springBootVersion);
|
||||
}
|
||||
|
||||
public SpringCloudVersionNotFoundException(Exception e) {
|
||||
|
||||
@@ -75,8 +75,7 @@ public class InitializrSpringCloudInfoServiceTests {
|
||||
Github github = mock(Github.class);
|
||||
GithubPomReader githubPomReader = mock(GithubPomReader.class);
|
||||
when(rest.getForObject(anyString(), eq(Map.class))).thenReturn(new HashMap());
|
||||
InitializrSpringCloudInfoService service = new InitializrSpringCloudInfoService(
|
||||
rest, github, githubPomReader);
|
||||
InitializrSpringCloudInfoService service = new InitializrSpringCloudInfoService(rest, github, githubPomReader);
|
||||
try {
|
||||
service.getSpringCloudVersion("2.1.0");
|
||||
fail("Exception should have been thrown");
|
||||
@@ -94,8 +93,7 @@ public class InitializrSpringCloudInfoServiceTests {
|
||||
Map<String, Map<String, String>> info = new HashMap<>();
|
||||
info.put("bom-ranges", new HashMap<>());
|
||||
when(rest.getForObject(anyString(), eq(Map.class))).thenReturn(info);
|
||||
InitializrSpringCloudInfoService service = new InitializrSpringCloudInfoService(
|
||||
rest, github, githubPomReader);
|
||||
InitializrSpringCloudInfoService service = new InitializrSpringCloudInfoService(rest, github, githubPomReader);
|
||||
try {
|
||||
service.getSpringCloudVersion("2.1.0");
|
||||
fail("Exception should have been thrown");
|
||||
@@ -111,25 +109,19 @@ public class InitializrSpringCloudInfoServiceTests {
|
||||
RestTemplate rest = mock(RestTemplate.class);
|
||||
Github github = mock(Github.class);
|
||||
GithubPomReader githubPomReader = mock(GithubPomReader.class);
|
||||
when(githubPomReader.readPomFromUrl(eq(String
|
||||
.format(SpringCloudRelease.SPRING_CLOUD_STARTER_PARENT_RAW, bomVersion))))
|
||||
.thenReturn(new MavenXpp3Reader()
|
||||
.read(new FileReader(new ClassPathResource(
|
||||
"spring-cloud-starter-parent-pom.xml")
|
||||
.getFile())));
|
||||
when(githubPomReader.readPomFromUrl(eq(String.format(
|
||||
SpringCloudRelease.SPRING_CLOUD_RELEASE_DEPENDENCIES_RAW, bomVersion))))
|
||||
when(githubPomReader
|
||||
.readPomFromUrl(eq(String.format(SpringCloudRelease.SPRING_CLOUD_STARTER_PARENT_RAW, bomVersion))))
|
||||
.thenReturn(new MavenXpp3Reader().read(new FileReader(
|
||||
new ClassPathResource("spring-cloud-dependencies-pom.xml")
|
||||
.getFile())));
|
||||
new ClassPathResource("spring-cloud-starter-parent-pom.xml").getFile())));
|
||||
when(githubPomReader.readPomFromUrl(
|
||||
eq(String.format(SpringCloudRelease.SPRING_CLOUD_RELEASE_DEPENDENCIES_RAW, bomVersion))))
|
||||
.thenReturn(new MavenXpp3Reader().read(
|
||||
new FileReader(new ClassPathResource("spring-cloud-dependencies-pom.xml").getFile())));
|
||||
InitializrSpringCloudInfoService service = spy(
|
||||
new InitializrSpringCloudInfoService(rest, github, githubPomReader));
|
||||
doReturn(Arrays.asList(new String[] { bomVersion })).when(service)
|
||||
.getSpringCloudVersions();
|
||||
Map<String, String> releaseVersionsResult = service
|
||||
.getReleaseVersions(bomVersion);
|
||||
assertThat(releaseVersionsResult,
|
||||
Matchers.equalTo(SpringCloudInfoTestData.releaseVersions));
|
||||
doReturn(Arrays.asList(new String[] { bomVersion })).when(service).getSpringCloudVersions();
|
||||
Map<String, String> releaseVersionsResult = service.getReleaseVersions(bomVersion);
|
||||
assertThat(releaseVersionsResult, Matchers.equalTo(SpringCloudInfoTestData.releaseVersions));
|
||||
}
|
||||
|
||||
@Test(expected = SpringCloudVersionNotFoundException.class)
|
||||
@@ -138,17 +130,14 @@ public class InitializrSpringCloudInfoServiceTests {
|
||||
RestTemplate rest = mock(RestTemplate.class);
|
||||
Github github = mock(Github.class);
|
||||
GithubPomReader githubPomReader = mock(GithubPomReader.class);
|
||||
when(githubPomReader.readPomFromUrl(eq(String
|
||||
.format(SpringCloudRelease.SPRING_CLOUD_STARTER_PARENT_RAW, bomVersion))))
|
||||
.thenReturn(new MavenXpp3Reader()
|
||||
.read(new FileReader(new ClassPathResource(
|
||||
"spring-cloud-starter-parent-pom.xml")
|
||||
.getFile())));
|
||||
when(githubPomReader.readPomFromUrl(eq(String.format(
|
||||
SpringCloudRelease.SPRING_CLOUD_RELEASE_DEPENDENCIES_RAW, bomVersion))))
|
||||
when(githubPomReader
|
||||
.readPomFromUrl(eq(String.format(SpringCloudRelease.SPRING_CLOUD_STARTER_PARENT_RAW, bomVersion))))
|
||||
.thenReturn(new MavenXpp3Reader().read(new FileReader(
|
||||
new ClassPathResource("spring-cloud-dependencies-pom.xml")
|
||||
.getFile())));
|
||||
new ClassPathResource("spring-cloud-starter-parent-pom.xml").getFile())));
|
||||
when(githubPomReader.readPomFromUrl(
|
||||
eq(String.format(SpringCloudRelease.SPRING_CLOUD_RELEASE_DEPENDENCIES_RAW, bomVersion))))
|
||||
.thenReturn(new MavenXpp3Reader().read(
|
||||
new FileReader(new ClassPathResource("spring-cloud-dependencies-pom.xml").getFile())));
|
||||
InitializrSpringCloudInfoService service = spy(
|
||||
new InitializrSpringCloudInfoService(rest, github, githubPomReader));
|
||||
doReturn(new ArrayList()).when(service).getSpringCloudVersions();
|
||||
@@ -163,10 +152,8 @@ public class InitializrSpringCloudInfoServiceTests {
|
||||
Response response = mock(Response.class);
|
||||
Request request = mock(Request.class);
|
||||
RequestURI requestURI = mock(RequestURI.class);
|
||||
JsonResponse jsonResponse = new JsonResponse(new DefaultResponse(request, 200, "",
|
||||
new Array<>(),
|
||||
IOUtils.toByteArray(new ClassPathResource("spring-cloud-versions.json")
|
||||
.getInputStream())));
|
||||
JsonResponse jsonResponse = new JsonResponse(new DefaultResponse(request, 200, "", new Array<>(),
|
||||
IOUtils.toByteArray(new ClassPathResource("spring-cloud-versions.json").getInputStream())));
|
||||
doReturn(request).when(requestURI).back();
|
||||
doReturn(requestURI).when(requestURI).path(eq(SPRING_CLOUD_RELEASE_TAGS_PATH));
|
||||
doReturn(requestURI).when(request).uri();
|
||||
@@ -175,9 +162,8 @@ public class InitializrSpringCloudInfoServiceTests {
|
||||
doReturn(request).when(github).entry();
|
||||
InitializrSpringCloudInfoService service = spy(
|
||||
new InitializrSpringCloudInfoService(rest, github, githubPomReader));
|
||||
assertThat(service.getSpringCloudVersions(),
|
||||
Matchers.equalTo(SpringCloudInfoTestData.springCloudVersions.stream()
|
||||
.map(v -> v.replaceFirst("v", "")).collect(Collectors.toList())));
|
||||
assertThat(service.getSpringCloudVersions(), Matchers.equalTo(SpringCloudInfoTestData.springCloudVersions
|
||||
.stream().map(v -> v.replaceFirst("v", "")).collect(Collectors.toList())));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -226,8 +212,7 @@ public class InitializrSpringCloudInfoServiceTests {
|
||||
for (String m : milestoneStrings.keySet()) {
|
||||
Milestone milestone = mock(Milestone.class);
|
||||
String dueDate = milestoneStrings.get(m);
|
||||
JsonObjectBuilder builder = builderFactory.createObjectBuilder().add("title",
|
||||
m);
|
||||
JsonObjectBuilder builder = builderFactory.createObjectBuilder().add("title", m);
|
||||
if (dueDate == null) {
|
||||
builder.add("due_on", JsonValue.NULL);
|
||||
}
|
||||
@@ -256,8 +241,7 @@ public class InitializrSpringCloudInfoServiceTests {
|
||||
Map<String, Map<String, Map<String, String>>> info = new HashMap<>();
|
||||
info.put("bom-ranges", springCloud);
|
||||
when(rest.getForObject(anyString(), eq(Map.class))).thenReturn(info);
|
||||
InitializrSpringCloudInfoService service = new InitializrSpringCloudInfoService(
|
||||
rest, github, githubPomReader);
|
||||
InitializrSpringCloudInfoService service = new InitializrSpringCloudInfoService(rest, github, githubPomReader);
|
||||
String version = service.getSpringCloudVersion("2.1.0.RELEASE").getVersion();
|
||||
assertThat(version, Matchers.equalTo("Greenwich.SR1"));
|
||||
version = service.getSpringCloudVersion("2.1.4.RELEASE").getVersion();
|
||||
@@ -273,20 +257,16 @@ public class InitializrSpringCloudInfoServiceTests {
|
||||
private Map<String, String> generateSpringCloudData() {
|
||||
Map<String, String> data = new HashMap<>();
|
||||
data.put("Edgware.SR5", "Spring Boot >=1.5.0.RELEASE and <=1.5.20.RELEASE");
|
||||
data.put("Edgware.BUILD-SNAPSHOT",
|
||||
"Spring Boot >=1.5.21.BUILD-SNAPSHOT and <2.0.0.M1");
|
||||
data.put("Edgware.BUILD-SNAPSHOT", "Spring Boot >=1.5.21.BUILD-SNAPSHOT and <2.0.0.M1");
|
||||
data.put("Finchley.M2", "Spring Boot >=2.0.0.M3 and <2.0.0.M5");
|
||||
data.put("Finchley.M3", "Spring Boot >=2.0.0.M5 and <=2.0.0.M5");
|
||||
data.put("Finchley.M4", "Spring Boot >=2.0.0.M6 and <=2.0.0.M6");
|
||||
data.put("Finchley.RC1", "Spring Boot >=2.0.1.RELEASE and <2.0.2.RELEASE");
|
||||
data.put("Finchley.RC2", "Spring Boot >=2.0.2.RELEASE and <2.0.3.RELEASE");
|
||||
data.put("Finchley.SR3",
|
||||
"Spring Boot >=2.0.3.RELEASE and <2.0.999.BUILD-SNAPSHOT");
|
||||
data.put("Finchley.BUILD-SNAPSHO",
|
||||
"Spring Boot >=2.0.999.BUILD-SNAPSHOT and <2.1.0.M3");
|
||||
data.put("Finchley.SR3", "Spring Boot >=2.0.3.RELEASE and <2.0.999.BUILD-SNAPSHOT");
|
||||
data.put("Finchley.BUILD-SNAPSHO", "Spring Boot >=2.0.999.BUILD-SNAPSHOT and <2.1.0.M3");
|
||||
data.put("Greenwich.M1", "Spring Boot >=2.1.0.M3 and <2.1.0.RELEASE");
|
||||
data.put("Greenwich.SR1",
|
||||
"Spring Boot >=2.1.0.RELEASE and <2.1.5.BUILD-SNAPSHOT");
|
||||
data.put("Greenwich.SR1", "Spring Boot >=2.1.0.RELEASE and <2.1.5.BUILD-SNAPSHOT");
|
||||
data.put("Greenwich.BUILD-SNAPSHOT", "Spring Boot >=2.1.5.BUILD-SNAPSHOT");
|
||||
return data;
|
||||
|
||||
|
||||
@@ -68,8 +68,8 @@ public class SpringCloudInfoRestControllerTests {
|
||||
@Before
|
||||
public void setUp() {
|
||||
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
|
||||
.apply(documentationConfiguration(this.restDocumentation).uris()
|
||||
.withHost("spring-cloud-info.cfapps.io").withPort(80))
|
||||
.apply(documentationConfiguration(this.restDocumentation).uris().withHost("spring-cloud-info.cfapps.io")
|
||||
.withPort(80))
|
||||
.build();
|
||||
}
|
||||
|
||||
@@ -78,59 +78,47 @@ public class SpringCloudInfoRestControllerTests {
|
||||
doReturn(new SpringCloudVersion("Greenwich.RELEASE")).when(springCloudInfoService)
|
||||
.getSpringCloudVersion(eq("2.1.1.RELEASE"));
|
||||
this.mockMvc
|
||||
.perform(get("/springcloudversion/springboot/{bootVersion}",
|
||||
"2.1.1.RELEASE").accept(MediaType.APPLICATION_JSON))
|
||||
.perform(get("/springcloudversion/springboot/{bootVersion}", "2.1.1.RELEASE")
|
||||
.accept(MediaType.APPLICATION_JSON))
|
||||
.andExpect(status().isOk())
|
||||
.andDo(document("springcloudversion",
|
||||
pathParameters(parameterWithName("bootVersion")
|
||||
.description("The Spring Boot version")),
|
||||
responseFields(fieldWithPath("version")
|
||||
.description("Spring Cloud version"))));
|
||||
pathParameters(parameterWithName("bootVersion").description("The Spring Boot version")),
|
||||
responseFields(fieldWithPath("version").description("Spring Cloud version"))));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void versions() throws Exception {
|
||||
doReturn(springCloudVersions.stream().map(v -> v.replaceFirst("v", ""))
|
||||
.collect(Collectors.toList())).when(springCloudInfoService)
|
||||
.getSpringCloudVersions();
|
||||
this.mockMvc
|
||||
.perform(get("/springcloudversions").accept(MediaType.APPLICATION_JSON))
|
||||
.andExpect(status().isOk())
|
||||
.andDo(document("springcloudversions", responseFields(
|
||||
fieldWithPath("[]").description("An array versions"))));
|
||||
doReturn(springCloudVersions.stream().map(v -> v.replaceFirst("v", "")).collect(Collectors.toList()))
|
||||
.when(springCloudInfoService).getSpringCloudVersions();
|
||||
this.mockMvc.perform(get("/springcloudversions").accept(MediaType.APPLICATION_JSON)).andExpect(status().isOk())
|
||||
.andDo(document("springcloudversions",
|
||||
responseFields(fieldWithPath("[]").description("An array versions"))));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void bomVersions() throws Exception {
|
||||
doReturn(SpringCloudInfoTestData.releaseVersions).when(springCloudInfoService)
|
||||
.getReleaseVersions(eq("Finchley.SR1"));
|
||||
this.mockMvc
|
||||
.perform(get("/bomversions/Finchley.SR1")
|
||||
.accept(MediaType.APPLICATION_JSON))
|
||||
this.mockMvc.perform(get("/bomversions/Finchley.SR1").accept(MediaType.APPLICATION_JSON))
|
||||
.andExpect(status().isOk()).andDo(document("bomversions"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void milestones() throws Exception {
|
||||
doReturn(SpringCloudInfoTestData.milestoneStrings.keySet())
|
||||
.when(springCloudInfoService).getMilestones();
|
||||
this.mockMvc.perform(get("/milestones").accept(MediaType.APPLICATION_JSON))
|
||||
.andExpect(status().isOk()).andDo(document("milestones"));
|
||||
doReturn(SpringCloudInfoTestData.milestoneStrings.keySet()).when(springCloudInfoService).getMilestones();
|
||||
this.mockMvc.perform(get("/milestones").accept(MediaType.APPLICATION_JSON)).andExpect(status().isOk())
|
||||
.andDo(document("milestones"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void milestoneDueDate() throws Exception {
|
||||
doReturn(new SpringCloudInfoService.Milestone("2019-07-31"))
|
||||
.when(springCloudInfoService).getMilestoneDueDate(eq("Hoxton.RELEASE"));
|
||||
this.mockMvc
|
||||
.perform(get("/milestones/{release}/duedate", "Hoxton.RELEASE")
|
||||
.accept(MediaType.APPLICATION_JSON))
|
||||
doReturn(new SpringCloudInfoService.Milestone("2019-07-31")).when(springCloudInfoService)
|
||||
.getMilestoneDueDate(eq("Hoxton.RELEASE"));
|
||||
this.mockMvc.perform(get("/milestones/{release}/duedate", "Hoxton.RELEASE").accept(MediaType.APPLICATION_JSON))
|
||||
.andExpect(status().isOk())
|
||||
.andDo(document("milestoneduedate",
|
||||
pathParameters(parameterWithName("release")
|
||||
.description("The Spring Cloud release train name")),
|
||||
responseFields(fieldWithPath("dueDate")
|
||||
.description("Spring Cloud milestone due date"))));
|
||||
pathParameters(parameterWithName("release").description("The Spring Cloud release train name")),
|
||||
responseFields(fieldWithPath("dueDate").description("Spring Cloud milestone due date"))));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -33,29 +33,33 @@ public final class SpringCloudInfoTestData {
|
||||
public static Map<String, String> milestoneStrings = new HashMap<>();
|
||||
|
||||
static {
|
||||
releaseVersions.put("spring-boot", "2.2.0.BUILD-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-aws", "2.2.0.BUILD-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-bus", "2.2.0.BUILD-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-cloudfoundry", "2.2.0.BUILD-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-commons", "2.2.0.BUILD-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-config", "2.2.0.BUILD-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-consul", "2.2.0.BUILD-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-contract", "2.2.0.BUILD-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-function", "2.1.0.BUILD-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-gateway", "2.2.0.BUILD-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-gcp", "1.1.0.BUILD-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-kubernetes", "1.1.0.BUILD-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-netflix", "2.2.0.BUILD-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-openfeign", "2.2.0.BUILD-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-security", "2.2.0.BUILD-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-sleuth", "2.2.0.BUILD-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-stream", "Germantown.BUILD-SNAPSHOT");
|
||||
releaseVersions.put("spring-boot", "2.2.0-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-aws", "2.2.0-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-bus", "2.2.0-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-cloudfoundry", "2.2.0-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-commons", "2.2.0-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-config", "2.2.0-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-consul", "2.2.0-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-contract", "2.2.0-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-function", "2.1.0-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-gateway", "2.2.0-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-gcp", "1.1.0-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-kubernetes", "1.1.0-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-netflix", "2.2.0-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-openfeign", "2.2.0-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-security", "2.2.0-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-sleuth", "2.2.0-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-stream", "Germantown-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-task", "2.0.0.RELEASE");
|
||||
releaseVersions.put("spring-cloud-vault", "2.2.0.BUILD-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-zookeeper", "2.2.0.BUILD-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-vault", "2.2.0-SNAPSHOT");
|
||||
releaseVersions.put("spring-cloud-zookeeper", "2.2.0-SNAPSHOT");
|
||||
}
|
||||
|
||||
static {
|
||||
springCloudVersions.add("v2020.0.1");
|
||||
springCloudVersions.add("v2020.0.0");
|
||||
springCloudVersions.add("v2020.0.0-RC1");
|
||||
springCloudVersions.add("v2020.0.0-M1");
|
||||
springCloudVersions.add("vGreenwich.SR1");
|
||||
springCloudVersions.add("vGreenwich.RELEASE");
|
||||
springCloudVersions.add("vGreenwich.RC2");
|
||||
|
||||
Reference in New Issue
Block a user