Ok slight update, if uninstall
OPS4J Pax Web - Jsp Support (115)
Then it correctly exports javax.el version 1.0
But the question is, why is it importing version 2.1.0 when it declares an import of version 1.0?
The osgi:headers command is used to show the information in the MANIFEST.MF file that the OSGi runtime will use to resolve bundles and wire packages. The packages:imports/exports commands show the result of resolution, i.e. it shows you how packages have been wired to resolve the bundle.
In this case, the geronimo el bundle specifies
Import-Package = javax.el;version="1.0"
This means it will import javax.el version 1.0 or higher. With the Pax Jsp Support installed, the best available version for the javax.el package is 2.1.0, so that's the bundle that gets wired to resolve the import.
It would be better if the import would carry an explicit version range (e.g. [1.0, 1.1) to avoid resolving against a future (possibly incompatible) version of that package.
For the bundles we specifically build for ServiceMix, we usually avoid reimporting the packages we export to avoid exactly this kind of situation. If you want to build your own bundle for EL 1.0 this way too, you can always take a quick look at e.g. http://svn.apache.org/viewvc/servicemix/smx4/bundles/trunk/commons-codec-1.3/pom.xml?revision=828351&view=markup for inspiration.
I thought import "1.0" meant explicitly import only version 1.0. Nice to know that it will resolve later versions. Thanks Gert!
For what it's worth: we don't think the EL bundle should be importing its own packages so I'm currently working on a patch to get that addressed in the next release of the geronimo bundles as well. In the meanwhile, I'm afraid your best bet it to recreate your own bundle for javax.el