JavaInspect - Utility to visualize java software
-Table of Contents
- -+
JavaInspect - Utility to visualize java software
+- download latest snapshot @@ -226,7 +265,7 @@ bitmap graph in PNG format. By default on your Desktop directory.
-Note: GraphViz is developed and tested so far only on GNU Linux. +Note: GraphViz is developed and tested so far only on GNU/Linux.
Graph legend:
-+
3.1 example 1
+3.1 example 1: individually picked objects
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"); ++
@@ -357,20 +405,19 @@ Result:
3.2 example 2
+3.2 example 2: scan java code, apply filters
-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(); @@ -389,6 +436,18 @@ Result:
3.3 example 3: GraphViz embedded in another project
+-
+
- Download project Sixth code snapshot. + +
- Inspect and run *DataGraph.java*. + +
On Ubuntu/Debian use:
--sudo apt-get install graphviz ++ +sudo apt-get install graphviz
6 TODO
+6 TO DO
-
-
- BUG: Should not hide references if there are too many of them to -classes if referring classes are not visible anyway because of -blacklist/whitelist rules. Basically reference counting should -exclude not visible classes. +
- BUG: Should not hide references if there are too many of them to classes if +referring classes are not visible anyway because of blacklist/whitelist rules. +Basically reference counting should exclude not visible classes. -
- BUG: Current code is quite messy (because of lack of time) things -were implemented ad-hoc. Needs cleanup/refactoring for better -readability. +
- FEATURE: integarte with PlantUML.
- FEATURE: add dark theme @@ -485,12 +543,30 @@ project build/release process