There's one more bit that needs to be resolved before the Geronimo spec packages can be released, and that's the issue of package export versions in the different specs. There are a couple of issues involved:

1)  Explicitly specified version numbers in the enterprise specification
2) A current proposal under discussion for semantic package versioning at the OSGi Alliance.

In category 1), the only hit is to the JPA spec. The spec currently is exporting the javax.persistence* packages as version 2.0, but the enterprise spec specifically requires 1.1. Unfortunately, we've already released a version exporting as 2.0, and that's the version that OpenJPA is using to build their bundles.

For category 2, the current proposal would use the java ee 5 numbers as a baseline and increment the minor version number. So, for example, jaxb 2.1 would become jaxb 2.2 for the java ee 6 version, which matches what we're already doing. It appears the only package we need to change is servlet, which would switch from 3.0 to 2.6. We have not made an official release of the servlet 3.0 spec yet, so switching this to 2.6 will have a lower impact.

The JPA spec is a problem. Just changing the export from 2.0 to 1.1 causes the geronimo build to break because the OpenJPA bundles are looking for version 2.0 of these packages. One solution would be to package these bundles using the desired package imports, but I'm concerned that applications built against the current OpenJPA version would not function correctly when deployed on Geronimo because of the version mismatche. I suspect the Aries samples would have this problem, for example.

I did a little experiment, and was able to get Geronimo to build again by having the bundle export multiple package versions. I think this will work as a short-term fix until OpenJPA releases a version that imports the 1.1 version of the packages.

Rick


Reply via email to