@Override public String toString() { return "Dependency{" + "id='" + getId() + '\'' + ", groupId='" + this.groupId + '\'' + ", artifactId='" + this.artifactId + '\'' + ", version='" + this.version + '\'' + '}'; }
/** * Generate an id using the groupId and artifactId. * @return the generated ID */ public String generateId() { if (this.groupId == null || this.artifactId == null) { throw new IllegalArgumentException("Could not generate id for " + this + ": at least groupId and artifactId must be set."); } setId(this.groupId + ":" + this.artifactId); return getId(); }
protected void handleDependencies(ProjectRequest request) { List<Dependency> dependencies = request.getResolvedDependencies(); if (dependencies != null) { dependencies.forEach((it) -> { if (!ProjectRequest.DEFAULT_STARTER.equals(it.getId())) { String id = sanitize(it.getId()); increment(key("dependency." + id)); } }); } }
if (getId() == null) { if (!hasCoordinates()) { throw new InvalidInitializrMetadataException( StringTokenizer st = new StringTokenizer(getId(), ":"); if (st.countTokens() == 1) { // assume spring-boot-starter asSpringBootStarter(getId()); throw new InvalidInitializrMetadataException( "Invalid dependency, id should have the form groupId:artifactId[:version] but got " + getId());
private static ObjectNode mapDependency(DependencyItem item) { ObjectNode node = JsonNodeFactory.instance.objectNode(); Dependency dependency = item.dependency; node.put("id", dependency.getId()); node.put("name", dependency.getName()); node.put("group", item.group); if (dependency.getDescription() != null) { node.put("description", dependency.getDescription()); } if (dependency.getWeight() > 0) { node.put("weight", dependency.getWeight()); } if (!CollectionUtils.isEmpty(dependency.getKeywords()) || !CollectionUtils.isEmpty(dependency.getAliases())) { List<String> all = new ArrayList<>(dependency.getKeywords()); all.addAll(dependency.getAliases()); node.put("keywords", StringUtils.collectionToCommaDelimitedString(all)); } return node; }
protected String generateDependencyTable(InitializrMetadata metadata) { String[][] dependencyTable = new String[metadata.getDependencies().getAll().size() + 1][]; dependencyTable[0] = new String[] { "Id", "Description", "Required version" }; int i = 1; for (Dependency dep : metadata.getDependencies().getAll().stream() .sorted(Comparator.comparing(MetadataElement::getId)) .collect(Collectors.toList())) { String[] data = new String[3]; data[0] = dep.getId(); data[1] = (dep.getDescription() != null) ? dep.getDescription() : dep.getName(); data[2] = dep.getVersionRequirement(); dependencyTable[i++] = data; } return TableGenerator.generate(dependencyTable); }
private static void validateResolvedDependency(Dependency dependency, String id, String expectedGroupId, String expectedArtifactId, String expectedVersion) { assertThat(dependency.getId()).isEqualTo(id); assertThat(dependency.getGroupId()).isEqualTo(expectedGroupId); assertThat(dependency.getArtifactId()).isEqualTo(expectedArtifactId); assertThat(dependency.getVersion()).isEqualTo(expectedVersion); }
@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 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 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 mapDependency() throws Exception { Dependency d = Dependency.withId("foo", "org.foo", "foo"); d.setRepository("my-repo"); d.setBom("my-bom"); Repository repository = new Repository(); repository.setName("foo-repo"); repository.setUrl(new URL("http://example.com/foo")); BillOfMaterials bom = BillOfMaterials.create("org.foo", "foo-bom", "1.0.0.RELEASE"); DependencyMetadata metadata = new DependencyMetadata( Version.parse("1.2.0.RELEASE"), Collections.singletonMap(d.getId(), d), Collections.singletonMap("repo-id", repository), Collections.singletonMap("bom-id", bom)); JSONObject content = new JSONObject(this.mapper.write(metadata)); assertThat(content.getJSONObject("dependencies").getJSONObject("foo") .getString("bom")).isEqualTo("my-bom"); assertThat(content.getJSONObject("dependencies").getJSONObject("foo") .getString("repository")).isEqualTo("my-repo"); assertThat(content.getJSONObject("repositories").getJSONObject("repo-id") .getString("name")).isEqualTo("foo-repo"); assertThat(content.getJSONObject("boms").getJSONObject("bom-id") .getString("artifactId")).isEqualTo("foo-bom"); assertThat(content.getJSONObject("boms").getJSONObject("bom-id") .getString("version")).isEqualTo("1.0.0.RELEASE"); }
public void updateVersionRanges(VersionParser versionParser) { if (this.versionRange != null) { try { this.range = versionParser.parseRange(this.versionRange); this.versionRange = this.range.toRangeString(); this.versionRequirement = this.range.toString(); } catch (InvalidVersionException ex) { throw new InvalidInitializrMetadataException( "Invalid version range '" + this.versionRange + " for " + "dependency with id '" + getId() + "'", ex); } } this.mappings.forEach((it) -> { try { it.range = versionParser.parseRange(it.versionRange); } catch (InvalidVersionException ex) { throw new InvalidInitializrMetadataException( "Invalid version range " + it.versionRange + " for " + this, ex); } }); }
@Test void setIdFromCoordinatesNoVersion() { Dependency dependency = new Dependency(); dependency.setGroupId("org.foo"); dependency.setArtifactId("bar"); dependency.resolve(); assertThat(dependency.getId()).isEqualTo("org.foo:bar"); }
private static void assertBootStarter(Dependency actual, String name) { Dependency expected = new Dependency(); expected.asSpringBootStarter(name); assertDependency(actual, expected.getGroupId(), expected.getArtifactId(), expected.getVersion()); assertThat(actual.getId()).isEqualTo(name); }
@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"); }
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); } })); }
if (!it.match(requestedVersion)) { throw new InvalidProjectRequestException( "Dependency '" + it.getId() + "' is not compatible " + "with Spring Boot " + requestedVersion);
@Override public void postProcessAfterResolution(ProjectRequest request, InitializrMetadata metadata) { if (isSpringBootVersionBefore(request, VERSION_2_1_0_M1) && request.getResolvedDependencies().stream().anyMatch( (dependency) -> dependency.getId().startsWith("cloud-gcp"))) { request.getBoms().put("spring-cloud-gcp", SPRING_CLOUD_GCP_BOM); } }