protected ObjectNode mapDependency(Dependency dependency) { if (dependency.getVersionRange() == null) { // only map the dependency if no versionRange is set return mapValue(dependency); } return null; }
@Override protected ObjectNode mapDependency(Dependency dependency) { ObjectNode content = mapValue(dependency); if (dependency.getVersionRange() != null) { content.put("versionRange", dependency.getVersionRange()); } if (dependency.getLinks() != null && !dependency.getLinks().isEmpty()) { content.set("_links", LinkMapper.mapLinks(dependency.getLinks())); } return content; }
@GetMapping(path = "/ui/dependencies", produces = "application/json") public ResponseEntity<String> dependencies( @RequestParam(required = false) String version) { List<DependencyGroup> dependencyGroups = this.metadataProvider.get() .getDependencies().getContent(); List<DependencyItem> content = new ArrayList<>(); Version requestedVersion = (StringUtils.isEmpty(version) ? null : Version.parse(version)); dependencyGroups.forEach((group) -> group.getContent().forEach((dependency) -> { if (requestedVersion != null && dependency.getVersionRange() != null) { if (dependency.match(requestedVersion)) { content.add(new DependencyItem(group.getName(), dependency)); } } else { content.add(new DependencyItem(group.getName(), dependency)); } })); String json = writeDependencies(content); return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON) .eTag(createUniqueId(json)).body(json); }
@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 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 addDefaultVersionRange() { Dependency first = Dependency.withId("first"); Dependency second = Dependency.withId("second"); second.setVersionRange("1.2.3.RELEASE"); DependencyGroup group = createDependencyGroup("test", first, second); group.setVersionRange("1.2.0.RELEASE"); DependenciesCapability capability = new DependenciesCapability(); capability.getContent().add(group); capability.validate(); assertThat(capability.get("first").getVersionRange()).isEqualTo("1.2.0.RELEASE"); assertThat(capability.get("second").getVersionRange()).isEqualTo("1.2.3.RELEASE"); }
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); } })); }