Here are my current thoughts.... not that they necessarily mean much.

1. whether plugingroups are in a special svn area (rather than in framework and plugins directly) we need the c-m-p functionality for at least the framework plugingroup.

2. IIUC Joe's idea was to make it so a dependency on a classloader- free plugin turned into dependencies on all its dependencies. I would like to see an extremely convincing and specific use case for this before we consider implementing it. I could easily be wrong but fear this would introduce hard-to-understand complexity with little gain.

3. I have a suspicion that many of the plugingroups will turn out to only have one plugin in them when all the irrelevant stuff is trimmed out and stuff brought in by transitive dependencies is not listed explicitly. If this turns out to be true then having more than the framework plugingroup may not add much usefulness. We'll have to see.

4. As soon as we have numerous plugin groups, we'll have the same problem we do now in that it will be hard to find the plugingroups you want.

5. I think I argued against it in the past but I'm starting to think that perhaps including a list of tags with a plugin and having the select-a-plugin functionality organized by queries on these tags might be worth investigating. You'd pick say "ejb" and see all the ejb related plugins -- openejb, openejb-builder, openejb-console-jetty/ tomcat, cxf-ejb, etc etc.

6. It might be worth displaying plugin dependencies in the select-a- plugin functionality.


thanks
david jencks

On Oct 8, 2008, at 2:13 PM, Lin Sun wrote:

See in-line below...

On Wed, Oct 8, 2008 at 4:37 PM, Joe Bohn <[EMAIL PROTECTED]> wrote:

Thanks for making the suggestions.   It is always good to hear
feedback and challenge our thinking! :)

Yep, I wish we had more than 4 people actively looking/discussing this :-(

Ok ... you asked for it ;-) ... Also see my response on the other branch of
this thread.

We had over 4 people in the past... I am sure :)

My initial thought of grouping the plugins together was by category,
however I think it has the following limitations -

1. A user can specify his module to any category he likes too, thus it
could interfere with the resulting tree.  For example, a user has a
module that is also categorized as console or development tools or
administration.


Don't see this as an issue, since we control the default repository-list and what goes into the geronimo-plugins.xml for the server and samples. If a user created their own repo (like Liferay) then their plugins would be listed under the "Liferay Repo" instead of the "Geronimo Server Repo" and
they could use whatever categories they want.

The user can grow the repo-list easily by deploying an app onto the
local G server.   There isn't a geronimo-plugins.xml for the local
geronimo server repo, but the server is capable to build one on the
fly.

I see both points here. As Donald mentions, the repository should be in control of the namespace for the categories. However, that only works with
an external repository.  However, at the moment the assemble a server
functions only work with the local, server repository which can include plugins from multiple external repositories. To have the assembly function with correctly to build up a server it will eventually have to let the user choose plugins and plugingroups from multiple external repositories. That
should be interesting.

I agree currently it is local server only, and the prob still exists
with local server, as a user can install the plugin onto G server,
which will make the user's plugin resides in our local repo.




2. group by category doesn't offer any integration into maven. As you
know, we are using plugin groups for all of our G assemblies now.


I'm questioning if this "maven integration" is worth the added source complexity. I'm starting to lean heavily towards "No" and wondering if we should remove most of the pluginprofiles for 2.2 and only keep - framework, minimal and jee5. Once we get user feedback on what groupings "are missing"
then we can consider adding more.

I am missing the added source complexity here.   We only added very
little code to support plugin group as David reminded me the function
is already there.   In fact, having functions divided by plugin groups
allow me to clean up our long list of little G assemblies & javaee5
assemblies (there are lots of unnecessary dependencies) and only use
what is really needed (others can be pulled via transitive
dependencies).  I think we should keep most of them as they are today
and revise them upon users' request.   The only ones I had debating
myself if I should create them are jms, jsf and console.   jms and jsf
plugin groups each contain only one plugin as the other plugins can be
pulled via transitive dependencies.   However, that doesn't mean users
know which ones to pick easily.   About console plugin group, I'd be
totally ok removing it when we switch to optional console.

I think this can be worth the effort if we keep things simple. Only create
plugingroups when they are really necessary and leverage the groups
consistently. I personally like the idea of the groups so that a user can incrementally grow function in a new or existing server in logical chunks without having to understand all of the detailed plugins that we generate.

Me too.


3. group by category doesn't help with command line install-plugin
command.  Currently you can install a plugin group by using "deploy
install-plugin <plugingroup id>"


It would have to be enhanced, which it greatly needs IMO.
4. group by category doesn't help with "gshell deploy/assemble"
command.   A user is unlikely to have some fancy GUI like tree in a
command line env.

If a user is trying to assemble from cmdline, then they will suffer and
should either write a gsh script, use c-m-p or the console.

Alternatively, part of the enhancement of the command line could be to allow
the user to filter the list of plugins returned by category.

That is possible to enhance, IMO.


With plugin groups, you can still group plugins by category. In fact, in the install plugin portlet that we allow users to sort plugins by category, name, etc. I disabled the sort function in assemble server portlet as it needs more work but the plugins are sorted by category
right now.

I think I agree with you that the console-xxx plugin group are not
that useful and I think they can be removed after we make most of the console components optional. Currently, all these console components are under application plugins, and I 'm updating their names, desps, and categories to enable users to select them easily. For example, if a user wants little G tomcat + JMS, he can select web-tomcat, JMS
plugin group, and Console: JMS from application plugins if he wants
console support for JMS.

I think it would make sense to have several plugingroups (or aggregate plugins) when dealing with the console extensions. One possible pattern would be to create a plugingroup for the core function and then another plugingroup which includes the core function plugingroup and the console extension. For example (PG indicates a plugingroup, P just a plugin):

PG - JMS + Console
 includes:  PG - JMS
            P - JMS console

PG - JMS
 includes: P - the JMS and associated plugins that are necessary.

Here a user could choose to include the plugingroup for JMS + Console or
just the plugingroup for JMS.

Joe, I had thought about this too.  The other way to do things is
pretty straightforward too, either pick

PG -JMS + P - Console, JMS (this is only one plugin thus I don't feel
we need a group for it).

or

PG -JMS

Lin

Reply via email to