jakartaee / transactions

Welcome to the Jakarta EE Transactions API Project (formerly JTA)
https://jakartaee.github.io/transactions/
Other
29 stars 30 forks source link

Make the CDI/interceptor dependencies optional in module-info #212

Open yrodiere opened 1 year ago

yrodiere commented 1 year ago

Fixes #214

The "static" keyword means "required for compilation of this module, but not at runtime", which is pretty much the current situation.

Those dependencies are only required for the @Transactional and @TransactionScoped annotations, but jakarta.transaction-api can perfectly well be used without CDI, e.g. in Hibernate ORM in a Java SE environment.

Without this change, it's impossible to use jakarta.transaction-api (or anything relying on it, e.g. Hibernate ORM) without CDI in the modulepath.

edburns commented 7 months ago

I am glad to see activity on transactions, however I am unaware of any plan to include an update on transactions in EE 11.

https://jakartaee.github.io/platform/jakartaee11/JakartaEE11ReleasePlan

Please confirm.

yrodiere commented 7 months ago

Input on this issue was solicited on the jta-dev email list. I have no stake at all in this issue one way or the other. My input is: see https://mail.openjdk.org/pipermail/jigsaw-dev/2023-April/014850.html (and following, and preceding), where the intent of requires static is discussed. Short version: it does not mean an optional dependency, apparently, but many users wish it would.

I can't comment on what requires static is supposed to mean, but in practice it achieves what we want it to achieve, so as far as I'm concerned I'd happily trade the current (unsatisfying) behavior for that of requires static, even if it may become unsatisfying with future JDK/Jakarta Transaction changes (maybe).

I am glad to see activity on transactions, however I am unaware of any plan to include an update on transactions in EE 11.

https://jakartaee.github.io/platform/jakartaee11/JakartaEE11ReleasePlan

Please confirm.

This is a year-old pull-request on what is essentially an unspecified aspect, and arguably a bug, of the published JARs of Jakarta Transaction.

This is not a request to change the spec, and I personally do not think changing the spec is necessary, considering the content of module-info in spec JARs is often unspecified, both here and in other Jakarta specs.