I ran into a problem this morning with the openejb clustering plugins
with the xmlbeans generated classes. This plugin was using the package
org.apache.geronimo.xbeans.geronimo. Unfortunately, this package is
also used by the geronimo-connector-builder-1_6 plugin, which results in
two bundles attempting to export the same package with different
classes. In the OSGi world, this is a bad thing.
In cleaning this up, I was trying to figure out what name I should be
using as a replacement, and I've discovered that we have no consistency
at all in how these package names are defined. Here's what we currently
appear to be using.
File
C:\g-3.0\framework\modules\geronimo-service-builder\src\main\xsdconfig\xmlconfig.xml
21 9:
<xb:package>org.apache.geronimo.deployment.xbeans</xb:package>
25 9:
<xb:package>org.apache.geronimo.deployment.xbeans</xb:package>
29 9:
<xb:package>org.apache.geronimo.deployment.javabean.xbeans</xb:package>
File
C:\g-3.0\plugins\client\geronimo-client-builder\src\main\xsdconfig\xmlconfig.xml
23 9:
<xb:package>org.apache.geronimo.xbeans.geronimo.client</xb:package>
File
C:\g-3.0\plugins\connector-1_6\geronimo-connector-builder-1_6\src\main\xsdconfig\xmlconfig.xml
21 9: <xb:package>org.apache.geronimo.xbeans.geronimo</xb:package>
File
C:\g-3.0\plugins\corba\geronimo-corba-builder\src\main\xsdconfig\xmlconfig.xml
24 9:
<xb:package>org.apache.geronimo.corba.xbeans.csiv2.tss</xb:package>
29 9:
<xb:package>org.apache.geronimo.corba.xbeans.csiv2.css</xb:package>
File
C:\g-3.0\plugins\j2ee\geronimo-j2ee-builder\src\main\xsdconfig\xmlconfig.xml
20 9:
<xb:package>org.apache.geronimo.xbeans.geronimo.j2ee</xb:package>
File
C:\g-3.0\plugins\j2ee\geronimo-naming-builder\src\main\xsdconfig\xmlconfig.xml
21 9:
<xb:package>org.apache.geronimo.xbeans.geronimo.naming</xb:package>
File
C:\g-3.0\plugins\j2ee\geronimo-security-builder\src\main\xsdconfig\xmlconfig.xml
20 13:
<!--<xb:package>org.apache.geronimo.xbeans.geronimo.security</xb:package>-->
25 9:
<xb:package>org.apache.geronimo.xbeans.geronimo.security.subjectinfo</xb:package>
30 9:
<xb:package>org.apache.geronimo.xbeans.geronimo.security</xb:package>
35 9:
<xb:package>org.apache.geronimo.xbeans.geronimo.loginconfig</xb:package>
40 9:
<xb:package>org.apache.geronimo.xbeans.geronimo.credentialstore</xb:package>
44 9:
<xb:package>org.apache.geronimo.xbeans.geronimo.jaspi</xb:package>
File
C:\g-3.0\plugins\j2ee\geronimo-web-2.5-builder\src\main\xsdconfig\xmlconfig.xml
22 9:
<xb:package>org.apache.geronimo.xbeans.geronimo.web</xb:package>
File
C:\g-3.0\plugins\jetty7\geronimo-jetty7-builder\src\main\xsdconfig\xmlconfig.xml
23 9:
<xb:package>org.apache.geronimo.xbeans.geronimo.web.jetty</xb:package>
28 9:
<xb:package>org.apache.geronimo.xbeans.geronimo.web.jetty.config</xb:package>
File
C:\g-3.0\plugins\jetty7\geronimo-jetty7-clustering-builder-wadi\src\main\xsdconfig\xmlconfig.xml
21 9: <xb:package>org.apache.geronimo.xbeans.geronimo</xb:package>
File
C:\g-3.0\plugins\openejb\geronimo-openejb-builder\src\main\xsdconfig\xmlconfig.xml
23 9:
<xb:package>org.apache.geronimo.openejb.xbeans.ejbjar</xb:package>
File
C:\g-3.0\plugins\openejb\geronimo-openejb-clustering-builder-wadi\src\main\xsdconfig\xmlconfig.xml
21 9:
<xb:package>org.apache.geronimo.openejb.cluster.xbeans</xb:package>
File
C:\g-3.0\plugins\tomcat\geronimo-tomcat6-builder\src\main\xsdconfig\xmlconfig.xml
22 9:
<xb:package>org.apache.geronimo.xbeans.geronimo.web.tomcat</xb:package>
26 9:
<xb:package>org.apache.geronimo.xbeans.geronimo.web.tomcat.config</xb:package>
File
C:\g-3.0\plugins\tomcat\geronimo-tomcat6-clustering-builder-wadi\src\main\xsdconfig\xmlconfig.xml
21 9: <xb:package>org.apache.geronimo.xbeans.geronimo</xb:package>
File
C:\g-3.0\plugins\webservices\geronimo-webservices-builder\src\main\xsdconfig\xmlconfig.xml
21 9: <xb:package>org.apache.geronimo.xbeans.schema</xb:package>
25 9: <xb:package>org.apache.geronimo.xbeans.wsdl</xb:package>
Note that the package org.apache.geronimo.xbeans.geronimo are used in at
least two other places, which needs to be fixed (I'm already working in
those areas, and will take care of those).
There are a couple of other oddities:
1) where should the "xbeans" qualifier be placed. In most places, this
appears immedialty after the "org.apache.geronimo". In other places,
there's a qualifier between the toplevel geronimo package and the xbeans
(e.g. org.apache.geronimo.openejb.xbeans.ejbjar). We also have places
where the xbeans qualifier is place at the end (e.g.,
org.apache.geronimo.deployment.xbeans).
2) from the department of redundancy department, there are a lot of
packages using a prefix of "org.apache.geronimo.xbeans.geronimo". The
second geronimo seems unnecessary, though I think some argument can be
advanced that it should be there. If that's the case, then there are
probably other packages where the second geronimo needs to be added.
The xmlbeans usage is one place where there is a bit of work required to
get the bundle imports and exports set up correctly, so I suspect we'll
want to be adding some plugins to help get the manifests correctly
generated. Having a good naming convention for the generate xbeans
packages will probably make this process easier.
Rick