You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by Grzegorz Grzybek <gr...@gmail.com> on 2021/02/03 07:18:05 UTC

Versions of packages in JavaEE API bundles

Hello

I've presented the long and a bit chaotic background in:
 - https://github.com/ops4j/org.ops4j.pax.transx/issues/33 - a JTA related
issue for Pax Transx
 - https://github.com/eclipse-ee4j/jca-api/issues/120 - a JCA issue for JCA
API itself (at Jakarta EE project)

In short words, the problem's origin is:
 - JavaEE 8[1] (the one still at Oracle) contains JCA 1.7 and JTA 1.2
(though the JSR907 page contains JTA 1.3 MR)
 - JakartaEE 8 (Eclipse EE4J) contains JCA 1.7 and JTA 1.3 and explicitly
mentions[2] that JavaEE8 uses JTA 1.2 and JakartaEE8 uses JTA 1.3

And the real problem is (IMO):
 - Even if there's concrete JTA 1.3 specification, everything it does is
removal of `javax.transaction.xa` package from the spec (betting on
assumption that this package is part of JDK)
 - the Maven Central artifacts like
javax.transaction:javax.transaction-api:1.3 and
jakarta.transaction:jakarta.transaction-api:1.3.x contain `Export-Package:
javax.transaction;version="1.3"`
 - JCA API Jar like javax.resource:javax.resource-api:1.7.1 and
jakarta.resource:jakarta.resource-api:1.7.4 both use `Import-Package:
javax.transaction;version="[1.3,2.0)"` while they should import "[1.2,2.0)"
simply because JavaEE8 defines JTA 1.2

I know that JavaEE API jars don't have to care about OSGi at all and JavaEE
specs don't have to mention at all the "versions of packages" (unlike OSGi
CMPN specs - there's a version like R7 or R8 and versions of individual
packages, which don't necessarily change between R7 and R8) but I think the
OSGi project configurations for JavaEE jars are contributed by members of
OSGi community anyway so we (OSGi devs) should help maintain consistent
OSGi view of JavaEE API jars...

My questions are:
 - please check https://github.com/eclipse-ee4j/jca-api/issues/120 where I
want to propose JCA 1.7 API bundle to import
`javax.transaction;version="[1.2,2)"`
 - please correct me if I'm wrong, but IMO JTA 1.3 API bundle should export
javax.transaction package at version 1.2, not 1.3...

kind regards
Grzegorz Grzybek

---
[1]: https://www.oracle.com/java/technologies/java-ee-glance.html#javaee8
[2]:
https://jakarta.ee/specifications/platform/8/platform-spec-8.html#java-ee-8-and-jakarta-ee-8-specification-comparisons

Re: Versions of packages in JavaEE API bundles

Posted by Grzegorz Grzybek <gr...@gmail.com>.
Hello

And here's related issue I've created in eclipse-ee4j/jta-api:
https://github.com/eclipse-ee4j/jta-api/issues/186

regards
Grzegorz Grzybek

śr., 3 lut 2021 o 08:18 Grzegorz Grzybek <gr...@gmail.com> napisał(a):

> Hello
>
> I've presented the long and a bit chaotic background in:
>  - https://github.com/ops4j/org.ops4j.pax.transx/issues/33 - a JTA
> related issue for Pax Transx
>  - https://github.com/eclipse-ee4j/jca-api/issues/120 - a JCA issue for
> JCA API itself (at Jakarta EE project)
>
> In short words, the problem's origin is:
>  - JavaEE 8[1] (the one still at Oracle) contains JCA 1.7 and JTA 1.2
> (though the JSR907 page contains JTA 1.3 MR)
>  - JakartaEE 8 (Eclipse EE4J) contains JCA 1.7 and JTA 1.3 and explicitly
> mentions[2] that JavaEE8 uses JTA 1.2 and JakartaEE8 uses JTA 1.3
>
> And the real problem is (IMO):
>  - Even if there's concrete JTA 1.3 specification, everything it does is
> removal of `javax.transaction.xa` package from the spec (betting on
> assumption that this package is part of JDK)
>  - the Maven Central artifacts like
> javax.transaction:javax.transaction-api:1.3 and
> jakarta.transaction:jakarta.transaction-api:1.3.x contain `Export-Package:
> javax.transaction;version="1.3"`
>  - JCA API Jar like javax.resource:javax.resource-api:1.7.1 and
> jakarta.resource:jakarta.resource-api:1.7.4 both use `Import-Package:
> javax.transaction;version="[1.3,2.0)"` while they should import "[1.2,2.0)"
> simply because JavaEE8 defines JTA 1.2
>
> I know that JavaEE API jars don't have to care about OSGi at all and
> JavaEE specs don't have to mention at all the "versions of packages"
> (unlike OSGi CMPN specs - there's a version like R7 or R8 and versions of
> individual packages, which don't necessarily change between R7 and R8) but
> I think the OSGi project configurations for JavaEE jars are contributed by
> members of OSGi community anyway so we (OSGi devs) should help maintain
> consistent OSGi view of JavaEE API jars...
>
> My questions are:
>  - please check https://github.com/eclipse-ee4j/jca-api/issues/120 where
> I want to propose JCA 1.7 API bundle to import
> `javax.transaction;version="[1.2,2)"`
>  - please correct me if I'm wrong, but IMO JTA 1.3 API bundle should
> export javax.transaction package at version 1.2, not 1.3...
>
> kind regards
> Grzegorz Grzybek
>
> ---
> [1]: https://www.oracle.com/java/technologies/java-ee-glance.html#javaee8
> [2]:
> https://jakarta.ee/specifications/platform/8/platform-spec-8.html#java-ee-8-and-jakarta-ee-8-specification-comparisons
>