User: d_jencks
  Date: 02/03/24 13:44:32

  Modified:    src/main/org/jboss/tm/usertx/client
                        ServerVMClientUserTransaction.java
  Log:
  New ConnectionManager implementation
  
  Revision  Changes    Path
  1.2       +56 -21    
jboss/src/main/org/jboss/tm/usertx/client/ServerVMClientUserTransaction.java
  
  Index: ServerVMClientUserTransaction.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/tm/usertx/client/ServerVMClientUserTransaction.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ServerVMClientUserTransaction.java        26 Sep 2001 20:50:21 -0000      1.1
  +++ ServerVMClientUserTransaction.java        24 Mar 2002 21:44:32 -0000      1.2
  @@ -7,18 +7,22 @@
   
   package org.jboss.tm.usertx.client;
   
  +
  +import java.util.ArrayList;
  +import java.util.Collection;
  +import java.util.EventListener;
  +import java.util.Iterator;
   import javax.naming.InitialContext;
   import javax.naming.NamingException;
  -
  -import javax.transaction.UserTransaction;
  -import javax.transaction.TransactionManager;
  -import javax.transaction.Transaction;
  -import javax.transaction.Status;
  -import javax.transaction.NotSupportedException;
  -import javax.transaction.SystemException;
  -import javax.transaction.RollbackException;
   import javax.transaction.HeuristicMixedException;
   import javax.transaction.HeuristicRollbackException;
  +import javax.transaction.NotSupportedException;
  +import javax.transaction.RollbackException;
  +import javax.transaction.Status;
  +import javax.transaction.SystemException;
  +import javax.transaction.Transaction;
  +import javax.transaction.TransactionManager;
  +import javax.transaction.UserTransaction;
   
   
   /**
  @@ -28,7 +32,7 @@
    *  <code>TransactionManager</code> of the server.
    *
    *  @author <a href="mailto:[EMAIL PROTECTED]";>Ole Husgaard</a>
  - *  @version $Revision: 1.1 $
  + *  @version $Revision: 1.2 $
    */
   public class ServerVMClientUserTransaction
      implements UserTransaction
  @@ -38,15 +42,22 @@
      /**
       *  Our singleton instance.
       */
  -   private static ServerVMClientUserTransaction singleton = null;
  +   private final static ServerVMClientUserTransaction singleton = new 
ServerVMClientUserTransaction();
  +
  +
  +   /**
  +    *  The <code>TransactionManagerz</code> we delegate to.
  +    */
  +   private final TransactionManager tm;
  +
  +
  +   private final Collection listeners = new ArrayList();
   
      /**
       *  Return a reference to the singleton instance.
       */
      public static ServerVMClientUserTransaction getSingleton()
      {
  -      if (singleton == null)
  -         singleton = new ServerVMClientUserTransaction();
         return singleton;
      }
   
  @@ -59,16 +70,36 @@
      private ServerVMClientUserTransaction()
      {
         // Lookup the local TM
  +      TransactionManager local = null;
         try {
  -         tm = (TransactionManager)new 
InitialContext().lookup("java:/TransactionManager");
  +         local = (TransactionManager)new 
InitialContext().lookup("java:/TransactionManager");
   
  -      } catch (NamingException ex) {
  -         throw new RuntimeException("TransactionManager not found: " + ex);
  +      } catch (NamingException ex) 
  +      {
  +         //throw new RuntimeException("TransactionManager not found: " + ex);
         }
  +      tm = local;
  +   }
  +   //public constructor for TESTING ONLY
  +   public ServerVMClientUserTransaction(final TransactionManager tm)
  +   {
  +      this.tm = tm;
      }
   
      // Public --------------------------------------------------------
   
  +   //Registration for TransactionStartedListeners.
  +
  +   public void registerTxStartedListener(UserTransactionStartedListener 
txStartedListener)
  +   {
  +      listeners.add(txStartedListener);
  +   }
  +
  +   public void unregisterTxStartedListener(UserTransactionStartedListener 
txStartedListener)
  +   {
  +      listeners.remove(txStartedListener);
  +   }
  +
      //
      // implements interface UserTransaction
      //
  @@ -77,6 +108,11 @@
         throws NotSupportedException, SystemException
      {
         tm.begin();
  +      for (Iterator i = listeners.iterator(); i.hasNext(); )
  +      {
  +         ((UserTransactionStartedListener)i.next()).userTransactionStarted();
  +      } // end of for ()
  +      
      }
   
      public void commit()
  @@ -117,11 +153,10 @@
         tm.setTransactionTimeout(seconds);
      }
   
  +   public interface UserTransactionStartedListener extends EventListener 
  +   {
  +      void userTransactionStarted() throws SystemException;
  +   }
  +                                                       
   
  -   // Private -------------------------------------------------------
  -
  -   /**
  -    *  The <code>TransactionManagerz</code> we delegate to.
  -    */
  -   private TransactionManager tm;
   }
  
  
  

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to