Tycho says true to that, but osgi itself at runtime bombs out...
if i have a product/feature that has a plugin that has as a dependency:
Then through that plugin it has a import package of javax.transaction.xa of 1.1.0
if i have a update site that has javax.transaction1.1.0 that has export packages of 1.1.0 of that then it will build it
But then i needed something else, and i added the latest orbit site:
then there it has a javax.transaction 1.1.1
at first sight i would say the product build should ignore that because the dbcp2 package needs 1.1.0
But it is a package import not a bundle import so if you look closer into that 1.1.1 of that javax.transaction then that as a export package of 1.1 (without .0)
So its kind of the same?
tycho sees it the same, because the product build suddenly includes that one instead of the 1.1.0 one.
But then when i made the product and run it:
org.osgi.framework.BundleException: Could not resolve module: com.servoy.eclipse.docgenerator.client 
Unresolved requirement: Require-Bundle: org.apache.commons.commons-dbcp2; bundle-version="2.7.0"
-> Bundle-SymbolicName: org.apache.commons.commons-dbcp2; bundle-version="2.7.0"
Unresolved requirement: Import-Package: javax.transaction.xa; partial="true"; version="1.1.0"; mandatory:="partial"
the product doesn't start because osgi wants to find 1.1.0 but somehow doesn't match on 1.1 that the 1.1.1 bundle has..
If i then force through my feature that javax.transaction 1.1.0 should be used then it works, then the product is forced to use 1.1.0 of the bundle instead of 1.1.1
But now the question is, who is wrong here?
Is OSGI itself to strict because 1.1 does not match on 1.1.0
or is Tycho to relaxed and tycho should use the 1.1.0 version of the bundle because of the import requirement of 1.1.0 of the dbcp2 bundle?