Hey Paul ... thanks for getting these discussions started. I had intended to do the same (though perhaps not quite as thorough as you have done).

Paul McMahan wrote:
We've been excited about and doing lots of interesting things with plugins lately. From a big picture perspective I'm wondering where we are headed. Some of my questions are:

- So do we all really agree that plugins are The Way and are we prepared to reconsider how Geronimo is developed, built, and deployed around that approach? Or should plugins remain as simply an alternate mechanism for installing components and applications?

I think going this route is a must. We've been touting how flexible Geronimo is and this makes it much more of a reality for our users. Hopefully it will make it easier for us to manage all the moving parts as well.


- What is the purpose of the framework assembly and how are the other various assemblies built, installed, and configured?

We had a brief discussion of this on another thread where I questioned if we wanted to keep "framework" around. It's better to centralize the discussion here.

Framework was originally created with the idea that it would be the core assembly and we could build up the other assemblies from it by installing plugins. I think that's still the most architecturally pure approach. (Note: we may want to try to remove more from framework so that it doesn't include so many j2ee* configs). However in the other thread, I was wondering if it makes sense to have a core framework that really isn't of any use (to a user) without installing some additional plugins. Perhaps the minimal assemblies would be better "roots" since they have a purpose even without any additional plugins. I keep waffling on this ... but at the moment I like the architectural purity of having just one core assembly from which all others could be built.


- Can/should we build assemblies for TCK from plugins and if so how would they be made available to end users? I heard some ideas about using plugins as a component grouping mechanism that would allow users to transform their server into a certified assembly by simply installing their plugin of choice. That sounds promising and needs more thought.

Absolutely yes!!! I think we need to make the TCK changes regardless of what we do with the main plugin strategy. However, I'm not clear on the idea of a plugin itself being used to group other plugins. I was thinking more along the lines of another construct which groups plugins (we've referred to this as templates at various times). I suppose we could build plugins that aggregated other plugins to accomplish this too and that would negate the need for yet another type of item a user must deal with.


- There is some work going on in GERONIMO-3330 to improve the robustness and maintainability plugin catalogs. What other infrastructure type requirements do we have for making plugin repositories easy to use and maintain?


I think there's a lot of work to do here. IMO, we need to start providing more capabilities for plugins to express compatibility with other plugins (for example so that a plugin containing a web app could express a dependency on a web container without having to call out jetty or tomcat specifically if there are no hard dependencies). I also think we need to make it so that plugins are not so tightly coupled to a particular Geronimo version if not absolutely required. It would be nice if we didn't have to re-release the JSP sample plugins for each new Geronimo release.


- What usability improvements are needed in the plugin CLI and admin console portlets?

I think there are definitely some .. but I won't try to itemize them now.


-  Is there any place for OSGI in Geronimo's plugin strategy?

Good question ... I think there probably is but I'm a little concerned about opening pandora's box. If OSGI makes it easier and quicker to get to a more pluggable server and bring benefits for other integrators then I think we should definitely consider it now. However, if it would cause a significant delay in our delivery of a pluggable server I would prefer we deliver the function first and swap out the engine later. Of course there will be trade-offs here ... I guess the real question is how substantial would a change to OSGI be at this time or later and is that the direction that we want to move in?


- Java EE 6 (JSR 316) has a major theme of modularity and extensibility in the application server[1]. How can we align our plugin strategy with what's coming our way at a specification level?

Looks like more reading I need to catch up on :-)


Looking forward to your thoughts and follow on questions.


Best wishes,
Paul


[1] http://www.infoq.com/news/2007/07/jee6

Reply via email to