public GAV asGavObject() { return new GAV(groupId, artifactId, version); } }
public BuiltReportModule(GAV gav) { this.groupId = gav.getGroupId(); this.artifactId = gav.getArtifactId(); this.version = gav.getVersion(); }
@Override public int compareTo(ArtifactReport o) { return this.gav.compareTo(o.gav); } }
public static String getName(GAV gav) { return String.format("%s-%s-%s", gav.getArtifactId(), gav.getVersion(), UUID.randomUUID() .toString().substring(0, 5)); }
@Override public Set<BuiltReportModule> getBuiltReport(SCMLocator scml) throws ScmException, PomAnalysisException, CommunicationException { VersionParser versionParser = new VersionParser(VersionParser.DEFAULT_SUFFIX); Map<GA, Set<GAV>> dependenciesOfModules = scmConnector.getDependenciesOfModules( scml.getScmUrl(), scml.getRevision(), scml.getPomPath(), scml.getRepositories()); Set<CompletableFuture<BuiltReportModule>> builtSet = new HashSet<>(); for (Map.Entry<GA, Set<GAV>> e : dependenciesOfModules.entrySet()) { for (GAV gav : e.getValue()) { CompletableFuture<Set<ProductArtifacts>> artifacts = productProvider.getArtifacts(gav.getGA()); artifacts = filterBuiltArtifacts(artifacts); builtSet.add(analyzeVersions(versionParser, gav.getVersion(), artifacts) .thenApply(v -> toBuiltReportModule(gav, v))); } } return joinFutures(builtSet); }
public String getVersion() { return gav.getVersion(); } }
public String getArtifactId() { return gav.getArtifactId(); }
@Override public GAVToplevelDependencies getToplevelDependenciesFromModules(SCMLocator scml) throws ScmException, PomAnalysisException { Optional<MavenProject> pom = scmConnector.getPom(scml.getScmUrl(), scml.getRevision(), scml.getPomPath()); GAV gav = pom.orElseThrow(() -> new ScmException("Failed to find specified pom: " + scml)).getGAV(); Map<GA, Set<GAV>> dependenciesOfModules = scmConnector.getDependenciesOfModules(scml.getScmUrl(), scml.getRevision(), scml.getPomPath(), scml.getRepositories()); Set<GAV> deps = dependenciesOfModules.values().stream() .flatMap(Set::stream) .filter(g -> !dependenciesOfModules.containsKey(g.getGA())) .collect(Collectors.toCollection(HashSet::new)); return new GAVToplevelDependencies(gav, deps); }
public String getGroupId() { return gav.getGroupId(); }
private boolean isProjectVersionRefSameAsGAV(Path file, GAV gav) { PomPeek pk = new PomPeek(file.toFile()); if (pk.getKey() == null) { return false; } else { return gav.equals(GalleyWrapper.generateGAV(pk.getKey())); } }
private List<LookupReport> createLookupReports(LookupGAVsRequest request, Map<GA, CompletableFuture<Set<ProductArtifacts>>> gaProductArtifactsMap) throws CommunicationException { List<CompletableFuture<Void>> futures = new ArrayList<>(); List<LookupReport> reports = new ArrayList<>(); String suffix = request.getVersionSuffix(); VersionParser versionParser; if (suffix == null || suffix.isEmpty()) { versionParser = new VersionParser(VersionParser.DEFAULT_SUFFIX); }else{ versionParser = new VersionParser(suffix); } request.getGavs().stream() .distinct() .forEach((gav) -> { LookupReport lr = new LookupReport(gav); reports.add(lr); CompletableFuture<Set<ProductArtifacts>> artifacts = gaProductArtifactsMap.get(gav.getGA()); futures.add(analyzeVersions(versionParser, gav.getVersion(), artifacts).thenAccept(v -> { lr.setAvailableVersions(v.getAvailableVersions()); lr.setBestMatchVersion(v.getBestMatchVersion().orElse(null)); })); futures.add(artifacts.thenAccept(pas -> { lr.setWhitelisted(toWhitelisted(pas)); })); lr.setBlacklisted(blackArtifactService.isArtifactPresent(gav)); }); joinFutures(futures); return reports; }
public String getVersion() { return gav.getVersion(); }
public String getArtifactId() { return gav.getArtifactId(); }
/** * Looks up built versions for the ProjectDetail. Sets internallyBuilt, availableVersions. */ private void getBuiltVersions(ProjectDetail project) { CompletableFuture<Set<ProductArtifacts>> artifacts = productProvider.getArtifacts(project.getGav().getGA()); futures.add(versionFinder.getVersionsFor(project.getGav(), artifacts).thenAccept(lr -> { project.setAvailableVersions(lr.getAvailableVersions()); project.setInternallyBuilt(lr.getBestMatchVersion()); })); } }
public String getGroupId() { return gav.getGroupId(); }
/** * Returns GalleyWrapper pointer to artifact representing given GAV. * @param gav GAV of the artifact. * @return GalleyWrapper "pointer" to an artifact. * @throws org.jboss.da.communication.pom.PomAnalysisException */ public Artifact getGAV(GAV gav) throws PomAnalysisException { try { for (Path p : LocalRepo.getAllPoms(scm)) { PomPeek pp = new PomPeek(p.toFile()); if (pp.getKey() == null) continue; if (gav.equals(generateGAV(pp.getKey()))) { return new Artifact(p); } } } catch (IOException ex) { throw new PomAnalysisException(ex); } throw new PomAnalysisException("Artifact " + gav + " was not found in repository"); }
public Report(GAV gav, List<String> availableVersions, String bestMatchVersion, boolean dependencyVersionsSatisfied, List<Report> dependencies, boolean blacklisted, List<RestProductInput> whitelisted, int notBuiltDependencies) { this(gav.getGroupId(), gav.getArtifactId(), gav.getVersion(), availableVersions, bestMatchVersion, dependencyVersionsSatisfied, dependencies, blacklisted, whitelisted, notBuiltDependencies); }
private CompletableFuture<Void> fillArtifactReport(ArtifactReport report, Set<Product> products) { GAV gav = report.getGav(); CompletableFuture<Set<ProductArtifacts>> artifacts = productProvider.getArtifacts(gav .getGA()); artifacts = filterProductArtifacts(products, artifacts); report.setBlacklisted(blackArtifactService.isArtifactPresent(gav)); VersionParser parser = new VersionParser(VersionParser.DEFAULT_SUFFIX); CompletableFuture<Void> fillVersions = analyzeVersions(parser, gav.getVersion(), artifacts) .thenAccept(v -> { report.setAvailableVersions(v.getAvailableVersions()); report.setBestMatchVersion(v.getBestMatchVersion()); }); CompletableFuture<Void> fillWhitelist = artifacts.thenAccept(pas -> { List<Product> whiteProducts = pas.stream() .map(pa -> pa.getProduct()) .filter(p -> !UNKNOWN.equals(p)) .collect(Collectors.toList()); report.setWhitelisted(whiteProducts); }); return CompletableFuture.allOf(fillVersions, fillWhitelist); }
private Set<ProductArtifacts> getArtifacts0(GA ga) { Set<Artifact> allArtifacts = getVersionsStream(ga) .map(x -> new GAV(ga, x)) .map(Artifact::new) .collect(Collectors.toSet()); if (allArtifacts.isEmpty()) { return Collections.emptySet(); } return Collections.singleton(new ProductArtifacts(Product.UNKNOWN, allArtifacts)); }
private static Set<ProductArtifact> mapProducts(Set<ProductArtifacts> products, GAV gav, VersionParser versionParser) { VersionComparator comparator = new VersionComparator(versionParser); return products.stream() .flatMap(e -> e.getArtifacts().stream() .map(x -> toProductArtifact(e.getProduct(), x, gav.getVersion(), comparator))) .collect(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(ProductArtifact::getArtifact)))); }