[jboss-jira] [JBoss JIRA] (WFLY-11446) Bring consistency to use of TransactionSynchronizationRegistry in WildFly

Brian Stansberry (Jira) issues at jboss.org
Thu Mar 14 20:57:00 EDT 2019


    [ https://issues.jboss.org/browse/WFLY-11446?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13708656#comment-13708656 ] 

Brian Stansberry commented on WFLY-11446:
-----------------------------------------

I think I cleaned these out as part of the fix related to this that we did for 15.0.1.  Here's what my IDE shows as the current uses of ContextTransactionSynchronizationRegistry:

{code}
Class
    ContextTransactionSynchronizationRegistry
Found usages  (21 usages found)
    Class static member access  (12 usages found)
        wildfly-transactions  (8 usages found)
            org.jboss.as.txn.service.internal.tsr  (8 usages found)
                JCAOrderedLastSynchronizationList  (1 usage found)
                    registerInterposedSynchronization(Synchronization)  (1 usage found)
                        64 int status = ContextTransactionSynchronizationRegistry.getInstance().getTransactionStatus();
                TransactionSynchronizationRegistryWrapper  (7 usages found)
                    registerInterposedSynchronization(Synchronization)  (1 usage found)
                        66 final ContextTransactionSynchronizationRegistry tsr = ContextTransactionSynchronizationRegistry.getInstance();
                    getTransactionKey()  (1 usage found)
                        84 return ContextTransactionSynchronizationRegistry.getInstance().getTransactionKey();
                    getTransactionStatus()  (1 usage found)
                        89 return ContextTransactionSynchronizationRegistry.getInstance().getTransactionStatus();
                    getRollbackOnly()  (1 usage found)
                        94 return ContextTransactionSynchronizationRegistry.getInstance().getRollbackOnly();
                    setRollbackOnly()  (1 usage found)
                        99 ContextTransactionSynchronizationRegistry.getInstance().setRollbackOnly();
                    getResource(Object)  (1 usage found)
                        104 return ContextTransactionSynchronizationRegistry.getInstance().getResource(key);
                    putResource(Object, Object)  (1 usage found)
                        110 ContextTransactionSynchronizationRegistry.getInstance().putResource(key, value);
        wildfly-ts-integ-basic  (2 usages found)
            org.jboss.as.test.integration.ejb.remote.client.api.tx  (2 usages found)
                EJBClientXidTransactionTestCase  (1 usage found)
                    beforeTestClass()  (1 usage found)
                        134 txSyncRegistry = ContextTransactionSynchronizationRegistry.getInstance();
                HTTPEJBClientXidTransactionTestCase  (1 usage found)
                    beforeTestClass()  (1 usage found)
                        148 txSyncRegistry = ContextTransactionSynchronizationRegistry.getInstance();
        Maven: org.wildfly.transaction:wildfly-transaction-client:1.1.3.Final  (2 usages found)
            org.wildfly.transaction.client.naming.txn  (2 usages found)
                TxnNamingContext  (2 usages found)
                    lookupNative(Name)  (1 usage found)
                        86 return ContextTransactionSynchronizationRegistry.getInstance();
                    listBindingsNative(Name)  (1 usage found)
                        123 binding(TransactionSynchronizationRegistry.class, ContextTransactionSynchronizationRegistry.getInstance())
    Field declaration  (1 usage found)
        Maven: org.wildfly.transaction:wildfly-transaction-client:1.1.3.Final  (1 usage found)
            org.wildfly.transaction.client  (1 usage found)
                ContextTransactionSynchronizationRegistry  (1 usage found)
                    34 private static final ContextTransactionSynchronizationRegistry instance = new ContextTransactionSynchronizationRegistry();
    Local variable declaration  (1 usage found)
        wildfly-transactions  (1 usage found)
            org.jboss.as.txn.service.internal.tsr  (1 usage found)
                TransactionSynchronizationRegistryWrapper  (1 usage found)
                    registerInterposedSynchronization(Synchronization)  (1 usage found)
                        66 final ContextTransactionSynchronizationRegistry tsr = ContextTransactionSynchronizationRegistry.getInstance();
    Method return type  (1 usage found)
        Maven: org.wildfly.transaction:wildfly-transaction-client:1.1.3.Final  (1 usage found)
            org.wildfly.transaction.client  (1 usage found)
                ContextTransactionSynchronizationRegistry  (1 usage found)
                    getInstance()  (1 usage found)
                        39 public static ContextTransactionSynchronizationRegistry getInstance() {
    New instance creation  (1 usage found)
        Maven: org.wildfly.transaction:wildfly-transaction-client:1.1.3.Final  (1 usage found)
            org.wildfly.transaction.client  (1 usage found)
                ContextTransactionSynchronizationRegistry  (1 usage found)
                    34 private static final ContextTransactionSynchronizationRegistry instance = new ContextTransactionSynchronizationRegistry();
    Usage in import  (5 usages found)
        wildfly-transactions  (2 usages found)
            org.jboss.as.txn.service.internal.tsr  (2 usages found)
                JCAOrderedLastSynchronizationList  (1 usage found)
                    33 import org.wildfly.transaction.client.ContextTransactionSynchronizationRegistry;
                TransactionSynchronizationRegistryWrapper  (1 usage found)
                    30 import org.wildfly.transaction.client.ContextTransactionSynchronizationRegistry;
        wildfly-ts-integ-basic  (2 usages found)
            org.jboss.as.test.integration.ejb.remote.client.api.tx  (2 usages found)
                EJBClientXidTransactionTestCase  (1 usage found)
                    60 import org.wildfly.transaction.client.ContextTransactionSynchronizationRegistry;
                HTTPEJBClientXidTransactionTestCase  (1 usage found)
                    58 import org.wildfly.transaction.client.ContextTransactionSynchronizationRegistry;
        Maven: org.wildfly.transaction:wildfly-transaction-client:1.1.3.Final  (1 usage found)
            org.wildfly.transaction.client.naming.txn  (1 usage found)
                TxnNamingContext  (1 usage found)
                    37 import org.wildfly.transaction.client.ContextTransactionSynchronizationRegistry;
{code}

So the transactions subsystem's own (valid) use, some testsuite stuff and then client library use.

> Bring consistency to use of TransactionSynchronizationRegistry in WildFly
> -------------------------------------------------------------------------
>
>                 Key: WFLY-11446
>                 URL: https://issues.jboss.org/browse/WFLY-11446
>             Project: WildFly
>          Issue Type: Enhancement
>          Components: Transactions
>    Affects Versions: 15.0.0.Beta1
>            Reporter: Scott Marlow
>            Assignee: Tom Jenkinson
>            Priority: Major
>
> See [https://github.com/wildfly/wildfly/pull/11784#discussion_r237172364] discussion about JNDI lookup of "java:jboss/TransactionSynchronizationRegistry" returning org.jboss.as.txn.service.internal.tsr.TransactionSynchronizationRegistryWrapper but other internal code sites (like EJB3, JPA container, JCA container) are directly using the org.wildfly.transaction.client.ContextTransactionSynchronizationRegistry.
> My suggestion is that we consider taking steps to eliminate some of the duplicate classes, so that the same TSR is always used.  I think some discussion is needed to get there, but wanted to have this tracking jira.
> Somewhat related is that Hibernate ORM 5.3 now has direct references to org.wildfly.transaction.client.ContextTransactionManager + org.wildfly.transaction.client.LocalUserTransaction.  Just mentioning in case its helpful to know for whomever looks at this jira.



--
This message was sent by Atlassian Jira
(v7.12.1#712002)


More information about the jboss-jira mailing list