Examples in the real world:
- Mozilla Firefox addons
- NetBeans modules
- Eclipse IDE plugins
- Servlet containers and WARs
The plugin system requires the capability to load a plugin WAR (a sub-WAR, perhaps) inside an already running WAR. These plugin WARs can be added, removed, configured, at runtime just like relationship of normal WARs with the container.
Java Portlets are the closest thing to a standard way of doing this. You deploy portlet WARs into a Liferay container, easy. But since we're creating something like a Portlet container, it isn't straightforward.
OSGi is probably the best bet, however it also has its own complexities and classpath model.
What's your advice?
Maybe by creating your own container with annotations and (sniffer, deployer, container, appcontainer). This is the way i'm trying currently :)
ReplyDeletehttp://blogs.sun.com/dochez/entry/glassfish_v3_extensions_part_5
Grtss
Thank you Jerome.
ReplyDeleteI tried to comment on your blog, but comments are closed.
It seems a bit complex for me... and proprietary.
I think similar feat can be achieved through OSGi Blueprint service. Basically we're just using OSGi, but with annotations.
Another problem with OSGi-style components are JAR deployments. Meaning it's practically impossible to do exploded-archive rapid development (aka .class-driven development vs. JAR-driven development).
I don't think your proposed solution handles exploded-archive development. Seems to handle component as JAR.