@Override public String write(DependencyMetadata metadata) { ObjectNode json = nodeFactory.objectNode(); json.put("bootVersion", metadata.getBootVersion().toString()); json.set("dependencies", mapNode(metadata.getDependencies().entrySet().stream() .collect(Collectors.toMap(Map.Entry::getKey, (entry) -> mapDependency(entry.getValue()))))); json.set("repositories", mapNode(metadata.getRepositories().entrySet().stream() .collect(Collectors.toMap(Map.Entry::getKey, (entry) -> mapRepository(entry.getValue()))))); json.set("boms", mapNode(metadata.getBoms().entrySet().stream().collect(Collectors .toMap(Map.Entry::getKey, (entry) -> mapBom(entry.getValue()))))); return json.toString(); }
@Test void repoFromBomAccordingToAnotherVersion() { DependencyMetadata dependencyMetadata = testRepoFromBomAccordingToVersion( "1.1.5.RELEASE"); assertThat(dependencyMetadata.getBootVersion()) .isEqualTo(Version.parse("1.1.5.RELEASE")); assertThat(dependencyMetadata.getDependencies()).hasSize(3); assertThat(dependencyMetadata.getRepositories()).hasSize(2); assertThat(dependencyMetadata.getBoms()).hasSize(1); assertThat(dependencyMetadata.getRepositories().get("repo-foo").getName()) .isEqualTo("foo"); assertThat(dependencyMetadata.getRepositories().get("repo-biz").getName()) .isEqualTo("biz"); 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("3.0.0.RELEASE"); }
@Test void repoFromBomAccordingToVersion() { DependencyMetadata dependencyMetadata = testRepoFromBomAccordingToVersion( "1.0.9.RELEASE"); assertThat(dependencyMetadata.getBootVersion()) .isEqualTo(Version.parse("1.0.9.RELEASE")); assertThat(dependencyMetadata.getDependencies()).hasSize(3); assertThat(dependencyMetadata.getRepositories()).hasSize(2); assertThat(dependencyMetadata.getBoms()).hasSize(1); assertThat(dependencyMetadata.getRepositories().get("repo-foo").getName()) .isEqualTo("foo"); assertThat(dependencyMetadata.getRepositories().get("repo-bar").getName()) .isEqualTo("bar"); 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("2.0.0.RELEASE"); }
@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 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 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")); }