Do not use WebLogic TransactionSynchronizationRegistry object

This rule detects the use of a TransactionSynchronizationRegistry objects in a Java file. Review the JTA support topic in the WebSphere Application Server documentation.

The following cases are detected:

  1. Field declaration, object level example:
    private TransactionSynchronizationRegistry reg ;

  2. Method variable example:
    private void doX(){  TransactionSynchronizationRegistry reg;
    }

  3. String literal usage examples: String s = "java:comp/TransactionSynchronizationRegistry";
    or String s = "javax/transaction/TransactionSynchronizationRegistry";
    or String s = "weblogic/transaction/TransactionSynchronizationRegistry";
    or TransactionManager mgr = ctx.lookup("java:comp/TransactionSynchronizationRegistry")
    or TransactionManager mgr = ctx.lookup("javax/transaction/TransactionSynchronizationRegistry")
    or TransactionManager mgr = ctx.lookup("weblogic/transaction/TransactionSynchronizationRegistry")

The object can be detected if it is used as a qualified name, such as javax.transaction.TransactionSynchronizationRegistry.

The object can also be detected is used as a simple name, such as TransactionSynchronizationRegistry, if any of the following import statements exist:
import javax.transaction.*;
or
import javax.transaction.TransactionSynchronizationRegistry;