correct - by packaging the ejbs in the lib.jar, you deploy the class files only once, and allow yourself to reuse the same code by just specifying different deployment descriptor configurations.
control comes from deployment configuration (which is specified in xdoclet) and also partially in the code by making sure you've used the ro beans for ro ops.
that's it, each bean is deployed twice. RO bean have locking removed and have a a customized interceptor stack that makes a proxy act as a value object.
This is really clever!
In order to make the Interceptors available to other modules it would make sense to move them to nukes.core.ejb.interceptor -- BBTools needs some cleanup anyway, it's a hotchpotch of concerns.
I've coded the changes and added some comments for clarification in the Interceptor classes, how do you want me to submit them? There seems to be no class related to nukes in the sourceforge tracker.
In particular I've got:
A diff for BBTools, jboss-container.xml (hsqldb, mysql and postgres)
Three new classes (two Interceptor and one utility for the common code)
file it as a bug report. I don't know if these interceptors can be used elsewhere though.
the value object interceptor should be a client interceptor too instead of being a server side interceptor.