Here's a patch for the TxManager so it can be put in JNDI. The
factory just returns a new instance every time. We could make it return
the same one every time, but I'm not sure that would work correctly with
the ThreadLocal (are the ThreadLocals stateless too, so the same
ThreadLocal on a different Thread returns a different result?).
Aaron
--- /home/ammulder/jboss/old-src/jboss/src/main/org/jboss/tm/TxManager.java Thu
May 18 09:59:54 2000
+++ TxManager.java Thu May 25 23:43:34 2000
@@ -6,6 +6,7 @@
*/
package org.jboss.tm;
+import java.util.Hashtable;
import javax.transaction.Status;
import javax.transaction.TransactionManager;
import javax.transaction.Transaction;
@@ -15,6 +16,8 @@
import javax.transaction.HeuristicMixedException;
import javax.transaction.HeuristicRollbackException;
import javax.transaction.InvalidTransactionException;
+import javax.naming.*;
+import javax.naming.spi.ObjectFactory;
import org.jboss.logging.Logger;
@@ -26,7 +29,7 @@
* @version $Revision: 1.1.1.1 $
*/
public class TxManager
- implements TransactionManager // , TransactionManagerRemote
+ implements TransactionManager, Referenceable, ObjectFactory // ,
+TransactionManagerRemote
{
// Constants -----------------------------------------------------
@@ -126,6 +129,19 @@
return current;
}
+ // Referenceable implementation ----------------------------------
+ public Reference getReference() {
+ return new Reference(getClass().getName(), getClass().getName(), null);
+ }
+
+ // ObjectFactory implementation ----------------------------------
+ public Object getObjectInstance(Object obj, Name name, Context nameCtx,
+ Hashtable environment) {
+ if(name.toString().equals("TransactionManager"))
+ return new TxManager();
+ return null;
+ }
+
// Package protected ---------------------------------------------
void removeTransaction()
{