@Test public void classLoaderInfo() { new JHades() .printClassLoaderNames() .dumpClassloaderInfo(); }
@Test public void multipleClassVersionsReport() { new JHades().multipleClassVersionsReport(); }
@Test public void overlappingJarsReport() { new JHades().overlappingJarsReport(); }
protected void runJHades(JHades console) { console.overlappingJarsReport() .printClassLoaderNames() .dumpClassloaderInfo() .printClasspath() .multipleClassVersionsReport(); } }
@Test public void classpathInfo() { new JHades().printClasspath(); }
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; }
new JHades() .printClassLoaders() .printClasspath() .overlappingJarsReport() .multipleClassVersionsReport() .findClassByName("org.jhades.SomeServiceImpl")
public JHades multipleClassVersionsReport() { multipleClassVersionsReport(true); return this; }
public JHades findClassByName(String classFullyQualifiedName) { if (classFullyQualifiedName == null) { throw new IllegalArgumentException("Class name cannot be null."); } String resourceName = classFullyQualifiedName.replaceAll("\\.", "/") + ".class"; return findResource(resourceName); }
protected void runJHades(JHades console) { console.overlappingJarsReport() .printClassLoaderNames() .dumpClassloaderInfo() .printClasspath() .multipleClassVersionsReport(); } }
public JHades findResource(String resource) { if (resource == null) { throw new IllegalArgumentException("Resource path cannot be null."); } System.out.println(">> jHades printResourcePath >> searching for " + resource + "\n"); List<URL> allVersions = scanner.findAllResourceVersions(resource); boolean resultsFound = allVersions != null && allVersions.size() > 0; System.out.println("All versions:\n"); for (URL version : allVersions) { System.out.println(version); } URL currentVersion = scanner.findCurrentResourceVersion(resource); if (resultsFound && currentVersion != null) { System.out.println("\nCurrent version being used: \n\n" + currentVersion); } endCommand(resultsFound); return this; }
<dependency> <groupId>org.jhades</groupId> <artifactId>jhades</artifactId> <version>1.0.4</version> </dependency> new JHades() .printClassLoaders() .printClasspath() .overlappingJarsReport() .multipleClassVersionsReport() .findClassByName("org.apache.bval.jsr303.ApacheValidationProvider") .findClassByName("javax.validation.spi.ValidationProvider");
public JHades multipleClassVersionsReport() { multipleClassVersionsReport(true); return this; }
public JHades findClassByName(String classFullyQualifiedName) { if (classFullyQualifiedName == null) { throw new IllegalArgumentException("Class name cannot be null."); } String resourceName = classFullyQualifiedName.replaceAll("\\.", "/") + ".class"; return findResource(resourceName); }
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 findResource(String resource) { if (resource == null) { throw new IllegalArgumentException("Resource path cannot be null."); } System.out.println(">> jHades printResourcePath >> searching for " + resource + "\n"); List<URL> allVersions = scanner.findAllResourceVersions(resource); boolean resultsFound = allVersions != null && allVersions.size() > 0; System.out.println("All versions:\n"); for (URL version : allVersions) { System.out.println(version); } URL currentVersion = scanner.findCurrentResourceVersion(resource); if (resultsFound && currentVersion != null) { System.out.println("\nCurrent version being used: \n\n" + currentVersion); } endCommand(resultsFound); return this; }
public JHades printClassLoaderNames() { System.out.println("\n>> jHades printClassLoaders >> Printing classloader class names (ordered from child to parent):\n"); List<ClazzLoader> classLoaders = scanner.findAllClassLoaders(); boolean notSupportedFound = false; for (ClazzLoader classLoader : classLoaders) { if (classLoader.isSupported()) { System.out.println(classLoader.getName()); } else { notSupportedFound = true; System.out.println(classLoader.getName() + " - NOT SUPORTED"); } } endCommand(classLoaders.size() > 0); if (notSupportedFound) { System.out.println("Note: NOT SUPPORTED class loader means that any classes loaded by such a classloader will not be found on any jHades queries. \n"); } return this; }
public JHades printClassLoaderNames() { System.out.println("\n>> jHades printClassLoaders >> Printing classloader class names (ordered from child to parent):\n"); List<ClazzLoader> classLoaders = scanner.findAllClassLoaders(); boolean notSupportedFound = false; for (ClazzLoader classLoader : classLoaders) { if (classLoader.isSupported()) { System.out.println(classLoader.getName()); } else { notSupportedFound = true; System.out.println(classLoader.getName() + " - NOT SUPORTED"); } } endCommand(classLoaders.size() > 0); if (notSupportedFound) { System.out.println("Note: NOT SUPPORTED class loader means that any classes loaded by such a classloader will not be found on any jHades queries. \n"); } 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 dumpClassloaderInfo() { System.out.println("\n>> jHades printClassLoaders >> Printing all classloader available info (from the class loader toString(), ordered from child to parent):\n"); List<ClazzLoader> classLoaders = scanner.findAllClassLoaders(); boolean notSupportedFound = false; for (ClazzLoader classLoader : classLoaders) { if (classLoader.isSupported()) { System.out.println("\n>>> Dumping available info for classloader " + classLoader.getName() + "\n"); System.out.println(classLoader.getDetails()); } else { notSupportedFound = true; System.out.println(classLoader.getName() + " - NOT SUPORTED"); } } endCommand(classLoaders.size() > 0); if (notSupportedFound) { System.out.println("Note: NOT SUPPORTED class loader means that any classes loaded by such a classloader will not be found on any jHades queries. \n"); } return this; }