private void resolveBom(InitializrMetadata metadata, String bomId, Version requestedVersion) { if (!this.boms.containsKey(bomId)) { BillOfMaterials bom = metadata.getConfiguration().getEnv().getBoms() .get(bomId).resolve(requestedVersion); bom.getAdditionalBoms() .forEach((id) -> resolveBom(metadata, id, requestedVersion)); this.boms.put(bomId, bom); } }
protected List<DefaultMetadataElement> fetchBootVersions() { String url = this.metadata.getConfiguration().getEnv().getSpringBootMetadataUrl(); if (StringUtils.hasText(url)) { try { log.info("Fetching boot metadata from {}", url); return new SpringBootMetadataReader(this.objectMapper, this.restTemplate, url).getBootVersions(); } catch (Exception ex) { log.warn("Failed to fetch spring boot metadata", ex); } } return null; }
public boolean isForceSsl() { if (this.forceSsl == null) { this.forceSsl = this.metadataProvider.get().getConfiguration().getEnv() .isForceSsl(); } return this.forceSsl; }
protected void initializeProperties(InitializrMetadata metadata, Version requestedVersion) { Supplier<String> kotlinVersion = () -> metadata.getConfiguration().getEnv() .getKotlin().resolveKotlinVersion(requestedVersion); if ("gradle".equals(this.build)) { this.buildProperties.getGradle().put("springBootVersion", this::getBootVersion); if ("kotlin".equals(getLanguage())) { this.buildProperties.getGradle().put("kotlinVersion", kotlinVersion); } } else { this.buildProperties.getMaven().put("java.version", this::getJavaVersion); if ("kotlin".equals(getLanguage())) { this.buildProperties.getMaven().put("kotlin.version", kotlinVersion); } } }
public InitializrMetadataTestBuilder addBom(String id, BillOfMaterials bom) { this.builder.withCustomizer( (it) -> it.getConfiguration().getEnv().getBoms().put(id, bom)); return this; }
public InitializrMetadataTestBuilder setKotlinEnv(String defaultKotlinVersion, Kotlin.Mapping... mappings) { this.builder.withCustomizer((it) -> { it.getConfiguration().getEnv().getKotlin() .setDefaultVersion(defaultKotlinVersion); for (Kotlin.Mapping mapping : mappings) { it.getConfiguration().getEnv().getKotlin().getMappings().add(mapping); } }); return this; }
@Test void resolveApplicationNameWithNoName() { ProjectRequest request = initProjectRequest(); request.setName(null); request.resolve(this.metadata); assertThat(request.getApplicationName()).isEqualTo( this.metadata.getConfiguration().getEnv().getFallbackApplicationName()); }
public InitializrMetadataTestBuilder setGradleEnv( String dependencyManagementPluginVersion) { this.builder.withCustomizer((it) -> it.getConfiguration().getEnv().getGradle() .setDependencyManagementPluginVersion(dependencyManagementPluginVersion)); return this; }
public InitializrMetadataTestBuilder addRepository(String id, String name, String url, boolean snapshotsEnabled) { this.builder.withCustomizer((it) -> { Repository repo = new Repository(); repo.setName(name); try { repo.setUrl(new URL(url)); } catch (MalformedURLException ex) { throw new IllegalArgumentException("Cannot create URL", ex); } repo.setSnapshotsEnabled(snapshotsEnabled); it.getConfiguration().getEnv().getRepositories().put(id, repo); }); return this; }
@Test void mergeSslConfiguration() { InitializrProperties config = load( new ClassPathResource("application-test-default.yml")); InitializrProperties forceSslConfig = load( new ClassPathResource("application-test-ssl.yml")); InitializrMetadata metadata = InitializrMetadataBuilder .fromInitializrProperties(config) .withInitializrProperties(forceSslConfig, true).build(); InitializrConfiguration.Env defaultEnv = new InitializrConfiguration().getEnv(); InitializrConfiguration.Env actualEnv = metadata.getConfiguration().getEnv(); assertThat(actualEnv.isForceSsl()).isEqualTo(true); }
@Test void invalidBomUnknownAdditionalBom() { InitializrMetadata metadata = initializeMetadata(); BillOfMaterials bom = BillOfMaterials.create("org.acme", "foo-bom", "1.0.0.RELEASE"); bom.getAdditionalBoms().addAll(Arrays.asList("bar-bom", "biz-bom")); BillOfMaterials barBom = BillOfMaterials.create("org.acme", "bar-bom", "1.0.0.RELEASE"); metadata.getConfiguration().getEnv().getBoms().put("foo-bom", bom); metadata.getConfiguration().getEnv().getBoms().put("bar-bom", barBom); assertThatExceptionOfType(InvalidInitializrMetadataException.class) .isThrownBy(metadata::validate) .withMessageContaining("invalid additional bom") .withMessageContaining("biz-bom"); }
@Test void invalidBomUnknownRepository() { InitializrMetadata metadata = initializeMetadata(); BillOfMaterials bom = BillOfMaterials.create("org.acme", "foo-bom", "1.0.0.RELEASE"); bom.getRepositories().add("foo-repo"); metadata.getConfiguration().getEnv().getBoms().put("foo-bom", bom); assertThatExceptionOfType(InvalidInitializrMetadataException.class) .isThrownBy(metadata::validate) .withMessageContaining("invalid repository id foo-repo") .withMessageContaining("foo-bom"); }
@Test void invalidRepository() throws MalformedURLException { InitializrMetadata metadata = initializeMetadata(); Dependency foo = Dependency.withId("foo", "org.acme", "foo"); foo.setRepository("foo-repo"); addTestDependencyGroup(metadata, foo); metadata.getConfiguration().getEnv().getRepositories().put("my-repo", new Repository("repo", new URL("http://example.com/repo"), true)); assertThatExceptionOfType(InvalidInitializrMetadataException.class) .isThrownBy(metadata::validate).withMessageContaining("foo-repo") .withMessageContaining("my-repo"); }
@Test void invalidBomVersionRangeMapping() { InitializrMetadata metadata = initializeMetadata(); BillOfMaterials bom = BillOfMaterials.create("org.acme", "foo-bom"); bom.getMappings().add(Mapping.create("[1.2.0.RELEASE,1.3.0.M1)", "1.0.0")); bom.getMappings().add(Mapping.create("FOO_BAR", "1.2.0")); metadata.getConfiguration().getEnv().getBoms().put("foo-bom", bom); assertThatExceptionOfType(InvalidInitializrMetadataException.class) .isThrownBy(metadata::validate).withMessageContaining("FOO_BAR") .withMessageContaining("foo-bom"); }
@Test void invalidBomVersionRangeMappingUnknownRepo() { InitializrMetadata metadata = initializeMetadata(); BillOfMaterials bom = BillOfMaterials.create("org.acme", "foo-bom"); bom.getMappings().add(Mapping.create("[1.0.0.RELEASE,1.3.0.M1)", "1.0.0")); Mapping mapping = Mapping.create("1.3.0.M2", "1.2.0"); mapping.getRepositories().add("foo-repo"); bom.getMappings().add(mapping); metadata.getConfiguration().getEnv().getBoms().put("foo-bom", bom); assertThatExceptionOfType(InvalidInitializrMetadataException.class) .isThrownBy(metadata::validate) .withMessageContaining("invalid repository id foo-repo") .withMessageContaining("1.3.0.M2").withMessageContaining("foo-bom"); }
@Test void invalidBomVersionRangeMappingUnknownAdditionalBom() { InitializrMetadata metadata = initializeMetadata(); BillOfMaterials bom = BillOfMaterials.create("org.acme", "foo-bom"); bom.getMappings().add(Mapping.create("[1.0.0.RELEASE,1.3.0.M1)", "1.0.0")); Mapping mapping = Mapping.create("1.3.0.M2", "1.2.0"); mapping.getAdditionalBoms().add("bar-bom"); bom.getMappings().add(mapping); metadata.getConfiguration().getEnv().getBoms().put("foo-bom", bom); assertThatExceptionOfType(InvalidInitializrMetadataException.class) .isThrownBy(metadata::validate) .withMessageContaining("invalid additional bom") .withMessageContaining("1.3.0.M2").withMessageContaining("bar-bom"); }
@Test void invalidBomNoVersion() { InitializrMetadata metadata = initializeMetadata(); metadata.getConfiguration().getEnv().getBoms().put("foo-bom", BillOfMaterials.create("org.acme", "foo-bom")); assertThatExceptionOfType(InvalidInitializrMetadataException.class) .isThrownBy(metadata::validate).withMessageContaining("No version") .withMessageContaining("foo-bom"); }
public InitializrMetadataTestBuilder setMavenParent(String groupId, String artifactId, String version, boolean includeSpringBootBom) { this.builder.withCustomizer((it) -> { ParentPom parent = it.getConfiguration().getEnv().getMaven().getParent(); parent.setGroupId(groupId); parent.setArtifactId(artifactId); parent.setVersion(version); parent.setIncludeSpringBootBom(includeSpringBootBom); }); return this; }
@Test void invalidBom() { InitializrMetadata metadata = initializeMetadata(); Dependency foo = Dependency.withId("foo", "org.acme", "foo"); foo.setBom("foo-bom"); addTestDependencyGroup(metadata, foo); metadata.getConfiguration().getEnv().getBoms().put("my-bom", BillOfMaterials.create("org.acme", "foo", "1.2.3")); assertThatExceptionOfType(InvalidInitializrMetadataException.class) .isThrownBy(metadata::validate).withMessageContaining("foo-bom") .withMessageContaining("my-bom"); }
@Test void invalidParentMissingVersion() { InitializrMetadata metadata = initializeMetadata(); ParentPom parent = metadata.getConfiguration().getEnv().getMaven().getParent(); parent.setGroupId("org.foo"); parent.setArtifactId("foo-parent"); assertThatExceptionOfType(InvalidInitializrMetadataException.class) .isThrownBy(metadata::validate).withMessageContaining( "Custom maven pom requires groupId, artifactId and version"); }