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 resolveDependencies() { Dependency first = Dependency.withId("first", "org.foo", "first"); first.getMappings().add(Dependency.Mapping.create( "[1.0.0.RELEASE, 1.1.0.RELEASE)", "org.bar", "second", "0.1.0.RELEASE")); first.getMappings().add(Dependency.Mapping.create("1.1.0.RELEASE", "org.biz", "third", "0.2.0.RELEASE")); Dependency second = Dependency.withId("second", "org.foo", "second"); InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults() .addDependencyGroup("test", first, second).build(); DependencyMetadata dependencyMetadata = this.provider.get(metadata, Version.parse("1.0.5.RELEASE")); assertThat(dependencyMetadata.getDependencies()).hasSize(2); assertThat(dependencyMetadata.getDependencies().get("first").getGroupId()) .isEqualTo("org.bar"); assertThat(dependencyMetadata.getDependencies().get("first").getArtifactId()) .isEqualTo("second"); assertThat(dependencyMetadata.getDependencies().get("first").getVersion()) .isEqualTo("0.1.0.RELEASE"); DependencyMetadata anotherDependencyMetadata = this.provider.get(metadata, Version.parse("1.1.0.RELEASE")); assertThat(anotherDependencyMetadata.getDependencies()).hasSize(2); assertThat(anotherDependencyMetadata.getDependencies().get("first").getGroupId()) .isEqualTo("org.biz"); assertThat( anotherDependencyMetadata.getDependencies().get("first").getArtifactId()) .isEqualTo("third"); assertThat(anotherDependencyMetadata.getDependencies().get("first").getVersion()) .isEqualTo("0.2.0.RELEASE"); }
@Test void filterDependencies() { Dependency first = Dependency.withId("first", "org.foo", "first"); first.setVersionRange("2.1.4.RELEASE"); Dependency second = Dependency.withId("second", "org.foo", "second"); Dependency third = Dependency.withId("third", "org.foo", "third"); third.setVersionRange("2.1.8.RELEASE"); InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults() .addDependencyGroup("test", first, second, third).build(); DependencyMetadata dependencyMetadata = this.provider.get(metadata, Version.parse("2.1.5.RELEASE")); assertThat(dependencyMetadata.getDependencies()).hasSize(2); assertThat(dependencyMetadata.getRepositories()).isEmpty(); assertThat(dependencyMetadata.getBoms()).isEmpty(); assertThat(dependencyMetadata.getDependencies().get("first")).isSameAs(first); assertThat(dependencyMetadata.getDependencies().get("second")).isSameAs(second); }
@Test void addBomAndRemoveDuplicates() { Dependency first = Dependency.withId("first", "org.foo", "first"); first.setBom("bom-foo"); Dependency second = Dependency.withId("second", "org.foo", "second"); Dependency third = Dependency.withId("third", "org.foo", "third"); third.setBom("bom-foo"); BillOfMaterials bom = BillOfMaterials.create("org.foo", "bom"); bom.getMappings().add(BillOfMaterials.Mapping .create("[1.0.0.RELEASE, 1.1.8.RELEASE)", "1.0.0.RELEASE")); bom.getMappings() .add(BillOfMaterials.Mapping.create("1.1.8.RELEASE", "2.0.0.RELEASE")); InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults() .addBom("bom-foo", bom).addDependencyGroup("test", first, second, third) .build(); DependencyMetadata dependencyMetadata = this.provider.get(metadata, Version.parse("1.1.5.RELEASE")); assertThat(dependencyMetadata.getDependencies()).hasSize(3); assertThat(dependencyMetadata.getRepositories()).isEmpty(); assertThat(dependencyMetadata.getBoms()).hasSize(1); assertThat(dependencyMetadata.getBoms().get("bom-foo").getGroupId()) .isEqualTo("org.foo"); assertThat(dependencyMetadata.getBoms().get("bom-foo").getArtifactId()) .isEqualTo("bom"); assertThat(dependencyMetadata.getBoms().get("bom-foo").getVersion()) .isEqualTo("1.0.0.RELEASE"); }
@Test void addRepoAndRemoveDuplicates() { Dependency first = Dependency.withId("first", "org.foo", "first"); first.setRepository("repo-foo"); Dependency second = Dependency.withId("second", "org.foo", "second"); Dependency third = Dependency.withId("third", "org.foo", "third"); third.setRepository("repo-foo"); InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults() .addRepository("repo-foo", "my-repo", "http://localhost", false) .addDependencyGroup("test", first, second, third).build(); DependencyMetadata dependencyMetadata = this.provider.get(metadata, Version.parse("1.1.5.RELEASE")); assertThat(dependencyMetadata.getDependencies()).hasSize(3); assertThat(dependencyMetadata.getRepositories()).hasSize(1); assertThat(dependencyMetadata.getBoms()).isEmpty(); assertThat(dependencyMetadata.getRepositories().get("repo-foo")).isSameAs( metadata.getConfiguration().getEnv().getRepositories().get("repo-foo")); }
private DependencyMetadata testRepoFromBomAccordingToVersion(String bootVersion) { Dependency first = Dependency.withId("first", "org.foo", "first"); first.setRepository("repo-foo"); Dependency second = Dependency.withId("second", "org.foo", "second"); Dependency third = Dependency.withId("third", "org.foo", "third"); third.setBom("bom-foo"); BillOfMaterials bom = BillOfMaterials.create("org.foo", "bom"); bom.getMappings() .add(BillOfMaterials.Mapping.create("[1.0.0.RELEASE, 1.1.0.RELEASE)", "2.0.0.RELEASE", "repo-foo", "repo-bar")); bom.getMappings().add(BillOfMaterials.Mapping.create("1.1.0.RELEASE", "3.0.0.RELEASE", "repo-biz")); InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults() .addBom("bom-foo", bom) .addRepository("repo-foo", "foo", "http://localhost", false) .addRepository("repo-bar", "bar", "http://localhost", false) .addRepository("repo-biz", "biz", "http://localhost", false) .addDependencyGroup("test", first, second, third).build(); return this.provider.get(metadata, Version.parse(bootVersion)); }