1 Reply Latest reply: Apr 27, 2009 5:10 AM by Jesper Pedersen RSS

Comparing signatures of JBoss deployments

Ivelin Ivanov Expert

...continuing an offline discussion.

How can Tattletale be used to:

1. Produce signature of a JBoss deployment that includes all jars in the bundle
2. Check whether a JBoss deployment is pristine or its been polluted. If possible, would be great to detect situations where offending jars are introduced in a JBoss deployment such that they don't override the original jars, but are placed in a location or referred to in a configuration file in a way that modifies the normal classloading sequence and as a result affects the behavior of the application.
3. Finds and shows the diffs between two JBoss deployments.

Ivelin

  • 1. Re: Comparing signatures of JBoss deployments
    Jesper Pedersen Master

     

    1. Produce signature of a JBoss deployment that includes all jars in the bundle


    There are really two aspect in this question - 1) A Tattletale profile of an entire project 2) A Tattletale profile of a deployment unit (such as a WAR).

    For 1) -- Tattletale has support for creating a binary file profile which can then be compared with another profile. Both the binary profile plus the 'compare' report hasn't been implemented, but should be easy to do.

    For 2) -- Support for enterprise archives are on the TODO - hopefully the initial support will be committed for the 1.1.0.GA release.

    2. Check whether a JBoss deployment is pristine or its been polluted. If possible, would be great to detect situations where offending jars are introduced in a JBoss deployment such that they don't override the original jars, but are placed in a location or referred to in a configuration file in a way that modifies the normal classloading sequence and as a result affects the behavior of the application.


    You can do this by implementing a profile and a classloading structure for the product and then use these to scan the deployments (see org.jboss.tattletale.reporting.SunJava5 and org.jboss.tattletale.reporting.classloading.JBossAS5ClassLoaderStructure for examples).

    3. Finds and shows the diffs between two JBoss deployments.


    There are again two different things here. 1) Differences between entire products 2) Differences between deployment units.

    This is also on the TODO - meaning the ability to flag an incompatible update of an entire products or a component. The idea is basically the same as the clirr project, but integrating the information in the Tattletale data structures.

    Hope this gives an idea - feel free to post back with follow-up questions that can help get you started on the development ;)