@Test void setCoordinatesFromId() { Dependency dependency = Dependency.withId("org.foo:bar:1.2.3"); dependency.resolve(); assertThat(dependency.getGroupId()).isEqualTo("org.foo"); assertThat(dependency.getArtifactId()).isEqualTo("bar"); assertThat(dependency.getVersion()).isEqualTo("1.2.3"); assertThat(dependency.getId()).isEqualTo("org.foo:bar:1.2.3"); }
@Test void resolveVersionRequirement() { Dependency dependency = Dependency.withId("web"); dependency.getMappings().add(Dependency.Mapping .create("[1.1.0.RELEASE, 1.2.0.RELEASE)", null, null, "0.1.0.RELEASE")); dependency.resolve(); Dependency resolved = dependency.resolve(Version.parse("1.1.5.RELEASE")); assertThat(resolved.getVersionRequirement()) .isEqualTo(">=1.1.0.RELEASE and <1.2.0.RELEASE"); }
@Test void setIdFromSimpleName() { Dependency dependency = Dependency.withId("web"); dependency.resolve(); assertThat(dependency.getGroupId()).isEqualTo("org.springframework.boot"); assertThat(dependency.getArtifactId()).isEqualTo("spring-boot-starter-web"); assertThat(dependency.getVersion()).isNull(); assertThat(dependency.getId()).isEqualTo("web"); }
for (Dependency dependency : metadata.getDependencies().getAll()) { if (dependency.match(bootVersion)) { dependencies.put(dependency.getId(), dependency.resolve(bootVersion));
@Test void resolveVersionRangeWithX() { Dependency dependency = Dependency.withId("foo1", "com.acme", "foo1", "0.3.0.RELEASE"); dependency.setVersionRange("[1.1.0.RELEASE, 1.2.x.RELEASE)"); dependency.resolve(); assertThat(dependency.getVersionRange()) .isEqualTo("[1.1.0.RELEASE,1.2.999.RELEASE)"); }
@Test void setCoordinatesFromIdNoVersion() { Dependency dependency = Dependency.withId("org.foo:bar"); dependency.resolve(); assertThat(dependency.getGroupId()).isEqualTo("org.foo"); assertThat(dependency.getArtifactId()).isEqualTo("bar"); assertThat(dependency.getVersion()).isNull(); assertThat(dependency.getId()).isEqualTo("org.foo:bar"); }
@Test void resolveVersionWithX() { Dependency dependency1 = Dependency.withId("foo1", "com.acme", "foo1", "0.3.0.RELEASE"); dependency1.setVersionRange("1.2.x.RELEASE"); dependency1.resolve(); assertThat(dependency1.getVersionRange()).isEqualTo("1.2.999.RELEASE"); }
@Test void setIdFromCoordinatesNoVersion() { Dependency dependency = new Dependency(); dependency.setGroupId("org.foo"); dependency.setArtifactId("bar"); dependency.resolve(); assertThat(dependency.getId()).isEqualTo("org.foo:bar"); }
@Test void resolveMatchingWithCustomGroupId() { Dependency dependency = Dependency.withId("foo", "com.acme", "foo", "0.3.0.RELEASE"); dependency.getMappings().add(Dependency.Mapping .create("[1.1.0.RELEASE, 1.2.0.RELEASE)", null, null, "1.0.0.RELEASE")); dependency.getMappings().add(Dependency.Mapping .create("[1.2.0.RELEASE, 1.3.0.RELEASE)", null, "bar", null)); dependency.resolve(); validateResolvedDependency(dependency.resolve(Version.parse("1.1.5.RELEASE")), "foo", "com.acme", "foo", "1.0.0.RELEASE"); validateResolvedDependency(dependency.resolve(Version.parse("1.2.5.RELEASE")), "foo", "com.acme", "bar", "0.3.0.RELEASE"); }
@Test void setIdFromCoordinates() { Dependency dependency = new Dependency(); dependency.setGroupId("org.foo"); dependency.setArtifactId("bar"); dependency.setVersion("1.0"); dependency.resolve(); assertThat(dependency.getId()).isEqualTo("org.foo:bar"); }
@Test void resolveMatchingVersionMapping() { Dependency dependency = Dependency.withId("web", null, null, "0.3.0.RELEASE"); dependency.setDescription("A web dependency"); dependency.getKeywords().addAll(Arrays.asList("foo", "bar")); dependency.getAliases().add("the-web"); dependency.getFacets().add("web"); dependency.getMappings().add(Dependency.Mapping .create("[1.1.0.RELEASE, 1.2.0.RELEASE)", null, null, "0.1.0.RELEASE")); dependency.getMappings().add(Dependency.Mapping .create("[1.2.0.RELEASE, 1.3.0.RELEASE)", null, null, "0.2.0.RELEASE")); dependency.resolve(); validateResolvedWebDependency(dependency.resolve(Version.parse("1.1.5.RELEASE")), "org.springframework.boot", "spring-boot-starter-web", "0.1.0.RELEASE"); validateResolvedWebDependency(dependency.resolve(Version.parse("1.2.0.RELEASE")), "org.springframework.boot", "spring-boot-starter-web", "0.2.0.RELEASE"); validateResolvedWebDependency(dependency.resolve(Version.parse("2.1.3.M1")), "org.springframework.boot", "spring-boot-starter-web", "0.3.0.RELEASE"); // default }
@Test void resolveMatchArtifactMapping() { Dependency dependency = Dependency.withId("web", null, null, "0.3.0.RELEASE"); dependency.setDescription("A web dependency"); dependency.getKeywords().addAll(Arrays.asList("foo", "bar")); dependency.getAliases().add("the-web"); dependency.getFacets().add("web"); dependency.getMappings().add(Dependency.Mapping .create("[1.1.0.RELEASE, 1.2.0.RELEASE)", "org.spring.boot", null, null)); dependency.getMappings().add(Dependency.Mapping .create("[1.2.0.RELEASE, 1.3.0.RELEASE)", null, "starter-web", null)); dependency.resolve(); validateResolvedWebDependency(dependency.resolve(Version.parse("1.1.5.RELEASE")), "org.spring.boot", "spring-boot-starter-web", "0.3.0.RELEASE"); validateResolvedWebDependency(dependency.resolve(Version.parse("1.2.0.RELEASE")), "org.springframework.boot", "starter-web", "0.3.0.RELEASE"); validateResolvedWebDependency(dependency.resolve(Version.parse("2.1.3.M1")), "org.springframework.boot", "spring-boot-starter-web", "0.3.0.RELEASE"); // default }
@Test void invalidDependency() { assertThatExceptionOfType(InvalidInitializrMetadataException.class) .isThrownBy(() -> new Dependency().resolve()); }
private void index() { this.indexedDependencies.clear(); this.content.forEach((group) -> group.content.forEach((dependency) -> { // Apply defaults if (dependency.getVersionRange() == null && group.getVersionRange() != null) { dependency.setVersionRange(group.getVersionRange()); } if (dependency.getBom() == null && group.getBom() != null) { dependency.setBom(group.getBom()); } if (dependency.getRepository() == null && group.getRepository() != null) { dependency.setRepository(group.getRepository()); } dependency.resolve(); indexDependency(dependency.getId(), dependency); for (String alias : dependency.getAliases()) { indexDependency(alias, dependency); } })); }
dependency.getMappings().add(Dependency.Mapping.create( "[1.1.x.BUILD-SNAPSHOT, 1.2.0.RELEASE)", null, null, "0.2.0.RELEASE")); dependency.resolve(); validateResolvedWebDependency(dependency.resolve(Version.parse("1.1.5.RELEASE")), "org.springframework.boot", "spring-boot-starter-web", "0.1.0.RELEASE"); validateResolvedWebDependency( dependency.resolve(Version.parse("1.1.6.BUILD-SNAPSHOT")), "org.springframework.boot", "spring-boot-starter-web", "0.2.0.RELEASE"); validateResolvedWebDependency(dependency.resolve(Version.parse("2.1.3.M1")), "org.springframework.boot", "spring-boot-starter-web", "0.3.0.RELEASE"); // default validateResolvedWebDependency(dependency.resolve(Version.parse("1.1.5.RELEASE")), "org.springframework.boot", "spring-boot-starter-web", "0.1.0.RELEASE"); validateResolvedWebDependency(dependency.resolve(Version.parse("1.1.6.RELEASE")), "org.springframework.boot", "spring-boot-starter-web", "0.1.0.RELEASE"); validateResolvedWebDependency( dependency.resolve(Version.parse("1.1.7.BUILD-SNAPSHOT")), "org.springframework.boot", "spring-boot-starter-web", "0.2.0.RELEASE"); validateResolvedWebDependency(dependency.resolve(Version.parse("2.1.3.M1")), "org.springframework.boot", "spring-boot-starter-web", "0.3.0.RELEASE"); // default
"Unknown dependency '" + it + "' check project metadata"); return dependency.resolve(requestedVersion); }).collect(Collectors.toList()); this.resolvedDependencies.forEach((it) -> {
.isEqualTo("1.1.0-BUILD-SNAPSHOT"); assertThat(metadata.getDependencies().get("bar") .resolve(Version.parse("1.3.6.RELEASE")).getVersion()) .isEqualTo("0.1.0.RELEASE"); assertThat(metadata.getDependencies().get("bar") .resolve(Version.parse("1.3.7.BUILD-SNAPSHOT")).getVersion()) .isEqualTo("0.2.0.RELEASE"); assertThat(metadata.getConfiguration().getEnv().getKotlin()