use of com.google.cloud.tools.opensource.dependencies.Update in project cloud-opensource-java by GoogleCloudPlatform.
the class DashboardMain method generateArtifactReport.
private static ArtifactResults generateArtifactReport(Configuration configuration, Path output, Artifact artifact, ArtifactInfo artifactInfo, List<DependencyGraph> globalDependencies, ImmutableMap<ClassPathEntry, ImmutableSet<LinkageProblem>> linkageProblemTable, ClassPathResult classPathResult, Bom bom) throws IOException, TemplateException {
String coordinates = Artifacts.toCoordinates(artifact);
File outputFile = output.resolve(coordinates.replace(':', '_') + ".html").toFile();
try (Writer out = new OutputStreamWriter(new FileOutputStream(outputFile), StandardCharsets.UTF_8)) {
// includes all versions
DependencyGraph graph = artifactInfo.getCompleteDependencies();
List<Update> convergenceIssues = graph.findUpdates();
// picks versions according to Maven rules
DependencyGraph transitiveDependencies = artifactInfo.getTransitiveDependencies();
Map<Artifact, Artifact> upperBoundFailures = findUpperBoundsFailures(graph.getHighestVersionMap(), transitiveDependencies);
Map<Artifact, Artifact> globalUpperBoundFailures = findUpperBoundsFailures(collectLatestVersions(globalDependencies), transitiveDependencies);
long totalLinkageErrorCount = linkageProblemTable.values().stream().flatMap(problemToClasses -> problemToClasses.stream().map(LinkageProblem::getSymbol)).distinct().count();
Template report = configuration.getTemplate("/templates/component.ftl");
Map<String, Object> templateData = new HashMap<>();
DefaultObjectWrapper wrapper = new DefaultObjectWrapperBuilder(Configuration.VERSION_2_3_28).build();
TemplateHashModel staticModels = wrapper.getStaticModels();
templateData.put("linkageProblem", staticModels.get(LinkageProblem.class.getName()));
templateData.put("artifact", artifact);
templateData.put("updates", convergenceIssues);
templateData.put("upperBoundFailures", upperBoundFailures);
templateData.put("globalUpperBoundFailures", globalUpperBoundFailures);
templateData.put("lastUpdated", LocalDateTime.now());
templateData.put("dependencyGraph", graph);
templateData.put("linkageProblems", linkageProblemTable);
templateData.put("classPathResult", classPathResult);
templateData.put("totalLinkageErrorCount", totalLinkageErrorCount);
templateData.put("coordinates", bom.getCoordinates());
report.process(templateData, out);
ArtifactResults results = new ArtifactResults(artifact);
results.addResult(TEST_NAME_UPPER_BOUND, upperBoundFailures.size());
results.addResult(TEST_NAME_GLOBAL_UPPER_BOUND, globalUpperBoundFailures.size());
results.addResult(TEST_NAME_DEPENDENCY_CONVERGENCE, convergenceIssues.size());
results.addResult(TEST_NAME_LINKAGE_CHECK, (int) totalLinkageErrorCount);
return results;
}
}
use of com.google.cloud.tools.opensource.dependencies.Update in project java-cloud-bom by googleapis.
the class DashboardMain method generateArtifactReport.
private static ArtifactResults generateArtifactReport(Artifact artifact, ArtifactInfo artifactInfo) {
// includes all versions
DependencyGraph graph = artifactInfo.getCompleteDependencies();
List<Update> convergenceIssues = graph.findUpdates();
// picks versions according to Maven rules
DependencyGraph transitiveDependencies = artifactInfo.getTransitiveDependencies();
Map<Artifact, Artifact> upperBoundFailures = findUpperBoundsFailures(graph.getHighestVersionMap(), transitiveDependencies);
ArtifactResults results = new ArtifactResults(artifact);
results.addResult(TEST_NAME_UPPER_BOUND, upperBoundFailures.size());
results.addResult(TEST_NAME_DEPENDENCY_CONVERGENCE, convergenceIssues.size());
return results;
}
Aggregations