geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul McMahan <paulmcma...@gmail.com>
Subject geronimo plugin schema (longish)
Date Thu, 19 Jul 2007 22:52:53 GMT
I've been thinking about some changes to the geronimo-plugin schema  
to make plugin catalogs less verbose and easier to maintain across  
versions of Geronimo.  The problem with the current schema is that  
some of the plugin metadata that is sensitive to the geronimo version  
is grouped in <geronimo-versions> elements, but some is not.

Plugins are often sensitive to the geronimo version they were  
developed under since they typically rely on lots of container  
services.   Besides that, in general plugins only work in the version  
of geronimo they were exported from (or car plugin version).  So this  
schema limitation makes it difficult to create one catalog that  
supports several versions of geronimo without having a lot of  
redundant plugin entries.  Right now we maintain separate catalogs at  
http://geronimo.apache.org/plugins for each version of geronimo  
because of this limitation.

I attached a proposed schema here :
   https://issues.apache.org/jira/browse/GERONIMO-3330

Using that new schema a plugin entry would look something like:
     <plugin>
             <name/>
             <category/>
             <description/>
             <url/>
             <author/>
             <license/>
             <plugin-module>
                 <module-id/>
                 <hash/>
                 <geronimo-version/>
                 <jvm-version-version/>
                 <prerequisite>
                         <id/>
                         <resource-type/>
                         <description/>
                 </prerequisite>
                 <dependency/>
                 <obsoletes/>
                 <source-repository/>
             </plugin-module>
             <plugin-module>
                  ...
             </plugin-module>
     </plugin>

Note that the metadata that is sensitive to the geronimo version is  
encapsulated in a <plugin-module> element.  And a single <plugin> can  
several <plugin-module> elements (e.g. one for each version of  
geronimo it supports).

While making this schema change two other things I was considering is  
factoring the plugin code out of geronimo-system into a separate  
config and using JAXB to handle the XML processing instead of the sax  
code it currently uses.    Feedback is welcome.

Best wishes,
Paul

Mime
View raw message