Proof of concept: it is really possible to render classes
[javainspect.git] / src / main / java / eu / svjatoslav / inspector / java / Main.java
index eda82ee..d651d2e 100644 (file)
@@ -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,16 +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) {
+       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);
+
+
                ClassGraph cg = new ClassGraph();
                cg.setTargetDirectoryPath(getProperty("user.dir") + separator);
 
 //             cg.addProject(projectDir);
 //             cg.whitelistClassGlob(packageGlob);
-//             cg.setKeepDotFile(true);
-//             cg.generateGraph(graphName);
+               cg.setKeepDotFile(true);
+               cg.add(classToLoad);
+               cg.generateGraph(commandlineConfiguration.graphName.getValue());
        }
 }