/** * * Filters a list of classpath resources, selecting only class files. * * @param classpathResources - a list of classpath resources * @return - the filtered list containing only class files, or an empty list if no matches found */ public static final List<ClasspathResource> filterClassFilesOnly(List<ClasspathResource> classpathResources) { if (classpathResources == null) { throw new IllegalArgumentException("Classpath resources cannot be null."); } List<ClasspathResource> filtered = new ArrayList<>(); for (ClasspathResource classpathResource : classpathResources) { String resourceName = classpathResource.getName(); if (resourceName != null && resourceName.endsWith(".class")) { filtered.add(classpathResource); } } return filtered; }
/** * * finds a resource on the classpath using a regular expression. * * @param search - search regular expression * @return - the list of classpath resources that match the regular expression */ public List<ClasspathResource> findByRegex(String search) { List<ClasspathResource> allResources = findAllClasspathResources(); List<ClasspathResource> matches = new ArrayList<>(); Pattern pattern = Pattern.compile(search); for (ClasspathResource resource : allResources) { if (resource != null && resource.getName() != null && pattern.matcher(resource.getName()).find()) { matches.add(resource); } } return matches; }
/** * * Filters a list of classpath resources, selecting only class files. * * @param classpathResources - a list of classpath resources * @return - the filtered list containing only class files, or an empty list if no matches found */ public static final List<ClasspathResource> filterClassFilesOnly(List<ClasspathResource> classpathResources) { if (classpathResources == null) { throw new IllegalArgumentException("Classpath resources cannot be null."); } List<ClasspathResource> filtered = new ArrayList<>(); for (ClasspathResource classpathResource : classpathResources) { String resourceName = classpathResource.getName(); if (resourceName != null && resourceName.endsWith(".class")) { filtered.add(classpathResource); } } return filtered; }
/** * * Search for a given class on the classpath, returns the list of all class versions. * * @param clazz - the class being searched. * @return - the classpath resource containing all the class versions, or null if not found */ public ClasspathResource findClass(Class clazz) { String classResourceName = clazz.getName().replace(".", "/") + ".class"; List<ClasspathResource> allResources = findAllClasspathResources(); ClasspathResource foundResource = null; for (ClasspathResource resource : allResources) { if (resource != null && resource.getName() != null && resource.getName().endsWith(classResourceName)) { foundResource = resource; break; } } return foundResource; }
/** * * Search for a given class on the classpath, returns the list of all class versions. * * @param clazz - the class being searched. * @return - the classpath resource containing all the class versions, or null if not found */ public ClasspathResource findClass(Class clazz) { String classResourceName = clazz.getName().replace(".", "/") + ".class"; List<ClasspathResource> allResources = findAllClasspathResources(); ClasspathResource foundResource = null; for (ClasspathResource resource : allResources) { if (resource != null && resource.getName() != null && resource.getName().endsWith(classResourceName)) { foundResource = resource; break; } } return foundResource; }
/** * * finds a resource on the classpath using a regular expression. * * @param search - search regular expression * @return - the list of classpath resources that match the regular expression */ public List<ClasspathResource> findByRegex(String search) { List<ClasspathResource> allResources = findAllClasspathResources(); List<ClasspathResource> matches = new ArrayList<>(); Pattern pattern = Pattern.compile(search); for (ClasspathResource resource : allResources) { if (resource != null && resource.getName() != null && pattern.matcher(resource.getName()).find()) { matches.add(resource); } } return matches; }
public JHades findByRegex(String search) { if (search == null || search.isEmpty()) { throw new IllegalArgumentException("search string cannot be null or empty."); } System.out.println(">> jHades search >> Searching for resorce using search string: " + search + "\n"); List<ClasspathResource> classpathResources = scanner.findByRegex(search); boolean resultsFound = classpathResources != null && classpathResources.size() > 0; if (resultsFound) { System.out.println("\nResults Found:\n"); for (ClasspathResource classpathResource : classpathResources) { System.out.println(classpathResource.getName()); } } endCommand(resultsFound); return this; }
public JHades findByRegex(String search) { if (search == null || search.isEmpty()) { throw new IllegalArgumentException("search string cannot be null or empty."); } System.out.println(">> jHades search >> Searching for resorce using search string: " + search + "\n"); List<ClasspathResource> classpathResources = scanner.findByRegex(search); boolean resultsFound = classpathResources != null && classpathResources.size() > 0; if (resultsFound) { System.out.println("\nResults Found:\n"); for (ClasspathResource classpathResource : classpathResources) { System.out.println(classpathResource.getName()); } } endCommand(resultsFound); return this; }
public JHades findClass(Class clazz) { if (clazz == null) { throw new IllegalArgumentException("Class name cannot be null."); } System.out.println(">> jHades searchClass >> Searching for class: " + clazz.getCanonicalName() + "\n"); ClasspathResource foundClass = scanner.findClass(clazz); for (ClasspathResourceVersion version : foundClass.getResourceFileVersions()) { System.out.println(version.getClasspathEntry().getUrl() + foundClass.getName() + " size = " + version.getFileSize()); } endCommand(foundClass != null); return this; }
public JHades findClass(Class clazz) { if (clazz == null) { throw new IllegalArgumentException("Class name cannot be null."); } System.out.println(">> jHades searchClass >> Searching for class: " + clazz.getCanonicalName() + "\n"); ClasspathResource foundClass = scanner.findClass(clazz); for (ClasspathResourceVersion version : foundClass.getResourceFileVersions()) { System.out.println(version.getClasspathEntry().getUrl() + foundClass.getName() + " size = " + version.getFileSize()); } endCommand(foundClass != null); return this; }
public void print() { System.out.println("\n>> jHades multipleClassVersionsReport >> Duplicate classpath resources report: \n"); ClasspathResources.sortByNumberOfVersionsDesc(resourcesWithDuplicates); for (ClasspathResource resource : resourcesWithDuplicates) { if (!resourcesToExclude.contains(resource.getName())) { System.out.println(resource.getName() + " has " + resource.getResourceFileVersions().size() + " versions on these classpath locations:\n"); for (ClasspathResourceVersion resourceFileVersion : resource.getResourceFileVersions()) { String classLoaderName = resourceFileVersion.getClasspathEntry().getClassLoaderName(); System.out.println(" " + (classLoaderName != null ? classLoaderName : "") + " - " + urlFormatter.formatUrl(resourceFileVersion.getClasspathEntry().getUrl()) + " - class file size = " + resourceFileVersion.getFileSize()); } System.out.println(); } } if (resourcesWithDuplicates.isEmpty()) { System.out.println("No duplicates where found.\n"); } } }
public void print() { System.out.println("\n>> jHades multipleClassVersionsReport >> Duplicate classpath resources report: \n"); ClasspathResources.sortByNumberOfVersionsDesc(resourcesWithDuplicates); for (ClasspathResource resource : resourcesWithDuplicates) { if (!resourcesToExclude.contains(resource.getName())) { System.out.println(resource.getName() + " has " + resource.getResourceFileVersions().size() + " versions on these classpath locations:\n"); for (ClasspathResourceVersion resourceFileVersion : resource.getResourceFileVersions()) { String classLoaderName = resourceFileVersion.getClasspathEntry().getClassLoaderName(); System.out.println(" " + (classLoaderName != null ? classLoaderName : "") + " - " + urlFormatter.formatUrl(resourceFileVersion.getClasspathEntry().getUrl()) + " - class file size = " + resourceFileVersion.getFileSize()); } System.out.println(); } } if (resourcesWithDuplicates.isEmpty()) { System.out.println("No duplicates where found.\n"); } } }
System.out.println("\nSearch results using regular expression: " + searchByFileName + "\n"); for (ClasspathResource match : searchResults) { System.out.println(match.getName() + "\n"); for (ClasspathResourceVersion version : match.getResourceFileVersions()) { System.out.println(" " + version.getClasspathEntry().getUrl());