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