Hi,

I have now removed CGLIB entirely, and have replaced it with custom code generation using the raw ASM library. As outlined previously, I created a manual stub class in Java that "looks" like how I wanted it to be, and then generated Java code that creates it using ASM. With a lot of tinkering I think I managed to create a series of if/else/for switches that can handle all cases.

I have tested it with Streamflow, and I can now update Streamflow without classloader leaks in OSGi/Glassfish. So that's good!

I also took the time to drastically reduce the number of classloaders and generated classes by having a cache during the application instantiation phase. This cache is then discarded so that only the application itself has the references. This has massively reduced the footprint of a Qi4j application when running, which is good.

/Rickard

_______________________________________________
qi4j-dev mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/qi4j-dev

Reply via email to