Do not use WebLogic TransactionManager object

This rule detects the use of TranasctionManager 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 TransactionManager tmgr ;

  2. Method variable example:
    private void doX(){
        TransactionManager tmgr;
    }

  3. Cast expression example:
    TransactionManager t = (TransactionManager) someOtherObject;

  4. String literal usage examples:
    String s = "weblogic.transaction.TransactionManager";
    or String s = "weblogic.transaction.TransactionManager";
    or TransactionManager mgr = ctx.lookup("weblogic.transaction.TransactionManager")
    or TransactionManager mgr = ctx.lookup("javax.transaction.TransactionManager")

  5. Method invocation example:
    TransactionManager t = TransactionHelper.getTransactionManager();
    or TransactionManager t = TxHelper.getTransactionManager();

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

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