diff --git a/pom.xml b/pom.xml index 56b8945..3af19fa 100755 --- a/pom.xml +++ b/pom.xml @@ -38,7 +38,7 @@ io.spring.javaformat spring-javaformat-maven-plugin - 0.0.35 + 0.0.39 validate diff --git a/src/main/java/io/sdkman/automigration/adapters/PackageAdapter.java b/src/main/java/io/sdkman/automigration/adapters/PackageAdapter.java index 82cf352..f458677 100644 --- a/src/main/java/io/sdkman/automigration/adapters/PackageAdapter.java +++ b/src/main/java/io/sdkman/automigration/adapters/PackageAdapter.java @@ -61,9 +61,9 @@ public static Map> toQueryParams(FoojayQueryParams foojayQu // @formatter:on return Stream - .concat(Stream.concat(defaultQueryParams.entrySet().stream(), graalVmQueryParams.entrySet().stream()), - arm32QueryParams.entrySet().stream()) - .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + .concat(Stream.concat(defaultQueryParams.entrySet().stream(), graalVmQueryParams.entrySet().stream()), + arm32QueryParams.entrySet().stream()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); } private static Map> addQueryParamsIfGraalVm(String distribution, String javaVersion) { diff --git a/src/main/java/io/sdkman/automigration/config/RestTemplateConfig.java b/src/main/java/io/sdkman/automigration/config/RestTemplateConfig.java index 4aea3c5..020a8ed 100644 --- a/src/main/java/io/sdkman/automigration/config/RestTemplateConfig.java +++ b/src/main/java/io/sdkman/automigration/config/RestTemplateConfig.java @@ -13,7 +13,8 @@ public class RestTemplateConfig { @Bean public RestTemplate restTemplate(RestTemplateBuilder restTemplateBuilder) { return restTemplateBuilder.requestFactory(NoRedirectSimpleClientHttpRequestFactory.class) - .errorHandler(new ServerResponseErrorHandler()).build(); + .errorHandler(new ServerResponseErrorHandler()) + .build(); } } diff --git a/src/main/java/io/sdkman/automigration/controllers/JavaMigration.java b/src/main/java/io/sdkman/automigration/controllers/JavaMigration.java index cfb28ce..c2be445 100644 --- a/src/main/java/io/sdkman/automigration/controllers/JavaMigration.java +++ b/src/main/java/io/sdkman/automigration/controllers/JavaMigration.java @@ -48,8 +48,8 @@ public JavaMigration(FoojayClient foojayClient, SdkmanClient sdkmanClient, public void execute(Map> queryParams, Boolean defaultCandidate) { var foojayQueryParams = Stream - .concat(queryParams.entrySet().stream(), FoojayClient.defaultQueryParams.entrySet().stream()) - .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + .concat(queryParams.entrySet().stream(), FoojayClient.defaultQueryParams.entrySet().stream()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); var resultPackageResponse = this.foojayClient.queryPackages(this.foojayProperties.url(), foojayQueryParams); // @formatter:off @@ -89,15 +89,16 @@ private void findAndPublish(PackageResponse packageResponse, String sdkmanVendor } var ephemeralResponse = this.foojayClient.queryUrl(packageResponse.links().pkgInfoUri()); ephemeralResponse.filter(payload -> payload.result() != null && payload.result().size() == 1) - .map(ResultIdsResponse::result).flatMap(idsResponses -> idsResponses.stream().findFirst()) - .ifPresent(idsResponse -> { - var versionRequest = VersionAdapter.toVersionRequest(sdkmanVendor, version, sdkmanReleasePlatform, - idsResponse, defaultCandidate); - logger.log(Level.INFO, versionRequest.toString()); - var newVersionResponse = this.sdkmanClient.newVersion(this.sdkmanProperties.release().url(), - versionRequest); - newVersionResponse.ifPresent(response -> logger.log(Level.INFO, response)); - }); + .map(ResultIdsResponse::result) + .flatMap(idsResponses -> idsResponses.stream().findFirst()) + .ifPresent(idsResponse -> { + var versionRequest = VersionAdapter.toVersionRequest(sdkmanVendor, version, sdkmanReleasePlatform, + idsResponse, defaultCandidate); + logger.log(Level.INFO, versionRequest.toString()); + var newVersionResponse = this.sdkmanClient.newVersion(this.sdkmanProperties.release().url(), + versionRequest); + newVersionResponse.ifPresent(response -> logger.log(Level.INFO, response)); + }); } } diff --git a/src/main/java/io/sdkman/automigration/entrypoints/CommandLine.java b/src/main/java/io/sdkman/automigration/entrypoints/CommandLine.java index 9415526..39bc5b5 100644 --- a/src/main/java/io/sdkman/automigration/entrypoints/CommandLine.java +++ b/src/main/java/io/sdkman/automigration/entrypoints/CommandLine.java @@ -40,7 +40,8 @@ CommandLineRunner runner() { var distributionConfigurationPropertyName = resolveConfigurationPropertyName(distribution, features); var vendorProperties = Binder.get(this.environment) - .bind(distributionConfigurationPropertyName, Bindable.of(VendorProperties.class)).orElse(null); + .bind(distributionConfigurationPropertyName, Bindable.of(VendorProperties.class)) + .orElse(null); process(vendorProperties.linux(), distribution, version, javaVersion, releaseStatus, "linux", javafxBundled, defaultCandidate, features); @@ -53,7 +54,7 @@ CommandLineRunner runner() { private static ConfigurationPropertyName resolveConfigurationPropertyName(String distribution, String features) { var distributionConfigurationPropertyName = ConfigurationPropertyName.of("sdkman") - .append(distribution.replace("_", "-")); + .append(distribution.replace("_", "-")); if (StringUtils.hasText(features)) { return distributionConfigurationPropertyName.append(features); } diff --git a/src/main/java/io/sdkman/automigration/http/FoojayClient.java b/src/main/java/io/sdkman/automigration/http/FoojayClient.java index df68f00..390211c 100755 --- a/src/main/java/io/sdkman/automigration/http/FoojayClient.java +++ b/src/main/java/io/sdkman/automigration/http/FoojayClient.java @@ -32,7 +32,9 @@ public FoojayClient(RestTemplate restTemplate) { public Optional queryPackages(String url, Map> queryParams) { var packageUrl = url.concat("/packages"); var newUrl = UriComponentsBuilder.fromHttpUrl(packageUrl) - .queryParams(CollectionUtils.toMultiValueMap(queryParams)).encode().toUriString(); + .queryParams(CollectionUtils.toMultiValueMap(queryParams)) + .encode() + .toUriString(); var response = this.restTemplate.getForEntity(newUrl, ResultPackageResponse.class); if (response.getStatusCode() == HttpStatus.OK && response.hasBody()) { return Optional.of(response.getBody()); diff --git a/src/test/java/io/sdkman/automigration/SdkmanDiscoMigrationTest.java b/src/test/java/io/sdkman/automigration/SdkmanDiscoMigrationTest.java index 95a90e5..a987d27 100644 --- a/src/test/java/io/sdkman/automigration/SdkmanDiscoMigrationTest.java +++ b/src/test/java/io/sdkman/automigration/SdkmanDiscoMigrationTest.java @@ -55,46 +55,51 @@ class SdkmanDiscoMigrationTest { // @formatter:on private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(MockRestServiceServerAutoConfiguration.class)) - .withUserConfiguration(SdkmanDiscoMigration.class).withPropertyValues(this.propertyValues); + .withConfiguration(AutoConfigurations.of(MockRestServiceServerAutoConfiguration.class)) + .withUserConfiguration(SdkmanDiscoMigration.class) + .withPropertyValues(this.propertyValues); @Test void testWithDistributionsAndSdkmanReleaseWithChecksum() { - this.contextRunner.withPropertyValues("foojay.distribution.version=8", "sdkman.release.consumer-key=any-key", - "sdkman.release.consumer-token=any-token", "sdkman.liberica.linux[1].architecture=arm64", - "sdkman.liberica.linux[1].archive-type=tar.gz").run(context -> { - var mockServer = context.getBean(MockRestServiceServer.class); - var commandLineRunner = context.getBean(CommandLineRunner.class); - foojayPackagesMockServer(mockServer, "liberica", "8", TAR_GZ, LINUX, AMD64, - FoojayResponse.liberica80322amd64()); - sdkmanBrokerMockServer(mockServer, "8.0.322-librca", HttpStatus.NOT_FOUND, LINUX_64); - foojayIdsMockServer(mockServer, FoojayResponse.idsResponseAmd64WithChecksum()); - sdkmanReleaseMockServer(mockServer, SdkmanReleaseRequest.candidateAmd64WithNoChecksum()); + this.contextRunner + .withPropertyValues("foojay.distribution.version=8", "sdkman.release.consumer-key=any-key", + "sdkman.release.consumer-token=any-token", "sdkman.liberica.linux[1].architecture=arm64", + "sdkman.liberica.linux[1].archive-type=tar.gz") + .run(context -> { + var mockServer = context.getBean(MockRestServiceServer.class); + var commandLineRunner = context.getBean(CommandLineRunner.class); + foojayPackagesMockServer(mockServer, "liberica", "8", TAR_GZ, LINUX, AMD64, + FoojayResponse.liberica80322amd64()); + sdkmanBrokerMockServer(mockServer, "8.0.322-librca", HttpStatus.NOT_FOUND, LINUX_64); + foojayIdsMockServer(mockServer, FoojayResponse.idsResponseAmd64WithChecksum()); + sdkmanReleaseMockServer(mockServer, SdkmanReleaseRequest.candidateAmd64WithNoChecksum()); - foojayPackagesMockServer(mockServer, "liberica", "8", TAR_GZ, LINUX, ARM_64, - FoojayResponse.liberica80322arm64()); - sdkmanBrokerMockServer(mockServer, "8.0.322-librca", HttpStatus.NOT_FOUND, LINUX_ARM64); - foojayIdsMockServer(mockServer, FoojayResponse.idsResponseArm64WithChecksum()); - sdkmanReleaseMockServer(mockServer, SdkmanReleaseRequest.candidateArm64WithNoChecksum()); - commandLineRunner.run(); - mockServer.verify(); - }); + foojayPackagesMockServer(mockServer, "liberica", "8", TAR_GZ, LINUX, ARM_64, + FoojayResponse.liberica80322arm64()); + sdkmanBrokerMockServer(mockServer, "8.0.322-librca", HttpStatus.NOT_FOUND, LINUX_ARM64); + foojayIdsMockServer(mockServer, FoojayResponse.idsResponseArm64WithChecksum()); + sdkmanReleaseMockServer(mockServer, SdkmanReleaseRequest.candidateArm64WithNoChecksum()); + commandLineRunner.run(); + mockServer.verify(); + }); } @Test void testWithDistributionsAndSdkmanReleaseWithNoChecksum() { - this.contextRunner.withPropertyValues("foojay.distribution.version=8", "sdkman.release.consumer-key=any-key", - "sdkman.release.consumer-token=any-token").run(context -> { - var mockServer = context.getBean(MockRestServiceServer.class); - var commandLineRunner = context.getBean(CommandLineRunner.class); - foojayPackagesMockServer(mockServer, "liberica", "8", TAR_GZ, LINUX, AMD64, - FoojayResponse.liberica80322amd64()); - sdkmanBrokerMockServer(mockServer, "8.0.322-librca", HttpStatus.NOT_FOUND, LINUX_64); - foojayIdsMockServer(mockServer, FoojayResponse.idsResponseWithNoChecksum()); - sdkmanReleaseMockServer(mockServer, SdkmanReleaseRequest.candidateAmd64WithNoChecksum()); - commandLineRunner.run(); - mockServer.verify(); - }); + this.contextRunner + .withPropertyValues("foojay.distribution.version=8", "sdkman.release.consumer-key=any-key", + "sdkman.release.consumer-token=any-token") + .run(context -> { + var mockServer = context.getBean(MockRestServiceServer.class); + var commandLineRunner = context.getBean(CommandLineRunner.class); + foojayPackagesMockServer(mockServer, "liberica", "8", TAR_GZ, LINUX, AMD64, + FoojayResponse.liberica80322amd64()); + sdkmanBrokerMockServer(mockServer, "8.0.322-librca", HttpStatus.NOT_FOUND, LINUX_64); + foojayIdsMockServer(mockServer, FoojayResponse.idsResponseWithNoChecksum()); + sdkmanReleaseMockServer(mockServer, SdkmanReleaseRequest.candidateAmd64WithNoChecksum()); + commandLineRunner.run(); + mockServer.verify(); + }); } @Test @@ -134,36 +139,40 @@ void testWithDistributionsAndVersionIsNull() { @Test void testWithGraalVmDistributionsAndSdkmanReleaseWithNoChecksum() { - this.contextRunner.withPropertyValues("foojay.distribution.version=22", "foojay.java.version=17", - "foojay.java.distribution=liberica_native", "sdkman.liberica_native.linux[0].architecture=amd64", - "sdkman.liberica_native.linux[0].archive-type=tar.gz", "sdkman.release.consumer-key=any-key", - "sdkman.release.consumer-token=any-token").run(context -> { - var mockServer = context.getBean(MockRestServiceServer.class); - var commandLineRunner = context.getBean(CommandLineRunner.class); - foojayPackagesMockServer(mockServer, "liberica", "22", TAR_GZ, LINUX, AMD64, - FoojayResponse.libericaNik80322amd64()); - sdkmanBrokerMockServer(mockServer, "22.1.r17-nik", HttpStatus.NOT_FOUND, LINUX_64); - foojayIdsMockServer(mockServer, FoojayResponse.libericaNikIdsResponseWithNoChecksum()); - sdkmanReleaseMockServer(mockServer, SdkmanReleaseRequest.libericaNikCandidateAmd64WithNoChecksum()); - commandLineRunner.run(); - mockServer.verify(); - }); + this.contextRunner + .withPropertyValues("foojay.distribution.version=22", "foojay.java.version=17", + "foojay.java.distribution=liberica_native", "sdkman.liberica_native.linux[0].architecture=amd64", + "sdkman.liberica_native.linux[0].archive-type=tar.gz", "sdkman.release.consumer-key=any-key", + "sdkman.release.consumer-token=any-token") + .run(context -> { + var mockServer = context.getBean(MockRestServiceServer.class); + var commandLineRunner = context.getBean(CommandLineRunner.class); + foojayPackagesMockServer(mockServer, "liberica", "22", TAR_GZ, LINUX, AMD64, + FoojayResponse.libericaNik80322amd64()); + sdkmanBrokerMockServer(mockServer, "22.1.r17-nik", HttpStatus.NOT_FOUND, LINUX_64); + foojayIdsMockServer(mockServer, FoojayResponse.libericaNikIdsResponseWithNoChecksum()); + sdkmanReleaseMockServer(mockServer, SdkmanReleaseRequest.libericaNikCandidateAmd64WithNoChecksum()); + commandLineRunner.run(); + mockServer.verify(); + }); } @Test void shouldReleaseDefaultCandidate() { - this.contextRunner.withPropertyValues("foojay.distribution.version=8", "sdkman.release.consumer-key=any-key", - "sdkman.release.consumer-token=any-token", "sdkman.default.candidate=true").run(context -> { - var mockServer = context.getBean(MockRestServiceServer.class); - var commandLineRunner = context.getBean(CommandLineRunner.class); - foojayPackagesMockServer(mockServer, "liberica", "8", TAR_GZ, LINUX, AMD64, - FoojayResponse.liberica80322amd64()); - sdkmanBrokerMockServer(mockServer, "8.0.322-librca", HttpStatus.NOT_FOUND, LINUX_64); - foojayIdsMockServer(mockServer, FoojayResponse.idsResponseWithNoChecksum()); - sdkmanReleaseMockServer(mockServer, SdkmanReleaseRequest.defaultCandidateAmd64WithNoChecksum()); - commandLineRunner.run(); - mockServer.verify(); - }); + this.contextRunner + .withPropertyValues("foojay.distribution.version=8", "sdkman.release.consumer-key=any-key", + "sdkman.release.consumer-token=any-token", "sdkman.default.candidate=true") + .run(context -> { + var mockServer = context.getBean(MockRestServiceServer.class); + var commandLineRunner = context.getBean(CommandLineRunner.class); + foojayPackagesMockServer(mockServer, "liberica", "8", TAR_GZ, LINUX, AMD64, + FoojayResponse.liberica80322amd64()); + sdkmanBrokerMockServer(mockServer, "8.0.322-librca", HttpStatus.NOT_FOUND, LINUX_64); + foojayIdsMockServer(mockServer, FoojayResponse.idsResponseWithNoChecksum()); + sdkmanReleaseMockServer(mockServer, SdkmanReleaseRequest.defaultCandidateAmd64WithNoChecksum()); + commandLineRunner.run(); + mockServer.verify(); + }); } @Test @@ -171,17 +180,17 @@ void shouldReturnCandidateWhenFeaturesIsUsed() { this.contextRunner.withPropertyValues("foojay.distribution.version=17", "sdkman.release.consumer-key=any-key", "sdkman.release.consumer-token=any-token", "foojay.java.distribution=zulu", "foojay.java.features=crac", "sdkman.zulu.crac.linux[0].architecture=amd64", "sdkman.zulu.crac.linux[0].archive-type=tar.gz") - .run(context -> { - var mockServer = context.getBean(MockRestServiceServer.class); - var commandLineRunner = context.getBean(CommandLineRunner.class); - foojayPackagesMockServer(mockServer, "zulu", "17", TAR_GZ, LINUX, AMD64, - Files.readString(Path.of("src/test/resources/feature-zulu-crac-response.json"))); - sdkmanBrokerMockServer(mockServer, "17.0.7.crac-zulu", HttpStatus.NOT_FOUND, LINUX_64); - foojayIdsMockServer(mockServer, FoojayResponse.zuluCracIdsResponse()); - sdkmanReleaseMockServer(mockServer, SdkmanReleaseRequest.zuluCracCandidate()); - commandLineRunner.run(); - mockServer.verify(); - }); + .run(context -> { + var mockServer = context.getBean(MockRestServiceServer.class); + var commandLineRunner = context.getBean(CommandLineRunner.class); + foojayPackagesMockServer(mockServer, "zulu", "17", TAR_GZ, LINUX, AMD64, + Files.readString(Path.of("src/test/resources/feature-zulu-crac-response.json"))); + sdkmanBrokerMockServer(mockServer, "17.0.7.crac-zulu", HttpStatus.NOT_FOUND, LINUX_64); + foojayIdsMockServer(mockServer, FoojayResponse.zuluCracIdsResponse()); + sdkmanReleaseMockServer(mockServer, SdkmanReleaseRequest.zuluCracCandidate()); + commandLineRunner.run(); + mockServer.verify(); + }); } private void sdkmanReleaseMockServer(MockRestServiceServer mockServer, String request) { @@ -204,9 +213,9 @@ private void sdkmanBrokerMockServer(MockRestServiceServer mockServer, String ver private void foojayIdsMockServer(MockRestServiceServer mockServer, String response) { mockServer - .expect(ExpectedCount.once(), - requestTo("https://api.foojay.io/disco/v3.0/ids/8d2136c6472ce970f80ee4fedcc92f99")) - .andRespond(withStatus(HttpStatus.OK).contentType(MediaType.APPLICATION_JSON).body(response)); + .expect(ExpectedCount.once(), + requestTo("https://api.foojay.io/disco/v3.0/ids/8d2136c6472ce970f80ee4fedcc92f99")) + .andRespond(withStatus(HttpStatus.OK).contentType(MediaType.APPLICATION_JSON).body(response)); } private void foojayPackagesMockServer(MockRestServiceServer mockServer, String distribution, String version, @@ -219,8 +228,9 @@ private void foojayPackagesMockServer(MockRestServiceServer mockServer, String d assertThat(uriComponents.getPath()).isEqualTo("/disco/v3.0/packages"); assertThat(uriComponents.getQueryParams()).containsAllEntriesOf(expectedQueryParams); - }).andExpect(method(HttpMethod.GET)) - .andRespond(withStatus(HttpStatus.OK).contentType(MediaType.APPLICATION_JSON).body(response)); + }) + .andExpect(method(HttpMethod.GET)) + .andRespond(withStatus(HttpStatus.OK).contentType(MediaType.APPLICATION_JSON).body(response)); } private static Map> javaDistributionQueryParams(String distribution, String version, diff --git a/src/test/java/io/sdkman/automigration/adapters/VersionAdapterTest.java b/src/test/java/io/sdkman/automigration/adapters/VersionAdapterTest.java index a53729f..a84de8b 100644 --- a/src/test/java/io/sdkman/automigration/adapters/VersionAdapterTest.java +++ b/src/test/java/io/sdkman/automigration/adapters/VersionAdapterTest.java @@ -47,7 +47,7 @@ void versionRequestWithDefaultCandidate() throws IOException { "813eb415bd91e5dcb846fea4ffcf07befb254f5a", "sha1"); var request = VersionAdapter.toVersionRequest("librca", "8.0.322", Platform.LINUX_64, idsResponse, true); assertThat(this.json.write(request)) - .isStrictlyEqualToJson(SdkmanReleaseRequest.defaultCandidateAmd64WithNoChecksum()); + .isStrictlyEqualToJson(SdkmanReleaseRequest.defaultCandidateAmd64WithNoChecksum()); } }