[jboss-jira] [JBoss JIRA] (WFLY-11225) The 'local provider builder' dependencies from org.wildfly.transactions.client module should be made optional
Brian Stansberry (Jira)
issues at jboss.org
Fri Oct 26 18:32:00 EDT 2018
[ https://issues.jboss.org/browse/WFLY-11225?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13653592#comment-13653592 ]
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/msg00131.html
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
More information about the jboss-jira
mailing list