geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joe Bohn <joe.b...@earthlink.net>
Subject Re: svn commit: r702586 - in /geronimo/server/trunk/plugingroups/console-jetty: ./ pom.xml src/ src/main/ src/main/history/ src/main/history/dependencies.xml src/main/plan/
Date Wed, 08 Oct 2008 20:37:31 GMT
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 <dwoods@apache.org> wrote:
>>> It seems that most of the functionality now delivered in the 
>>> profilegroups
>>> could have been implemented by just properly setting the plugin category
>>> attribute 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 and
>>> allow 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 
>>> the
>>> user to choose.)
>>>
>>> That would allow us to have one set of plugins (the real ones) and 
>>> only have
>>> LOGICAL 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 
>>> complete
>>> assembly 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.
>>>>
>>>> Lin
>>>>
>>>> On Tue, Oct 7, 2008 at 11:03 PM, Donald Woods <dwoods@apache.org> 
>>>> 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
>>>>> plugins
>>>>> are installed?  By including it here, you're basically pulling in 
>>>>> the JMS
>>>>> plugins.
>>>>>
>>>>> 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
>>>>>
>>>>>
>>>>> linsun@apache.org 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  7
>>>>>> 12: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.xml

>>>>>>
>>>>>> URL:
>>>>>>
>>>>>> 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.xml

>>>>>>
>>>>>> Tue 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
>>>>>>
>>>>>>
>>>>>>
>>
> 


Mime
View raw message