I'd certainly recommend caching the classes.  As it stands, without that, Infinispan would have to iterate over every installed Bundle *every* time a class, new instance, etc. is needed (frequently).

Regarding the WeakReference, I guess I'm not sure.  I certainly could, but I'm not sure if it's actually an issue.  Anyone have any thoughts there?