X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Finspector%2Fjava%2FMain.java;h=d651d2e0042fc33527b14a31b5f1eeb0775a3184;hb=6298dcb6f74dd244ac8085d2470e2c31a02d3b50;hp=f24eae34b1c4d7ce517bd715f361acbc05e4333a;hpb=52abcfeed07d308b2b377985b5cb8a776bb2e375;p=javainspect.git diff --git a/src/main/java/eu/svjatoslav/inspector/java/Main.java b/src/main/java/eu/svjatoslav/inspector/java/Main.java index f24eae3..d651d2e 100644 --- a/src/main/java/eu/svjatoslav/inspector/java/Main.java +++ b/src/main/java/eu/svjatoslav/inspector/java/Main.java @@ -2,6 +2,11 @@ package eu.svjatoslav.inspector.java; import eu.svjatoslav.inspector.java.structure.ClassGraph; +import java.io.File; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLClassLoader; + import static java.io.File.separator; import static java.lang.System.getProperty; @@ -9,22 +14,26 @@ import static java.lang.System.getProperty; * This class acts as a commandline interface for JavaInspect. */ public class Main { - public static void main(String[] args) { - if (args.length == 0) { - System.err.println("usage: javainspect [PROJECT_DIR] [PACKAGE_GLOB] [GRAPH_NAME]"); - System.exit(1); - } + public static void main(String[] args) throws MalformedURLException, ClassNotFoundException { + CommandlineConfiguration commandlineConfiguration = new CommandlineConfiguration(args); + System.out.println("Commandline config validated"); + + File jarFile = commandlineConfiguration.jarFile.getValue(); + + URLClassLoader classLoader = new URLClassLoader( + new URL[]{jarFile.toURL()}, + commandlineConfiguration.getClass().getClassLoader()); + + Class classToLoad = Class.forName("eu.svjatoslav.sixth.e3d.gui.GuiComponent", true, classLoader); - String projectDir = args[0]; - String packageGlob = args[1]; - String graphName = args[2]; ClassGraph cg = new ClassGraph(); cg.setTargetDirectoryPath(getProperty("user.dir") + separator); - cg.addProject(projectDir); - cg.whitelistClassGlob(packageGlob); +// cg.addProject(projectDir); +// cg.whitelistClassGlob(packageGlob); cg.setKeepDotFile(true); - cg.generateGraph(graphName); + cg.add(classToLoad); + cg.generateGraph(commandlineConfiguration.graphName.getValue()); } }