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

Reply via email to