@Test public void classLoaderInfo() { new JHades() .printClassLoaderNames() .dumpClassloaderInfo(); }
@Test public void overlappingJarsReport() { new JHades().overlappingJarsReport(); }
@Test public void multipleClassVersionsReport() { new JHades().multipleClassVersionsReport(); }
protected void runJHades(JHades console) { console.overlappingJarsReport() .printClassLoaderNames() .dumpClassloaderInfo() .printClasspath() .multipleClassVersionsReport(); } }
public JHades printClasspath() { System.out.println("\n>> jHades printClasspath >> Printing all class folder and jars on the classpath:\n"); List<ClasspathEntry> classpathEntries = scanner.findAllClasspathEntries(); ClazzLoader clazzLoader = null; for (ClasspathEntry entry : classpathEntries) { if (entry.getClassLoader() != null && !entry.getClassLoader().equals(clazzLoader)) { System.out.println(); // line break between class loaders clazzLoader = entry.getClassLoader(); } System.out.println(entry.getClassLoaderName() + " - " + entry.getUrl()); } endCommand(classpathEntries.size() > 0); 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; }
@Test public void classpathInfo() { new JHades().printClasspath(); }
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; }
new JHades() .printClassLoaders() .printClasspath() .overlappingJarsReport() .multipleClassVersionsReport() .findClassByName("org.jhades.SomeServiceImpl")
public JHades multipleClassVersionsReport() { multipleClassVersionsReport(true); return this; }
@Override public void contextInitialized(ServletContextEvent arg0) { try { runJHades(console); } catch (Exception exc) { System.out.println("JHades - error occurred: " + exc.getMessage()); exc.printStackTrace(); } }
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 printClasspath() { System.out.println("\n>> jHades printClasspath >> Printing all class folder and jars on the classpath:\n"); List<ClasspathEntry> classpathEntries = scanner.findAllClasspathEntries(); ClazzLoader clazzLoader = null; for (ClasspathEntry entry : classpathEntries) { if (entry.getClassLoader() != null && !entry.getClassLoader().equals(clazzLoader)) { System.out.println(); // line break between class loaders clazzLoader = entry.getClassLoader(); } System.out.println(entry.getClassLoaderName() + " - " + entry.getUrl()); } endCommand(classpathEntries.size() > 0); 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 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; }
@Override public void contextInitialized(ServletContextEvent arg0) { try { runJHades(console); } catch (Exception exc) { System.out.println("JHades - error occurred: " + exc.getMessage()); exc.printStackTrace(); } }
public JHades findClassByName(String classFullyQualifiedName) { if (classFullyQualifiedName == null) { throw new IllegalArgumentException("Class name cannot be null."); } String resourceName = classFullyQualifiedName.replaceAll("\\.", "/") + ".class"; return findResource(resourceName); }