[
https://issues.jboss.org/browse/WFLY-11225?page=com.atlassian.jira.plugin...
]
Brian Stansberry commented on WFLY-11225:
-----------------------------------------
Grepping the wildfly-transaction-client code base for the packages provided by the
org.jboss.jboss-transaction-spi, org.jboss.jts and org.jboss.jts.integration modules
confirms that the only uses are from JBossLocalTransactionProvider and its subclasses,
which are only used if the transaction subsystem (LocalTransactionContextService) uses
them. So no transaction subsystem means no use, and hence the deps are optional.
{code}
$ git grep org.jboss.tm
src/main/java/org/wildfly/transaction/client/provider/jboss/JBossJTALocalTransactionProvider.java:import
org.jboss.tm.ExtendedJBossXATerminator;
src/main/java/org/wildfly/transaction/client/provider/jboss/JBossJTALocalTransactionProvider.java:import
org.jboss.tm.TransactionTimeoutConfiguration;
src/main/java/org/wildfly/transaction/client/provider/jboss/JBossJTALocalTransactionProvider.java:import
org.jboss.tm.XAResourceRecoveryRegistry;
src/main/java/org/wildfly/transaction/client/provider/jboss/JBossJTSLocalTransactionProvider.java:import
org.jboss.tm.ExtendedJBossXATerminator;
src/main/java/org/wildfly/transaction/client/provider/jboss/JBossJTSLocalTransactionProvider.java:import
org.jboss.tm.TransactionTimeoutConfiguration;
src/main/java/org/wildfly/transaction/client/provider/jboss/JBossJTSLocalTransactionProvider.java:import
org.jboss.tm.XAResourceRecoveryRegistry;
src/main/java/org/wildfly/transaction/client/provider/jboss/JBossLocalTransactionProvider.java:import
org.jboss.tm.ExtendedJBossXATerminator;
src/main/java/org/wildfly/transaction/client/provider/jboss/JBossLocalTransactionProvider.java:import
org.jboss.tm.ImportedTransaction;
src/main/java/org/wildfly/transaction/client/provider/jboss/JBossLocalTransactionProvider.java:import
org.jboss.tm.TransactionImportResult;
src/main/java/org/wildfly/transaction/client/provider/jboss/JBossLocalTransactionProvider.java:import
org.jboss.tm.XAResourceRecoveryRegistry;
$ git grep com.arjuna
src/main/java/org/wildfly/transaction/client/provider/jboss/JBossJTALocalTransactionProvider.java:import
com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple;
src/main/java/org/wildfly/transaction/client/provider/jboss/JBossJTALocalTransactionProvider.java:import
com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple;
src/main/java/org/wildfly/transaction/client/provider/jboss/JBossJTALocalTransactionProvider.java:import
com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple;
src/main/java/org/wildfly/transaction/client/provider/jboss/JBossJTSLocalTransactionProvider.java:import
com.arjuna.ats.internal.jta.resources.jts.orbspecific.JTAInterposedSynchronizationImple;
src/main/java/org/wildfly/transaction/client/provider/jboss/JBossJTSLocalTransactionProvider.java:import
com.arjuna.ats.internal.jta.resources.jts.orbspecific.SynchronizationImple;
src/main/java/org/wildfly/transaction/client/provider/jboss/JBossJTSLocalTransactionProvider.java:import
com.arjuna.ats.internal.jta.transaction.jts.TransactionImple;
src/main/java/org/wildfly/transaction/client/provider/jboss/JBossJTSLocalTransactionProvider.java:import
com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple;
src/main/java/org/wildfly/transaction/client/provider/jboss/JBossLocalTransactionProvider.java:import
static com.arjuna.ats.arjuna.coordinator.TwoPhaseOutcome.INVALID_TRANSACTION;
src/main/java/org/wildfly/transaction/client/provider/jboss/JBossLocalTransactionProvider.java:import
static com.arjuna.ats.arjuna.coordinator.TwoPhaseOutcome.PREPARE_NOTOK;
src/main/java/org/wildfly/transaction/client/provider/jboss/JBossLocalTransactionProvider.java:import
static com.arjuna.ats.arjuna.coordinator.TwoPhaseOutcome.PREPARE_OK;
src/main/java/org/wildfly/transaction/client/provider/jboss/JBossLocalTransactionProvider.java:import
static com.arjuna.ats.arjuna.coordinator.TwoPhaseOutcome.PREPARE_READONLY;
src/main/java/org/wildfly/transaction/client/provider/jboss/JBossLocalTransactionProvider.java:import
com.arjuna.ats.arjuna.common.arjPropertyManager;
src/main/java/org/wildfly/transaction/client/provider/jboss/JBossLocalTransactionProvider.java:
if (transactionManager instanceof
com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple
src/main/java/org/wildfly/transaction/client/provider/jboss/JBossLocalTransactionProvider.java:
|| transactionManager instanceof
com.arjuna.ats.jbossatx.jta.TransactionManagerDelegate) {
src/main/java/org/wildfly/transaction/client/provider/jboss/JBossLocalTransactionProvider.java:
} else if (transactionManager instanceof
com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple
src/main/java/org/wildfly/transaction/client/provider/jboss/JBossLocalTransactionProvider.java:
|| transactionManager instanceof
com.arjuna.ats.jbossatx.jts.TransactionManagerDelegate) {
$ git grep org.omg
$ git grep org.jboss.narayana
pom.xml:
<version.org.jboss.narayana>5.5.30.Final</version.org.jboss.narayana>
pom.xml: <groupId>org.jboss.narayana.jts</groupId>
pom.xml: <version>${version.org.jboss.narayana}</version>
pom.xml: <groupId>org.jboss.narayana.jts</groupId>
pom.xml: <version>${version.org.jboss.narayana}</version>
pom.xml: <groupId>org.jboss.narayana.jta</groupId>
pom.xml: <version>${version.org.jboss.narayana}</version>
{code}
The 'local provider builder' dependencies from
org.wildfly.transactions.client module should be made optional
-------------------------------------------------------------------------------------------------------------
Key: WFLY-11225
URL:
https://issues.jboss.org/browse/WFLY-11225
Project: WildFly
Issue Type: Enhancement
Components: Transactions
Reporter: Brian Stansberry
Assignee: Brian Stansberry
Priority: Major
The org.wildfly.transactions.client module includes some non-optional dependencies that
appear to only be required if JBossLocalTransactionProvider.builder() is used by outside
code that provides a local transaction provider. AKA the transaction subsystem. This
means those dependencies are optional in cases where there is no such caller.
The outside caller (i.e. the transaction subsystem module) can ensure that a non-optional
dependency on the required modules exists.
This change will allow other modules that have a classloading dependency on
org.wildfly.transactions.client but don't necessarily care whether a local tx provider
is actually installed to depend on the module without forcing inclusion of these
dependencies.
Features provided by modules that depend on org.wildfly.transactions.client and that also
require that a local tx provider be installed should create a management model requirement
for a capability. See WFLY-11166.
See also discussion at
http://post-office.corp.redhat.com/archives/eap-pm-list/2018-October/msg0...
--
This message was sent by Atlassian Jira
(v7.12.1#712002)