[jboss-cvs] JBossAS SVN: r77958 - branches/JBPAPP_4_2_0_GA_CP/server/src/main/org/jboss/tm/usertx/client.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Sep 4 06:30:09 EDT 2008


Author: galder.zamarreno at jboss.com
Date: 2008-09-04 06:30:08 -0400 (Thu, 04 Sep 2008)
New Revision: 77958

Modified:
   branches/JBPAPP_4_2_0_GA_CP/server/src/main/org/jboss/tm/usertx/client/ClientUserTransactionObjectFactory.java
   branches/JBPAPP_4_2_0_GA_CP/server/src/main/org/jboss/tm/usertx/client/ServerVMClientUserTransaction.java
Log:
[JBPAPP-1161] Avoid multiple initialisations by removing the need for cached object and improved efficiency.

Modified: branches/JBPAPP_4_2_0_GA_CP/server/src/main/org/jboss/tm/usertx/client/ClientUserTransactionObjectFactory.java
===================================================================
--- branches/JBPAPP_4_2_0_GA_CP/server/src/main/org/jboss/tm/usertx/client/ClientUserTransactionObjectFactory.java	2008-09-04 10:26:32 UTC (rev 77957)
+++ branches/JBPAPP_4_2_0_GA_CP/server/src/main/org/jboss/tm/usertx/client/ClientUserTransactionObjectFactory.java	2008-09-04 10:30:08 UTC (rev 77958)
@@ -40,41 +40,31 @@
  *  usage for standalone clients.
  *      
  *  @author <a href="mailto:osh at sparre.dk">Ole Husgaard</a>
+ *  @author <a href="mailto:galder.zamarreno at jboss.com">Galder Zamarreno</a>
  *  @version $Revision$
  */
 public class ClientUserTransactionObjectFactory
    implements ObjectFactory
 {
    /**
-    *  The <code>UserTransaction</code> this factory will return.
-    *  This is evaluated lazily in {@link #getUserTransaction()}.
-    */
-   static private UserTransaction userTransaction = null;
-
-   /**
     *  Get the <code>UserTransaction</code> this factory will return.
     *  This may return a cached value from a previous call.
     */
    static private UserTransaction getUserTransaction()
    {
-      if (userTransaction == null) {
-         // See if we have a local TM
-         try {
-            new InitialContext().lookup("java:/TransactionManager");
-
-            // We execute in the server.
-            userTransaction = ServerVMClientUserTransaction.getSingleton();
-         } catch (NamingException ex) {
-            // We execute in a stand-alone client.
-            ClientUserTransaction cut = ClientUserTransaction.getSingleton();
-
-            // Tell the proxy that this is the factory for
-            // transaction propagation contexts.
-            TransactionPropagationContextUtil.setTPCFactory(cut);
-            userTransaction = cut;
-         }
+      UserTransaction userTransaction = null;
+      ServerVMClientUserTransaction serverUserTransaction = ServerVMClientUserTransaction.getSingleton();
+      if (serverUserTransaction.isServer())
+      {
+         userTransaction = serverUserTransaction;
       }
-      return userTransaction;
+      else
+      {
+         ClientUserTransaction cut = ClientUserTransaction.getSingleton();
+         TransactionPropagationContextUtil.setTPCFactory(cut);
+         userTransaction = cut;
+      }
+      return userTransaction;      
    }
 
    public Object getObjectInstance(Object obj, Name name,

Modified: branches/JBPAPP_4_2_0_GA_CP/server/src/main/org/jboss/tm/usertx/client/ServerVMClientUserTransaction.java
===================================================================
--- branches/JBPAPP_4_2_0_GA_CP/server/src/main/org/jboss/tm/usertx/client/ServerVMClientUserTransaction.java	2008-09-04 10:26:32 UTC (rev 77957)
+++ branches/JBPAPP_4_2_0_GA_CP/server/src/main/org/jboss/tm/usertx/client/ServerVMClientUserTransaction.java	2008-09-04 10:30:08 UTC (rev 77958)
@@ -46,6 +46,7 @@
  *  <code>TransactionManager</code> of the server.
  *
  *  @author <a href="mailto:osh at sparre.dk">Ole Husgaard</a>
+ *  @author <a href="mailto:galder.zamarreno at jboss.com">Galder Zamarreno</a>
  *  @version $Revision$
  */
 public class ServerVMClientUserTransaction
@@ -102,6 +103,11 @@
 
    // Public --------------------------------------------------------
 
+   public boolean isServer()
+   {
+       return tm != null;
+   }      
+   
    //Registration for TransactionStartedListeners.
 
    public void registerTxStartedListener(UserTransactionStartedListener txStartedListener)




More information about the jboss-cvs-commits mailing list