[ https://issues.apache.org/jira/browse/GERONIMO-2757?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jason Warner updated GERONIMO-2757: ----------------------------------- Attachment: Geronimo-2757Export.patch This patch fixes the export so that the geronimo-versions element is now included. > 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-M5 > Reporter: Paul McMahan > Assignee: Jason Warner > Fix For: 2.0-M7 > > Attachments: geronimo-2757.patch, Geronimo-2757.patch, > Geronimo-2757.patch, Geronimo-2757Export.patch, Geronimo-2757Update.patch > > > 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. - You can reply to this email to add a comment to the issue online.