Tool for detecting duplicate or conflicting classes across jars?

"Uttormark, Tim" <[email protected]>
Newsgroups gmane.org.user-groups.trijug.juglist
Message-ID <9FF69050257FC0479018211CD530F8BC0DB005F0@CORP2K3MAIL.corp.peopleclick.com>
I am looking for a tool which can help me find all classes which have
multiple instances within the classpath.

 

We are working on a large project which uses many open source
frameworks.  These frameworks are often implemented using overlapping
sets of classes, e.g., we have several which use Apache commons
HTTPClient or XML parsing classes.  We run into issues when we have
multiple instances of classes of a given class in the classpath,
especially when different versions of the class are included.

 

I was hoping to find a tool that could analyze the contents of a set of
jars (a java classpath, a set of directory paths, an ant fileset, the
contents of an eclipse .classpath file, etc.) and then can list the
fully qualified classname of all classes which occur more than once
across the set of jars.  Ideally it would also be able to distinguish
between classes of the same version which are repeated (duplicates) and
cases where different versions of a class exist (conflicts).  I need it
to inspect the contents of the jars, not just the jar names.  

 

I'm not looking for a tool which takes a classpath and a fully qualified
classname and tells me in which jar the classloader would find the
specified class.  I need to know all jars which contain the class, not
just the first one.  The extcheck tool that comes with the JDK falls
short too, as it does not compare a set of jars against themselves.

 

Can anyone suggest a tool for this?

 

Thanks,

   -- Tim Uttormark

      Principal Java Architect

      Peopleclick

_______________________________________________
Juglist mailing list
[email protected]
http://trijug.org/mailman/listinfo/juglist_trijug.org
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.