I the performance penalty would be quite a bit, so I wouldn't use it in production. But it's fine for development.
Hopefully you're not reloading your app in production regularly. Clinton On Thu, Apr 1, 2010 at 11:26 PM, Derek Scherger <de...@echologic.com> wrote: > On Thu, Apr 1, 2010 at 10:55 PM, Clinton Begin <clinton.be...@gmail.com>wrote: > >> This is a known issue. I agree that it would be nice to do something with >> it. Ideas are welcome. The only one I have at the moment is to make >> ClassInfo an instance and inject it into the SQL mapper configuration. I've >> done similar things to eliminate static classes in the framework. > > > A ClassInfo.release(ClassLoader) method that releases all cached > information for classes loaded by the specified class loader might do it. > Commons logging has something like this on LogFactory, although commons > logging is probably not what you want to be using as a model for how to do > this right (http://articles.qos.ch/classloader.html). Commons logging also > uses its own internal weak hash map implementation to avoid holding hard > references to cached loggers. Using something similar might be a bit better, > in that no explicit release is needed when the webapp context is destroyed. > > You can call ClassInfo.setCacheEnabled(false); to stop it from caching >> classes. >> > > How much of a performance penalty will this cause? I don't have any > problems with the cache while the classloader is live but clearing it when > the classloader dies would be good. ;) > > Cheers, > Derek > >