in dashboard/src/main/java/com/google/cloud/tools/opensource/dashboard/DashboardMain.java [574:594]
private static ImmutableMap<String, String> findRootCauses(ClassPathResult classPathResult) {
// Freemarker is not good at handling non-string keys. Path object in .ftl is automatically
// converted to String. https://freemarker.apache.org/docs/app_faq.html#faq_nonstring_keys
ImmutableMap.Builder<String, String> builder = ImmutableMap.builder();
for (ClassPathEntry entry : classPathResult.getClassPath()) {
List<DependencyPath> dependencyPaths = classPathResult.getDependencyPaths(entry);
ImmutableList<String> commonVersionlessArtifacts =
commonVersionlessArtifacts(dependencyPaths);
if (dependencyPaths.size() > MINIMUM_NUMBER_DEPENDENCY_PATHS
&& commonVersionlessArtifacts.size() > 1) { // The last paths elements are always same
builder.put(
entry.toString(),
summaryMessage(
dependencyPaths.size(), commonVersionlessArtifacts, dependencyPaths.get(0)));
}
}
return builder.build();
}