geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lin Sun" <linsun....@gmail.com>
Subject Re: [DISCUSS] enhance the assemble server portlet usability
Date Tue, 19 Aug 2008 20:20:22 GMT
I have been thinking a bit more on how we achieve this.   Here is my
idea and I welcome your input -

So we have a need to allow users to install groups of plugins(function
profile), instead of individual plugins.   Install individual plugins
are nice for standalone apps, but for system modules, I think it would
be better to allow users to install groups of plugins as functional
profiles(unless the user is an expert user).    What we need is to
expose the groups of plugins for certain functions available to our
users and allow them to select the ones of their interest to build the
customer server.

I am proposing in addition to store plugin metadata of each plugin in
the plugin catalog, we could also host installable groups of plugins
information there (or in a separate catalog file).   For example, for
a function such as Web (same as little G) that has been discussed in
above posts, we could have the following plugin metadata -

<geronimo-plugin xmlns="http://geronimo.apache.org/xml/ns/plugins-1.3"
xmlns:ns2="http://geronimo.apache.org/xml/ns/attributes-1.2">
    <name>Geronimo Assemblies :: Minimal + Tomcat</name>
    <category>WEB Profile</category>
    <profile>true</profile>
    <description>A minimal Geronimo server (Little-G) assembly using
the Tomcat web-container.</description>
    <url>http://www.apache.org/</url>
    <author>Apache Software Foundation</author>
    <license osi-approved="true">The Apache Software License, Version
2.0</license>
    <plugin-artifact>
        <module-id>
            <groupId>org.apache.geronimo.assemblies</groupId>
            <artifactId>geronimo-tomcat6-minimal</artifactId>
            <version>2.2-SNAPSHOT</version>
            <type>car</type>
        </module-id>
        <geronimo-version>2.2-SNAPSHOT</geronimo-version>
        <jvm-version>1.5</jvm-version>
        <jvm-version>1.6</jvm-version>

        <dependency>
            <groupId>org.apache.geronimo.assemblies</groupId>
            <artifactId>geronimo-boilderplate-minimal</artifactId>
            <version>2.2-SNAPSHOT</version>
            <type>jar</type>
        </dependency>

        <dependency start="false">
            <groupId>org.apache.geronimo.framework</groupId>
            <artifactId>upgrade-cli</artifactId>
            <version>2.2-SNAPSHOT</version>
            <type>car</type>
        </dependency>

        <dependency start="true">
            <groupId>org.apache.geronimo.framework</groupId>
            <artifactId>rmi-naming</artifactId>
            <version>2.2-SNAPSHOT</version>
            <type>car</type>
        </dependency>

        <dependency start="true">
            <groupId>org.apache.geronimo.framework</groupId>
            <artifactId>j2ee-security</artifactId>
            <version>2.2-SNAPSHOT</version>
            <type>car</type>
        </dependency>

        <dependency start="true">
            <groupId>org.apache.geronimo.configs</groupId>
            <artifactId>tomcat6</artifactId>
            <version>2.2-SNAPSHOT</version>
            <type>car</type>
        </dependency>
...

When a plugin is a profile, it means it just contains a group of
geronimo plugin dependencies that are installable and can perform
certain functions.  By installing it, it will simply install the
dependency plugins.

Questions -

How do we build this profile type of plugin?   We could build them
manually initially to try things but maybe c-m-p could be used here.
How do we install this profile type of plugin?  I think we could
leverage the pluginInstallerGBean to install it...when profile is
true, we just download the dependencies.
How/Where should we make this file avail?   We could make this file
avail in geronimo-plugins.xml (or another catalog file in repo) and
with our server assembly (one assembly contains the plugin profiles it
have).  When building customer server, when load all the plugins that
are profile and ask users to pick which ones they want.   If we have a
framework that can install geronimo plugins, a user can just download
the framework and pick from our apache repo on which plugin profiles
they want to build their geronimo server.
How are we handle the upgrade scenarios Joe mentioned?   No idea
yet... I think this is a rather complicated scenario.

Thanks,

Lin

Mime
View raw message