Chris Nokleberg's Fizzy Weblog
I'm happy to announce the availability of Jar Jar Links. Licensed under the GPL, this library provides an extended version of the Ant Jar task that allows you to dynamically repackage the classes in an existing Jar file, and embed the transformed classes inside a single, conflict-proof library.
This tool was originally developed to enable the embedding of the CGLIB, ASM, and Jaxen libraries inside our Java PowerPoint Library, but is probably even more useful for open-source projects, which increasingly tend to have many external dependencies.
Jar Jar Links should enable the embedding of most libraries as-is. Potential issues include handling of String literals (e.g. reflection code) and resource files. In some cases, simple changes will be necessary to make a library embeddable. If this practice catches on, I hope to provide a logo which projects can display to indicate their "Jar Jar Friendliness", in addition to an online database of compatible libraries.
The documentation is a little scant right now but I encourage anyone with ideas or questions to join the mailing list.