Donald Woods wrote:
In-line.Lin Sun 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.
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.
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.
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 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.
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.
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.
Lin On Wed, Oct 8, 2008 at 1:48 PM, Donald Woods <[EMAIL PROTECTED]> wrote:It seems that most of the functionality now delivered in the profilegroupscould have been implemented by just properly setting the plugin categoryattribute to a useful "plugin group" name and use the source repo for the plugin to denote they are base server plugins vs. Samples vs. a "Console"plugin from a third-party.For something like the activemq portlets, we'd just set category=Console.Then modifying the plugin installer to build a tree of plugin groups andallow the user to select one or more "groups" of plugins, like console, or choose specific plugins from within a group, like everything under console except the activemq portlets. (We would also add some logic to only select Tomcat or Jetty plugins based on which is already installed or prompt theuser to choose.)That would allow us to have one set of plugins (the real ones) and only haveLOGICAL groupings (instead of the physical ones now under plugingroups/) based on the defined category. The user would then see something like - - Apache Geronimo Server repository |--+ Console | |- ActiveMQ Console | |- Dojo | |- . . . | |--+ Web Container | |- Tomcat6 | |- Jetty6 | . . .There are still some cases where we'd want to use the new c-m-p support for not creating a classloader, like using it to generate a "minimal web" and "full jee5" grouping/profile/template that users could rely on for creating their own custom assemblies with c-m-p without having to create a completeassembly build. -Donald Lin Sun wrote:These are the console plugin groups, basically it provides the required console function for the javaee5 assemblies. I think the list suggested the following profiles a while back ago: JMS EJB Web Services Admin Console ... Also, I need the console plugin group to construct the javaee5 plugin groups/assemblies. Regarding activemq-console-xxx, my initial thought was to include it in the JMS plugin group, but I realize that you are working on the optional console and people may not want the JMS console function when they want JMS function (for example, there is one user trying to add JMS on top of little G). When you have your optional console stuff in, you can remove the optional ones from the console plugin group. Plugin groups are basically groups of plugins for users to easily understand and consume them. They can be used in the following ways: 1. custom server assemblies 2. G server assemblies (framework, javaee5) 3. install plugin group as regular plugin. For example, a user should be able to install the JMS plugin group in little G to get little G + JMS environment. LinOn Tue, Oct 7, 2008 at 11:03 PM, Donald Woods <[EMAIL PROTECTED]> wrote:Why are we recreating the existing console-jetty and console-tomcat as yet another plugin? Also, why are you including optional console plugins like activemq-console-xxx, which should only be included if the ActiveMQ pluginsare installed? By including it here, you're basically pulling in the JMSplugins. I'm starting to reconsider why we need plugingroups, if we're going to have to recreate dozens of existing plugins just in a slightly different format just so we can include them in a special view just for custom server assemblies.... -Donald [EMAIL PROTECTED] wrote:Author: linsun Date: Tue Oct 7 12:09:59 2008 New Revision: 702586 URL: http://svn.apache.org/viewvc?rev=702586&view=rev Log: Add the console-jetty plugin group Added: geronimo/server/trunk/plugingroups/console-jetty/ geronimo/server/trunk/plugingroups/console-jetty/pom.xml (with props) geronimo/server/trunk/plugingroups/console-jetty/src/ geronimo/server/trunk/plugingroups/console-jetty/src/main/ geronimo/server/trunk/plugingroups/console-jetty/src/main/history/geronimo/server/trunk/plugingroups/console-jetty/src/main/history/dependencies.xml(with props) geronimo/server/trunk/plugingroups/console-jetty/src/main/plan/ Added: geronimo/server/trunk/plugingroups/console-jetty/pom.xml URL:http://svn.apache.org/viewvc/geronimo/server/trunk/plugingroups/console-jetty/pom.xml?rev=702586&view=auto==============================================================================--- geronimo/server/trunk/plugingroups/console-jetty/pom.xml (added)+++ geronimo/server/trunk/plugingroups/console-jetty/pom.xml Tue Oct 712:09:59 2008 @@ -0,0 +1,98 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> +<!-- @version $Rev$ $Date$ --> + +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.apache.geronimo.plugingroups</groupId> + <artifactId>plugingroups</artifactId> + <version>2.2-SNAPSHOT</version> + </parent> + + <artifactId>console-jetty</artifactId> + <packaging>car</packaging> + <name>Geronimo Plugin Group :: Admin Console Jetty</name> + + <description>+ This plugin group provides Admin Console Jetty functionality.+ </description> + + <dependencies> + <dependency> + <groupId>org.apache.geronimo.configs</groupId> + <artifactId>ca-helper-jetty</artifactId> + <version>${version}</version> + <type>car</type> + </dependency> + + <dependency> + <groupId>org.apache.geronimo.plugins</groupId> + <artifactId>agent</artifactId> + <version>${version}</version> + <type>car</type> + </dependency> + + <dependency> + <groupId>org.apache.geronimo.plugins</groupId> + <artifactId>mconsole-jetty</artifactId> + <version>${version}</version> + <type>car</type> + </dependency> + + <dependency> + <groupId>org.apache.geronimo.plugins</groupId> + <artifactId>activemq-console-jetty</artifactId> + <version>${version}</version> + <type>car</type> + </dependency> + + <dependency> + <groupId>org.apache.geronimo.plugins</groupId> + <artifactId>debugviews-console-jetty</artifactId> + <version>${version}</version> + <type>car</type> + </dependency> + + <dependency> + <groupId>org.apache.geronimo.plugins</groupId> + <artifactId>plancreator-console-jetty</artifactId> + <version>${version}</version> + <type>car</type> + </dependency> + + <dependency> + <groupId>org.apache.geronimo.plugins</groupId> + <artifactId>plugin-console-jetty</artifactId> + <version>${version}</version> + <type>car</type> + </dependency> + + <dependency> + <groupId>org.apache.geronimo.plugins</groupId> + <artifactId>sysdb-console-jetty</artifactId> + <version>${version}</version> + <type>car</type> + </dependency> + </dependencies> +</project> + Propchange: geronimo/server/trunk/plugingroups/console-jetty/pom.xml------------------------------------------------------------------------------svn:eol-style = native Propchange: geronimo/server/trunk/plugingroups/console-jetty/pom.xml------------------------------------------------------------------------------svn:keywords = Date Revision Propchange: geronimo/server/trunk/plugingroups/console-jetty/pom.xml------------------------------------------------------------------------------svn:mime-type = text/xml Added:geronimo/server/trunk/plugingroups/console-jetty/src/main/history/dependencies.xmlURL:http://svn.apache.org/viewvc/geronimo/server/trunk/plugingroups/console-jetty/src/main/history/dependencies.xml?rev=702586&view=auto==============================================================================---geronimo/server/trunk/plugingroups/console-jetty/src/main/history/dependencies.xml(added) +++geronimo/server/trunk/plugingroups/console-jetty/src/main/history/dependencies.xmlTue Oct 7 12:09:59 2008 @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<plugin-artifact xmlns:ns2="http://geronimo.apache.org/xml/ns/attributes-1.2" xmlns="http://geronimo.apache.org/xml/ns/plugins-1.3"> + <module-id> + <groupId>org.apache.geronimo.plugingroups</groupId> + <artifactId>console-jetty</artifactId> + <version>2.2-SNAPSHOT</version> + <type>car</type> + </module-id> + <dependency> + <groupId>org.apache.geronimo.plugins</groupId> + <artifactId>plancreator-console-jetty</artifactId> + <type>car</type> + </dependency> + <dependency> + <groupId>org.apache.geronimo.plugins</groupId> + <artifactId>sysdb-console-jetty</artifactId> + <type>car</type> + </dependency> + <dependency> + <groupId>org.apache.geronimo.plugins</groupId> + <artifactId>activemq-console-jetty</artifactId> + <type>car</type> + </dependency> + <dependency> + <groupId>org.apache.geronimo.plugins</groupId> + <artifactId>plugin-console-jetty</artifactId> + <type>car</type> + </dependency> + <dependency> + <groupId>org.apache.geronimo.configs</groupId> + <artifactId>ca-helper-jetty</artifactId> + <type>car</type> + </dependency> + <dependency> + <groupId>org.apache.geronimo.plugins</groupId> + <artifactId>debugviews-console-jetty</artifactId> + <type>car</type> + </dependency> + <dependency> + <groupId>org.apache.geronimo.plugins</groupId> + <artifactId>mconsole-jetty</artifactId> + <type>car</type> + </dependency> + <dependency> + <groupId>org.apache.geronimo.plugins</groupId> + <artifactId>agent</artifactId> + <type>car</type> + </dependency> +</plugin-artifact> Propchange:geronimo/server/trunk/plugingroups/console-jetty/src/main/history/dependencies.xml------------------------------------------------------------------------------svn:eol-style = native Propchange:geronimo/server/trunk/plugingroups/console-jetty/src/main/history/dependencies.xml------------------------------------------------------------------------------svn:keywords = Date Revision Propchange:geronimo/server/trunk/plugingroups/console-jetty/src/main/history/dependencies.xml------------------------------------------------------------------------------svn:mime-type = text/xml
