/** * * @return - a list of jar pairs that have overlapping class files - only a limited list of classpath resources is * considered. * */ public List<JarPair> findOverlappingJars(List<ClasspathResource> classpathResources, boolean excludeSameSizeDups) { List<ClasspathResource> classFilesWithDuplicates = findClassFileDuplicates(classpathResources, excludeSameSizeDups); //jar overlap report Map<JarPair, JarPair> overlapPairs = new HashMap<>(); for (ClasspathResource classFile : classFilesWithDuplicates) { List<ClasspathResourceVersion> versions = classFile.getResourceFileVersions(); findOverlappingJarsPairs(versions, overlapPairs, 0); } List<JarPair> overlapReportLines = new ArrayList<>(overlapPairs.keySet()); Comparator<JarPair> comparator = new Comparator<JarPair>() { @Override public int compare(JarPair line1, JarPair line2) { return -1 * line1.getDupClassesTotal().compareTo(line2.getDupClassesTotal()); } }; Collections.sort(overlapReportLines, comparator); return overlapReportLines; }
/** * * @return - a list of jar pairs that have overlapping class files - only a limited list of classpath resources is * considered. * */ public List<JarPair> findOverlappingJars(List<ClasspathResource> classpathResources, boolean excludeSameSizeDups) { List<ClasspathResource> classFilesWithDuplicates = findClassFileDuplicates(classpathResources, excludeSameSizeDups); //jar overlap report Map<JarPair, JarPair> overlapPairs = new HashMap<>(); for (ClasspathResource classFile : classFilesWithDuplicates) { List<ClasspathResourceVersion> versions = classFile.getResourceFileVersions(); findOverlappingJarsPairs(versions, overlapPairs, 0); } List<JarPair> overlapReportLines = new ArrayList<>(overlapPairs.keySet()); Comparator<JarPair> comparator = new Comparator<JarPair>() { @Override public int compare(JarPair line1, JarPair line2) { return -1 * line1.getDupClassesTotal().compareTo(line2.getDupClassesTotal()); } }; Collections.sort(overlapReportLines, comparator); return overlapReportLines; }
List<ClasspathResource> resourcesWithDifferentSizeDups = scanner.findClassFileDuplicates(classpathResources, isExcludeSameSizeDups); DuplicatesReport report = new DuplicatesReport(resourcesWithDifferentSizeDups, new StandaloneReportUrlFormatter()); report.print();