X-Git-Url: http://www2.svjatoslav.eu/gitweb/?p=javainspect.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Finspector%2Fjava%2Fcommandline%2FMain.java;fp=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Finspector%2Fjava%2Fcommandline%2FMain.java;h=d4d144ae3eb4e8320f29d47e35f314a09c3ab063;hp=6a6358893cb2469b75ff6bca3f54c342fda86381;hb=250ce45d956b8c1c9b9247b1e248aab580190451;hpb=f9689015962218747805ab58f27dae307cd7ab89 diff --git a/src/main/java/eu/svjatoslav/inspector/java/commandline/Main.java b/src/main/java/eu/svjatoslav/inspector/java/commandline/Main.java index 6a63588..d4d144a 100644 --- a/src/main/java/eu/svjatoslav/inspector/java/commandline/Main.java +++ b/src/main/java/eu/svjatoslav/inspector/java/commandline/Main.java @@ -45,9 +45,16 @@ public class Main { classGraph.setKeepDotFile(configuration.keepDotFile.getValue()); - for (File jarFile : jarFiles) - addJarToGraph(jarFile, classLoader, classGraph, configuration); - + if (configuration.rootClasses.isSpecified()){ + // add only selected root classes + for (String rootClass : configuration.rootClasses.getValue()) + attemptClassAdditionByName(classLoader, classGraph, configuration, rootClass); + + } else { + // add all classes in the jar files to graph + for (File jarFile : jarFiles) + addJarToGraph(jarFile, classLoader, classGraph, configuration); + } configuration.blacklistGlob.getValue().forEach(classGraph::blacklistClassGlob); configuration.whitelistGlob.getValue().forEach(classGraph::whitelistClassGlob); @@ -74,17 +81,20 @@ public class Main { File jarFile, URLClassLoader classLoader, ClassGraph classGraph, CommandlineConfiguration configuration) throws IOException, ClassNotFoundException { - for (String className : getClassNamesFromJar(jarFile)) { + for (String className : getClassNamesFromJar(jarFile)) + attemptClassAdditionByName(classLoader, classGraph, configuration, className); + } + + private static void attemptClassAdditionByName(URLClassLoader classLoader, ClassGraph classGraph, CommandlineConfiguration configuration, String className) throws ClassNotFoundException { + if (configuration.isDebug()) + System.out.println("Adding class to graph: " + className); + try { + classGraph.add(loadClassByName(classLoader, className)); + } catch (NoClassDefFoundError e){ if (configuration.isDebug()) - System.out.println("Adding class to graph: " + className); - try { - classGraph.add(loadClassByName(classLoader, className)); - } catch (NoClassDefFoundError e){ - if (configuration.isDebug()) - System.out.println("Class definition was not found."); - // Sometimes referenced classes are not found in the same Jar. - // Let's ignore this and proceed with the classes that we have. - } + System.out.println("Class definition was not found."); + // Sometimes referenced classes are not found in the same Jar. + // Let's ignore this and proceed with the classes that we have. } }