Hello

I was checking how to make Pax Transx project more consistent wrt JTA 1.2
APIs. So I started digging and added my findings to
https://github.com/ops4j/org.ops4j.pax.transx/issues/33

(btw - I've migrated first Pax project - Pax Transx - from OPS4J Jira to
Github issues)

I don't want to copy entire investigation here, but summarizing:

   - javax.transaction/javax.transaction-api/1.2 works best in Karaf
   because it has ... `Require-Bundle: system.bundle`
   - javax.transaction/javax.transaction-api/1.3 imports (but doesn't
   export) "javax.transaction.xa" package, which is exported by Karaf (and
   available in JDK 8/9+) only with confusing `partial=true;
   mandatory:=partial` decorations
   - Karaf should NOT export `javax.transaction` package in
   etc/jre.properties on JDK11, as there's no such package in JDK11.
   Fortunately it's also exported with the above decorations, so normal bundle
   (importing `javax.transaction` package) won't resolve anyway
   - the problematic bundle is DBCP2 which uses the _partial_ attribute,
   but fortunately (and even in more confusing way) only for
   `javax.transaction.xa` package, which is definitely not partial at all
   (it's complete both in JDK 8 and 9+)

I invite you to comment under
https://github.com/ops4j/org.ops4j.pax.transx/issues/33 if you have any
ideas.

kind regards
Grzegorz Grzybek

Reply via email to