I’ve been interested in a tool to display the runtime relationships between JARs in Java applications for years.
My current project at work is currently soooo tangled that it’s become hard to know… what modules is my code callingwhat other modules (EJBs, WARs, JARs) are calling me? Am I honoring basic design rules or am I messing up with too much crossed dependecies?
Well, I finally found something to help on this quest: I found jarjar.
With it, and a few Ruby-magic, I’ve wrapped up J2EEGraph. It makes it easy to, not only get the dependencies, but also draft a graph describing them.
Here you can take a look at the inter-dependencies between some of the jakarta modules in the Scarab project (just an example):
The idea of wrapping it up in a tool came because the Root Beer displayed the results of his own playing with JarJar. Inspiring!