private ResponseEntity<String> dependenciesFor(InitializrMetadataVersion version, String bootVersion) { InitializrMetadata metadata = this.metadataProvider.get(); Version v = (bootVersion != null) ? Version.parse(bootVersion) : Version.parse(metadata.getBootVersions().getDefault().getId()); DependencyMetadata dependencyMetadata = this.dependencyMetadataProvider .get(metadata, v); String content = new DependencyMetadataV21JsonMapper().write(dependencyMetadata); return ResponseEntity.ok().contentType(version.getMediaType()) .eTag(createUniqueId(content)) .cacheControl(CacheControl.maxAge(7, TimeUnit.DAYS)).body(content); }
@Test void bootVersionsAreReplaced() { InitializrMetadata metadata = new InitializrMetadataTestBuilder() .addBootVersion("0.0.9.RELEASE", true) .addBootVersion("0.0.8.RELEASE", false).build(); assertThat(metadata.getBootVersions().getDefault().getId()) .isEqualTo("0.0.9.RELEASE"); DefaultInitializrMetadataProvider provider = new DefaultInitializrMetadataProvider( metadata, objectMapper, this.restTemplate); expectJson(metadata.getConfiguration().getEnv().getSpringBootMetadataUrl(), "metadata/sagan/spring-boot.json"); InitializrMetadata updatedMetadata = provider.get(); assertThat(updatedMetadata.getBootVersions()).isNotNull(); List<DefaultMetadataElement> updatedBootVersions = updatedMetadata .getBootVersions().getContent(); assertThat(updatedBootVersions).hasSize(4); assertBootVersion(updatedBootVersions.get(0), "1.4.1 (SNAPSHOT)", false); assertBootVersion(updatedBootVersions.get(1), "1.4.0", true); assertBootVersion(updatedBootVersions.get(2), "1.3.8 (SNAPSHOT)", false); assertBootVersion(updatedBootVersions.get(3), "1.3.7", false); }
@Test void defaultBootVersionIsAlwaysSet() { InitializrMetadata metadata = new InitializrMetadataTestBuilder() .addBootVersion("0.0.9.RELEASE", true) .addBootVersion("0.0.8.RELEASE", false).build(); assertThat(metadata.getBootVersions().getDefault().getId()) .isEqualTo("0.0.9.RELEASE"); DefaultInitializrMetadataProvider provider = new DefaultInitializrMetadataProvider( metadata, objectMapper, this.restTemplate); expectJson(metadata.getConfiguration().getEnv().getSpringBootMetadataUrl(), "metadata/sagan/spring-boot-no-default.json"); InitializrMetadata updatedMetadata = provider.get(); assertThat(updatedMetadata.getBootVersions()).isNotNull(); List<DefaultMetadataElement> updatedBootVersions = updatedMetadata .getBootVersions().getContent(); assertThat(updatedBootVersions).hasSize(4); assertBootVersion(updatedBootVersions.get(0), "1.3.1 (SNAPSHOT)", true); assertBootVersion(updatedBootVersions.get(1), "1.3.0", false); assertBootVersion(updatedBootVersions.get(2), "1.2.6 (SNAPSHOT)", false); assertBootVersion(updatedBootVersions.get(3), "1.2.5", false); }
@Test void mergeMetadata() { InitializrMetadata metadata = InitializrMetadataBuilder.create() .withInitializrMetadata( new ClassPathResource("metadata/config/test-min.json")) .build(); assertThat(metadata.getConfiguration().getEnv().isForceSsl()).isEqualTo(true); assertThat(metadata.getDependencies().getContent()).hasSize(1); Dependency dependency = metadata.getDependencies().get("test"); assertThat(dependency).isNotNull(); assertThat(dependency.getGroupId()).isEqualTo("org.springframework.boot"); assertThat(metadata.getTypes().getContent()).hasSize(1); assertThat(metadata.getBootVersions().getContent()).hasSize(2); assertThat(metadata.getPackagings().getContent()).hasSize(2); assertThat(metadata.getJavaVersions().getContent()).hasSize(1); assertThat(metadata.getLanguages().getContent()).hasSize(3); assertThat(metadata.getName().getContent()).isEqualTo("metadata-merge"); assertThat(metadata.getDescription().getContent()) .isEqualTo("Demo project for metadata merge"); assertThat(metadata.getGroupId().getContent()).isEqualTo("org.acme"); assertThat(metadata.getArtifactId().getContent()).isEqualTo("metadata"); assertThat(metadata.getVersion().getContent()).isEqualTo("1.0.0-SNAPSHOT"); assertThat(metadata.getPackageName().getContent()).isEqualTo("org.acme.demo"); }
public InitializrMetadataTestBuilder addBootVersion(String id, boolean defaultValue) { this.builder.withCustomizer((it) -> { DefaultMetadataElement element = new DefaultMetadataElement(); element.setId(id); element.setName(id); element.setDefault(defaultValue); it.getBootVersions().getContent().add(element); }); return this; }
@Test void initializeSetsMetadataDefaults() { ProjectRequest request = initProjectRequest(); assertThat(request.getName()).isEqualTo(this.metadata.getName().getContent()); assertThat(request.getType()) .isEqualTo(this.metadata.getTypes().getDefault().getId()); assertThat(request.getDescription()) .isEqualTo(this.metadata.getDescription().getContent()); assertThat(request.getGroupId()) .isEqualTo(this.metadata.getGroupId().getContent()); assertThat(request.getArtifactId()) .isEqualTo(this.metadata.getArtifactId().getContent()); assertThat(request.getVersion()) .isEqualTo(this.metadata.getVersion().getContent()); assertThat(request.getBootVersion()) .isEqualTo(this.metadata.getBootVersions().getDefault().getId()); assertThat(request.getPackaging()) .isEqualTo(this.metadata.getPackagings().getDefault().getId()); }
@Override public String write(InitializrMetadata metadata, String appUrl) { ObjectNode delegate = nodeFactory.objectNode(); links(delegate, metadata.getTypes().getContent(), appUrl); dependencies(delegate, metadata.getDependencies()); type(delegate, metadata.getTypes()); singleSelect(delegate, metadata.getPackagings()); singleSelect(delegate, metadata.getJavaVersions()); singleSelect(delegate, metadata.getLanguages()); singleSelect(delegate, metadata.getBootVersions()); text(delegate, metadata.getGroupId()); text(delegate, metadata.getArtifactId()); text(delegate, metadata.getVersion()); text(delegate, metadata.getName()); text(delegate, metadata.getDescription()); text(delegate, metadata.getPackageName()); return delegate.toString(); }
List<String> depIds = (!getStyle().isEmpty() ? getStyle() : getDependencies()); String actualBootVersion = (getBootVersion() != null) ? getBootVersion() : metadata.getBootVersions().getDefault().getId(); Version requestedVersion = Version.parse(actualBootVersion); this.resolvedDependencies = depIds.stream().map((it) -> {
@Test void initializeRemoteConfig() throws Exception { InitializrMetadata localMetadata = this.metadataProvider.get(); InitializrMetadata metadata = InitializrMetadataBuilder.create() .withInitializrMetadata(new UrlResource(createUrl("/metadata/config"))) .build(); // Basic assertions assertThat(metadata.getDependencies().getContent()) .hasSameSizeAs(localMetadata.getDependencies().getContent()); assertThat(metadata.getTypes().getContent()) .hasSameSizeAs(localMetadata.getTypes().getContent()); assertThat(metadata.getBootVersions().getContent()) .hasSameSizeAs(localMetadata.getBootVersions().getContent()); assertThat(metadata.getPackagings().getContent()) .hasSameSizeAs(localMetadata.getPackagings().getContent()); assertThat(metadata.getJavaVersions().getContent()) .hasSameSizeAs(localMetadata.getJavaVersions().getContent()); assertThat(metadata.getLanguages().getContent()) .hasSameSizeAs(localMetadata.getLanguages().getContent()); }
@Override public void customize(InitializrMetadata metadata) { metadata.getDependencies().merge(this.properties.getDependencies()); metadata.getTypes().merge(this.properties.getTypes()); metadata.getBootVersions().merge(this.properties.getBootVersions()); metadata.getPackagings().merge(this.properties.getPackagings()); metadata.getJavaVersions().merge(this.properties.getJavaVersions()); metadata.getLanguages().merge(this.properties.getLanguages()); this.properties.getGroupId().apply(metadata.getGroupId()); this.properties.getArtifactId().apply(metadata.getArtifactId()); this.properties.getVersion().apply(metadata.getVersion()); this.properties.getName().apply(metadata.getName()); this.properties.getDescription().apply(metadata.getDescription()); this.properties.getPackageName().apply(metadata.getPackageName()); }