« November 2006 | Main | June 2007 »

February 2007

Eclipse Plugin (OSGi) Visualization

If you are going mad trying to figure out the dependencies between lots of Eclipse plug-ins, or work with other large OSGi systems, you may be interested in this.

We've had a few people looking for an Eclipse/OSGi backend for Structure101, and with all the hype about OSGi lately, we decided to lift the lid on it.  Here is an early version that you can download. If you're an Eclipse user, just point it at your plugins directory to see the same kind of views, hierarchies and slices that you get with the Java version.

Below is a random screen shot of my Eclipse plug-ins to give you the idea (click for the full-size image).

It's pretty rough at the moment - the download page indicates where we've made some arbitrary decisions on the model structure and where we think it's probably not quite right. I'd love some comments from OSGi heads on if/how you'd like us to change it to make it more finished. If you think you'd find it useful, talk to Paul about an extended license key.

Jar Hell

Jarhell A lot of jars can contribute to (and mask) the logical package/class structure. Here's how to make sense of the whole mess using Structure101.
1. View your project in the Logical hierarchy
2. Tag the classes or packages you're interested in
3.  Switch to the Jar Hierarchy and see which jars contain tagged items.

Do this in reverse to figure out how code from specific jars maps to (and interacts with) other code in the logical structure.

Here is an example from the Jboss code-base.

In the Composition perspective, select the Package hierarchy, and tag the package org.jboss.security - a blue dot indicates the package is "tagged".

Taggedpackage

Stay in the Composition perspective, but switch to the Jar hierarchy. Any jars that contribute to org.jboss.security are tagged (with a blue dot).

Taggedjars1

Taggedjars2

The solid tag jboss-srp-client.jar and jboss-srp.jar indicate that all of the contents of the jar are tagged - i.e. are in the package org.jboss.security.  The faded blue dots indicate that only part of the jar is tagged - you can drill down to find out what other stuff is in the jar - in this case, contributions to the package org.jboss.crypto:

Jardrilldown

Working the other way, tag jboss-srp.jar and switch back to the Package hierarchy to see how the code in that jar contributes to the package structure:

Packagedrilldown

The dependency diagram shows how the classes in the tagged jar interacts with the rest of the package:

Classdiagram_1

There are times when understanding how different hierarchies relate can be just what the doctor ordered.