I recently got turned on to Javassist by Bill Burke, when he mentioned it at a talk near Boston (,MA, USA).
Tapestry, the web application framework, uses a kind of "aspect-lite" technology, where it takes existing classes (sometimes abstract) and creates enhanced subclasses, filling in fields and methods (to form JavaBeans properties) and some additional notifications.
Tapestry is part of Jakarta, under the Apache Software License. Currently, it uses BCEL to perform the enhancements.
The (potential?) license change was brought to my attention on the Tapestry mailing lists. I also got a few of the relevant postings on the mailing list.
Summary: Please keep it MPL so that I can use it in Tapestry.
Here's some more comments, related to (I believe) Bill Burke's postings.
For me it comes down to this. LGPL protects your rights in one respect ... companies can't take your code, modify it, and not provide back the changes ... not that you’re obligated to take those changes. However, these restrictions make the library unpallatable to commercial organizations ... people talk hypothetically about "BEA package FooLib", but BEA does not. It would be silly of them to do so; as a commercial entity they will be held responsible for all the code that ships with their product, yet the LGPL undermines their authority. Beyond the administrative overhead of providing changes back to the library originator, they will be accused of forking the library if they distributed a changed library with their fixes that is different from the originator's.
ASL license is about ubiquity. That's why I ultimately changed (Tapestry's license) from LGPL to ASL. IBM already does include ASL libraries, using and extending Apache server and other ASL tools and libraries, but distributing them under their own name.
In practice, some of their changes stay inside IBM but most changes, bug fixes and the like, go back to the originators. Why? Because by keeping the core code synchronized with the originator's code, they get the benefits of bug fixes they don't make. A decisive fork will wall them off from bug fixes.
Anyway, that's all theory. Like I said, I've been determined for three years that Tapestry be the definitive and ubiqutious web application framework. Using the ASL could see Tapestry adopted into WebSphere or even WebLogic. Using LGPL would ensure that would never happen.
I think LGPL makes more sense for JBoss since JBoss is a platform, not a framework. Since Tapestry is container agnostic, ASL makes sense.
Howard M. Lewis Ship
Creator, Tapestry: Java Web Components http://jakarta.apache.org/tapestry