JavaInspect - Utility to visualize java software

Download    Online homepage    Other applications hosted on svjatoslav.eu
Program author:
    Svjatoslav Agejenko
    Homepage: http://svjatoslav.eu
    Email: svjatoslav@svjatoslav.eu

This software is distributed under GNU GENERAL PUBLIC LICENSE Version 2.

General

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 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.

Current status

This is simple utility, quickly written. Tested on 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.

Example graphs

Example visualization of Sixth project: architecture graphs

A very simple example:

Graph legend:

Usage example

Following example produces graph for JavaInspect itself:


// Create graph
final ClassGraph graph = new ClassGraph();

// Add some object to the graph.
graph.addObject(graph);

// Add some class to the graph.
graph.addClass(Utils.class);

// Produce bitmap image titled "JavaInspect.png" to the user Desktop
// directory.
graph.generateGraph("JavaInspect", true);



Result:
    Generated DOT file: JavaInspect.dot
    Generated PNG image: JavaInspect.png

Embedding JavaInspect in your project


Declare JavaInspect as dependency:

    <dependencies>

        ...

        <dependency>
            <groupId>eu.svjatoslav</groupId>
            <artifactId>javainspect</artifactId>
            <version>1.0</version>
        </dependency>
 
    </dependencies>
    
  
  
Add Maven repository to retrieve artifact from:
  
    <repositories>
        <repository>
            <id>svjatoslav.eu</id>
            <name>Svjatoslav repository</name>
            <url>http://www2.svjatoslav.eu/maven/</url>
        </repository>
    </repositories>

Requirements


GraphViz - shall be installed on the computer.