Enhance plugin schema to allow for multiple versions of a plugin
----------------------------------------------------------------
Key: GERONIMO-2757
URL: https://issues.apache.org/jira/browse/GERONIMO-2757
Project: Geronimo
Issue Type: Improvement
Security Level: public (Regular issues)
Components: Plugins
Affects Versions: 2.0
Reporter: Paul McMahan
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>http://geronimo.apache.org/plugins/geronimo-1.1</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>http://geronimo.apache.org/plugins/geronimo-1.2</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>http://geronimo.apache.org/plugins/geronimo-2.0</source-repository>
[...]
</plugin>
<default-repository>http://geronimo.apache.org/plugins/geronimo-1.1</default-repository>
<default-repository>http://geronimo.apache.org/plugins/geronimo-1.2</default-repository>
<default-repository>http://geronimo.apache.org/plugins/geronimo-2.0</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>http://geronimo.apache.org/plugins/geronimo-1.1</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>http://geronimo.apache.org/plugins/geronimo-1.2</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>http://geronimo.apache.org/plugins/geronimo-2.0</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.
-
If you think it was sent incorrectly contact one of the administrators:
https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira