geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jason Warner (JIRA)" <>
Subject [jira] Commented: (GERONIMO-2757) Enhance plugin schema to allow for multiple versions of a plugin
Date Tue, 30 Jan 2007 03:50:33 GMT


Jason Warner commented on GERONIMO-2757:

After running through this again I came up with a different idea.  I found that the schemas
to validate against are actually in the plugin-installer code and not in the xml document.
 This would make it difficult to determine which schema a document is using since it's not
explicitly stated.  I was thinking that we could modify this code to validate against the
new and the old schema.  Since the geronimo-version element is optional in both schemas, the
new schema could be modified slightly so that its geronimo-version element has a different
name.  This way, old xml's can be left alone and still work fine but new xml's can use the
new geronimo-version element and also work.  This would require that the given xml document
either use the new way or the old way for each version.  By this I mean that for each version
a user wishes to have in the xml, you can either use the new way or the old way but not both.
 The code would use whichever geronimo-version element matched the running version but would
be unsure of what to do if two geronimo-version elements existed for the same version.  

> Enhance plugin schema to allow for multiple versions of a plugin
> ----------------------------------------------------------------
>                 Key: GERONIMO-2757
>                 URL:
>             Project: Geronimo
>          Issue Type: Improvement
>      Security Level: public(Regular issues) 
>          Components: Plugins
>    Affects Versions: 2.0
>            Reporter: Paul McMahan
>         Assigned To: Jason Warner
> plugins-1.1.xsd currently allows for a single version of a plugin to be described from
within a <plugin> element.   For example, if there were a different version of plugin
for each version of geronimo then the plugin catalog would like something like:
> <plugin>
>     <module-id>org.apache.geronimo.configs/ca-helper-tomcat/1.1/car</module-id>
>     <geronimo-version>1.1</geronimo-version>
>     <source-repository></source-repository>
>     [...]
> </plugin>
> <plugin>
>     <module-id>org.apache.geronimo.configs/ca-helper-tomcat/1.2/car</module-id>
>     <geronimo-version>1.2</geronimo-version>
>     <source-repository></source-repository>
>     [...]
> </plugin>
> <plugin>
>     <module-id>org.apache.geronimo.configs/ca-helper-tomcat/2.0/car</module-id>
>     <geronimo-version>2.0</geronimo-version>
>     <source-repository></source-repository>
>     [...]
> </plugin>
> <default-repository></default-repository>
> <default-repository></default-repository>
> <default-repository></default-repository>
> Plugins are usually not compatible across versions of Geronimo for various reasons, probably
the most prominent of which is Geronimo's reliance on serialized java objects in CAR files.
 Browsing a catalog that contains a <plugin> element for each version of Geronimo's
plugins from the  admin console or from the CLI  would be confusing because of the many (seemingly
redundant) entries.  Therefore the collection of Geronimo plugins is distributed across a
set of catalogs, one per version of Geronimo, and each version of Geronimo points at a version
specific plugin catalog.
> Modifying the plugin schema so that a <plugin> element can allow the plugin's module-id
and source-repository to depend on the <geronimo-version> would allow there to be much
fewer entries in a consolidated plugin catalog.  A plugin catalog that is created using this
modified schema might look something like (this is just a sample) :
> <plugin>
>     <geronimo-version version="1.1">
>         <module-id>org.apache.geronimo.configs/ca-helper-tomcat/1.1/car</module-id>
>         <source-repository></source-repository>
>     </geronimo-version>
>     <geronimo-version version="1.2">
>         <module-id>org.apache.geronimo.configs/ca-helper-tomcat/1.2/car</module-id>
>         <source-repository></source-repository>
>     </geronimo-version>
>     <geronimo-version version="2.0">
>         <module-id>org.apache.geronimo.configs/ca-helper-tomcat/2.0/car</module-id>
>         <source-repository></source-repository>
>     </geronimo-version>
>     [...]
> </plugin>
> Also, for this to work a customized list of <prerequisite> elements would probably
have to be supported inside the <geronimo-version> element as well, since those might
also be version specific.
> Once this improvement is in place it will be easier to maintain Geronimo's plugin collection
since each version of Geronimo won't require a separate catalog.  Also it will be easier for
end users and other external sources to refer to Geronimo's plugin catalog since the repository
URL will no longer be version specific.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message