Hi,

I'm pretty much done porting Streamflow over to OSGi, but I have to admit that the result is pretty depressing. The model itself is awesome, and I like the abilities, but classloading in Java seems to be just broken. See here for details:
http://www.jroller.com/rickard/entry/osgi_and_classloading

Basically, I was not able to get class GC to be deterministic when a bundle is updated or uninstalled. Sometimes the classloader is GC'ed, sometimes not. Heap dump analysis (using VisualVM, which is *great* if not exactly well documented) shows that there are no hanging references (which is logical since *sometimes* the GC works!), and yet sometimes the old classloder simply won't be GC'ed. Depressing!

My conclusion is that it is fine to use OSGi in production, if a restart of the VM is done on each update. For development you can dynamically update bundles, as long as you're prepared to restart the VM every once in a while due to OutOfMemory errors.

/Rickard

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

Reply via email to