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