X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=doc%2Findex.html;h=4c426bfacab52fe8f2691b2112cfb65eb0777002;hb=43df769cfc6cdd348868d71055c337d0871b11ec;hp=c574de55cc023bcf2a4d4d4a2df741223be66ca1;hpb=8f45548f3479b19ef4a81c8f1d2d93aede83ac65;p=javainspect.git diff --git a/doc/index.html b/doc/index.html index c574de5..4c426bf 100644 --- a/doc/index.html +++ b/doc/index.html @@ -4,7 +4,7 @@
-JavaInspect is a Java library that you can embed into your Java -project with a few lines of Maven configuration and then visualize any -part of your Java program structure with few simple JavaInspect API -calls at application runtime. +JavaInspect is a Java library that primarily uses Java reflection to +discover and visualize any part of Java program provided that +classes to be visualised are available in the classpath.
-JavaInspect uses Java reflection to discover class relations and -structure and produces GraphViz dot file that describes your -application. Then launches GraphViz to generate bitmap graph in PNG -format on your Desktop directory. +JavaInspect currently has no GUI, configuration files, embedded +scripting support, direct Maven or Ant integration. The only way to +instuct Javainspect what to do is by using its Java API.
--This is simple utility, quickly written. Tested on GNU Linux (can be -relatively simply ported to other operating systems too). So far I -used it for my own needs. There might be bugs and missing -features. Feedback and code contributions are welcome. +To get JavaInspect into same classpath with your projecs I so far came +up with 2 solutions:
--Example visualization of Sixth project: architecture graphs. +After discovering application structure and optionally filtering out +unimportant parts, JavaInspect produces GraphViz dot file that +describes data to be visualized. Then launches GraphViz to generate +bitmap graph in PNG format. By default on your Desktop directory.
-A very simple example: +Note: GraphViz is developed and tested so far only on GNU Linux.
+Graph legend:
@@ -236,15 +253,73 @@ Graph legend:
+Currently the only way to control JavaInspect is by using Java +API. Simple Java based control/configuration code needs to be written +for each project. I usually put such code into directories devoted for +JUnit tests. Because it needs not to be compiled/embedded into final +product or project artifact I'm just willing to visualize. +
+ ++Control code in general does the following: +
+This example demonstrates generating of class graph from hand picked -classes. +classes and visualizing GraphViz itself.
// Create graph final ClassGraph graph = new ClassGraph(); -// While classes and objects can be immediately passed to ClassGraph -// constructor as arguments, it is also possible to add them one by -// one as in the following example. +// Add some random object to the graph. GraphViz will detect Class from +// the object. +graph.add(graph); -// Add some object to the graph. -graph.addObject(graph); +// Also add some random class to the graph. +graph.add(Utils.class); -// Add some class to the graph. -graph.addClass(Utils.class); +// Keep intermediary GraphViz DOT file for reference. +graph.setKeepDotFile(true); // Produce bitmap image titled "JavaInspect.png" to the user Desktop -// directory and keep intermediary GraphViz DOT file for reference. -graph.generateGraph("JavaInspect", true); +// directory +graph.generateGraph("JavaInspect");
+Note: if desired, more compact version of the above: +
+new ClassGraph().add(randomObject, RandomClass.class) + .setKeepDotFile(true).generateGraph("JavaInspect"); ++
@@ -282,21 +366,20 @@ Result:
-Recursively scan current directory for Java source code and attempt to -detect class names from there to be added to the graph. -
- +graph.addProject("."); +// Create graph +final ClassGraph graph = new ClassGraph(); + +// Recursively scan current directory for Java source code and attempt +// to detect class names from there to be added to the graph. +graph.addProject("."); // Blacklist example classes from being shown on the graph -graph.getFilter().blacklistClassPattern( - "eu.svjatoslav.inspector.java.structure.example.*"); +graph.blacklistClassPattern("eu.svjatoslav.inspector.java.structure.example.*"); // do not show single classes with no relationships on the graph graph.hideOrphanedClasses(); @@ -316,9 +399,22 @@ Result:
Declare JavaInspect as dependency:
@@ -329,7 +425,7 @@ Declare JavaInspect as dependency: <dependency> <groupId>eu.svjatoslav</groupId> <artifactId>javainspect</artifactId> - <version>1.3</version> + <version>1.5-SNAPSHOT</version> </dependency> ... </dependencies> @@ -356,9 +452,9 @@ Add Maven repository to retrieve artifact from:GraphViz - shall be installed on the computer.
@@ -366,24 +462,22 @@ Add Maven repository to retrieve artifact from:On Ubuntu/Debian use:
--sudo apt-get install graphviz ++ +sudo apt-get install graphviz