-
Task
-
Resolution: Done
-
Major
-
None
-
None
-
---
-
---
All the stuff in the transaction subsystem should be moved to the ee subsystem.
The only reason the org.jboss.as.txn.ee.concurrency package is in the tx subsystem is to use TransactionManagerService.INTERNAL_SERVICE_NAME to inject a TransactionManager. That should not be necessary.
In the ee subsystem code:
Check for capability "org.wildfly.transactions.global-default-local-provider". If not present the transaction subsystem is not present, and skip the rest.
Don't inject the TM. Just add a non-injection requirement for the "org.wildfly.transactions.global-default-local-provider" capability. This ensures the tm stuff is ready before your service.
Instead of using injection of the TM, directly use org.wildfly.transaction.client.ContextTransactionManager.getInstance(). That's what TransactionManagerService.getValue() provides, so doing it directly is the same as injecting it.
Note that the above is the way access to the TM is meant to be handled; it's not a hack to avoid forking. See comment above TransactionManagerService.SERVICE_NAME.