in dashboard/src/main/java/com/google/cloud/tools/opensource/dashboard/DashboardMain.java [421:446]
private static Map<Artifact, Artifact> findUpperBoundsFailures(
Map<String, String> expectedVersionMap,
DependencyGraph transitiveDependencies) {
Map<String, String> actualVersionMap = transitiveDependencies.getHighestVersionMap();
VersionComparator comparator = new VersionComparator();
Map<Artifact, Artifact> upperBoundFailures = new LinkedHashMap<>();
for (String id : expectedVersionMap.keySet()) {
String expectedVersion = expectedVersionMap.get(id);
String actualVersion = actualVersionMap.get(id);
// Check that the actual version is not null because it is
// possible for dependencies to appear or disappear from the tree
// depending on which version of another dependency is loaded.
// In both cases, no action is needed.
if (actualVersion != null && comparator.compare(actualVersion, expectedVersion) < 0) {
// Maven did not choose highest version
DefaultArtifact lower = new DefaultArtifact(id + ":" + actualVersion);
DefaultArtifact upper = new DefaultArtifact(id + ":" + expectedVersion);
upperBoundFailures.put(lower, upper);
}
}
return upperBoundFailures;
}