Although Tapestry and HiveMind use wrappers around Javassist, the wrappers are "thin" and the key part of the API, the method bodies that Javassist compiles into bytecode, are very much tied to Javassist (even Janino isn't a good match, because we are using some of the special productions, such as '$$' and '($w)', that are specific to Javassist).
James Carman, the HiveMind PMC Chair, and I have discussed this as well. In order to "excise" Javassist, it would be necessary to identify all the different scenarious that we use Javassist for, and to isolate those in some way (James was interested more in making the bytecode library pluggable, rather than simply replacing it, but the approach would be the same).
I like Javassist. If Janino had existed a couple of years back, I'd probably be using that, but be that as it may, Javassist does the trick. The MPL license should not be an issue (its very open, and compatible with the ASL). Javassist is only LGPL when bundled as part of JBoss.
On 5/20/06, Joel Trunick <[EMAIL PROTECTED]> wrote:
Howard,
I've been asked if it would be possible to replace the JavaAssist library used in Tapestry with another library or our own. The reason is because of the license and/or source of the library. I'd appreciate if you could give an idea of the complexity involved? Is it a well-defined hivemind service, or is it entwined and would take some time?
I'd appreciate any information you could provide.
Joel Trunick
Sr. Software Engineer
Main : (512) 334 3200
Direct: (512) 334 3239
Email: [EMAIL PROTECTED]
Webify Solutions
Enabling the On Demand Enterprise
--
Howard M. Lewis Ship
Independent J2EE / Open-Source Java Consultant
Creator and PMC Chair, Apache Tapestry
Creator, Jakarta HiveMind
Professional Tapestry training, mentoring, support
and project work. http://howardlewisship.com
