[jbosscache-commits] JBoss Cache SVN: r4526 - in core/trunk: src/main/java/org/jboss/cache/transaction and 12 other directories.

jbosscache-commits at lists.jboss.org jbosscache-commits at lists.jboss.org
Tue Oct 2 12:22:14 EDT 2007


Author: jason.greene at jboss.com
Date: 2007-10-02 12:22:14 -0400 (Tue, 02 Oct 2007)
New Revision: 4526

Added:
   core/trunk/src/main/java/org/jboss/cache/transaction/JBossStandaloneJTAManagerLookup.java
   core/trunk/src/test/java/org/jboss/cache/transaction/TransactionSetup.java
Modified:
   core/trunk/pom.xml
   core/trunk/src/main/java/org/jboss/cache/transaction/DummyTransactionManager.java
   core/trunk/src/main/java/org/jboss/cache/transaction/DummyTransactionManagerLookup.java
   core/trunk/src/test/java/org/jboss/cache/CallbackTest.java
   core/trunk/src/test/java/org/jboss/cache/LifeCycleTest.java
   core/trunk/src/test/java/org/jboss/cache/api/SyncReplTxTest.java
   core/trunk/src/test/java/org/jboss/cache/config/ConfigurationTest.java
   core/trunk/src/test/java/org/jboss/cache/factories/UnitTestCacheConfigurationFactory.java
   core/trunk/src/test/java/org/jboss/cache/loader/CacheLoaderTestsBase.java
   core/trunk/src/test/java/org/jboss/cache/loader/TxCacheLoaderTest.java
   core/trunk/src/test/java/org/jboss/cache/lock/LockReleaseTest.java
   core/trunk/src/test/java/org/jboss/cache/lock/pessimistic/LockUpgradeTest.java
   core/trunk/src/test/java/org/jboss/cache/marshall/AsyncReplTest.java
   core/trunk/src/test/java/org/jboss/cache/marshall/SyncReplTest.java
   core/trunk/src/test/java/org/jboss/cache/optimistic/AbstractOptimisticTestCase.java
   core/trunk/src/test/java/org/jboss/cache/optimistic/AsyncCacheTest.java
   core/trunk/src/test/java/org/jboss/cache/optimistic/AsyncFullStackInterceptorTest.java
   core/trunk/src/test/java/org/jboss/cache/optimistic/CacheTest.java
   core/trunk/src/test/java/org/jboss/cache/optimistic/FullStackInterceptorTest.java
   core/trunk/src/test/java/org/jboss/cache/optimistic/NodeInterceptorGetChildrenNamesTest.java
   core/trunk/src/test/java/org/jboss/cache/optimistic/NodeInterceptorGetKeyValTest.java
   core/trunk/src/test/java/org/jboss/cache/optimistic/NodeInterceptorGetKeysTest.java
   core/trunk/src/test/java/org/jboss/cache/optimistic/NodeInterceptorKeyValTest.java
   core/trunk/src/test/java/org/jboss/cache/optimistic/TxInterceptorTest.java
   core/trunk/src/test/java/org/jboss/cache/replicated/SyncReplTxTest.java
   core/trunk/src/test/java/org/jboss/cache/transaction/AbortionTest.java
   core/trunk/src/test/java/org/jboss/cache/transaction/AsyncRollbackTxTest.java
   core/trunk/src/test/java/org/jboss/cache/transaction/ConcurrentBankTest.java
   core/trunk/src/test/java/org/jboss/cache/transaction/ConcurrentTransactionalTest.java
   core/trunk/src/test/java/org/jboss/cache/transaction/DeadlockTest.java
   core/trunk/src/test/java/org/jboss/cache/transaction/InvocationContextCleanupTest.java
   core/trunk/src/test/java/org/jboss/cache/transaction/IsolationLevelNoneTest.java
   core/trunk/src/test/java/org/jboss/cache/transaction/IsolationLevelReadCommittedNodeCreationRollbackTest.java
   core/trunk/src/test/java/org/jboss/cache/transaction/IsolationLevelReadCommittedTest.java
   core/trunk/src/test/java/org/jboss/cache/transaction/IsolationLevelRepeatableReadTest.java
   core/trunk/src/test/java/org/jboss/cache/transaction/IsolationLevelSerializableTest.java
   core/trunk/src/test/java/org/jboss/cache/transaction/PrepareTxTest.java
   core/trunk/src/test/java/org/jboss/cache/transaction/ReplicatedTransactionDeadlockTest.java
   core/trunk/src/test/java/org/jboss/cache/transaction/SimultaneousRollbackAndPutTest.java
   core/trunk/src/test/java/org/jboss/cache/transaction/StatusUnknownTest.java
   core/trunk/src/test/java/org/jboss/cache/transaction/SuspendTxTest.java
   core/trunk/src/test/java/org/jboss/cache/transaction/TransactionTest.java
   core/trunk/src/test/java/org/jboss/cache/transaction/isolationlevels/IsolationLevelTestBase.java
Log:
Add JBoss JTA integration support
Make TM configurable through test abstraction


Modified: core/trunk/pom.xml
===================================================================
--- core/trunk/pom.xml	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/pom.xml	2007-10-02 16:22:14 UTC (rev 4526)
@@ -71,6 +71,12 @@
       <version>2.3</version>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.jboss.transaction</groupId>
+      <artifactId>jboss-jta</artifactId>
+      <version>4.2.3.SP5</version>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
   <build>
     <plugins>

Modified: core/trunk/src/main/java/org/jboss/cache/transaction/DummyTransactionManager.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/transaction/DummyTransactionManager.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/main/java/org/jboss/cache/transaction/DummyTransactionManager.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -1,17 +1,18 @@
 package org.jboss.cache.transaction;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import java.util.Properties;
 
 import javax.naming.Context;
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
-import java.util.Properties;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
 /**
  * Simple transaction manager implementation that maintains transaction state
  * in memory only.
- *  
+ *
  * @author bela
  * @version $Revision$
  *          Date: May 15, 2003
@@ -20,6 +21,7 @@
 public class DummyTransactionManager extends DummyBaseTransactionManager
 {
    static DummyTransactionManager instance = null;
+   static DummyUserTransaction utx = null;
 
    static Log log = LogFactory.getLog(DummyTransactionManager.class);
 
@@ -34,13 +36,14 @@
       if (instance == null)
       {
          instance = new DummyTransactionManager();
+         utx = new DummyUserTransaction(instance);
          try
          {
             Properties p = new Properties();
             p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.cache.transaction.DummyContextFactory");
             Context ctx = new InitialContext(p);
             ctx.bind("java:/TransactionManager", instance);
-            ctx.bind("UserTransaction", new DummyUserTransaction(instance));
+            ctx.bind("UserTransaction", utx);
          }
          catch (NamingException e)
          {
@@ -50,6 +53,12 @@
       return instance;
    }
 
+   public static DummyUserTransaction getUserTransaction()
+   {
+      getInstance();
+      return utx;
+   }
+
    public static void destroy()
    {
       if (instance == null)

Modified: core/trunk/src/main/java/org/jboss/cache/transaction/DummyTransactionManagerLookup.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/transaction/DummyTransactionManagerLookup.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/main/java/org/jboss/cache/transaction/DummyTransactionManagerLookup.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -2,6 +2,7 @@
 
 
 import javax.transaction.TransactionManager;
+import javax.transaction.UserTransaction;
 
 
 /**
@@ -15,4 +16,14 @@
    public TransactionManager getTransactionManager() throws Exception {
       return DummyTransactionManager.getInstance();
    }
+
+   public UserTransaction getUserTransaction()
+   {
+      return DummyTransactionManager.getUserTransaction();
+   }
+
+   public void cleanup()
+   {
+      DummyTransactionManager.destroy();
+   }
 }

Added: core/trunk/src/main/java/org/jboss/cache/transaction/JBossStandaloneJTAManagerLookup.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/transaction/JBossStandaloneJTAManagerLookup.java	                        (rev 0)
+++ core/trunk/src/main/java/org/jboss/cache/transaction/JBossStandaloneJTAManagerLookup.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -0,0 +1,61 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.cache.transaction;
+
+
+import java.lang.reflect.Method;
+
+import javax.transaction.TransactionManager;
+import javax.transaction.UserTransaction;
+
+/**
+ * JTA standalone TM lookup.
+ *
+ * @author Jason T. Greene
+ */
+public class JBossStandaloneJTAManagerLookup implements TransactionManagerLookup
+{
+   private Method manager, user;
+
+   public JBossStandaloneJTAManagerLookup()
+   {
+      try
+      {
+         manager = Class.forName("com.arjuna.ats.jta.TransactionManager").getMethod("transactionManager");
+         user = Class.forName("com.arjuna.ats.jta.UserTransaction").getMethod("userTransaction");
+      }
+      catch (Exception e)
+      {
+         throw new RuntimeException(e);
+      }
+   }
+
+   public TransactionManager getTransactionManager() throws Exception
+   {
+      return (TransactionManager) manager.invoke(null);
+   }
+
+   public UserTransaction getUserTransaction() throws Exception
+   {
+      return (UserTransaction) user.invoke(null);
+   }
+}
\ No newline at end of file

Modified: core/trunk/src/test/java/org/jboss/cache/CallbackTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/CallbackTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/CallbackTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -8,13 +8,13 @@
 
 import javax.transaction.NotSupportedException;
 import javax.transaction.Transaction;
+import javax.transaction.TransactionManager;
 
 import org.jboss.cache.config.Configuration;
 import org.jboss.cache.lock.IsolationLevel;
 import org.jboss.cache.notifications.annotation.CacheListener;
 import org.jboss.cache.notifications.annotation.NodeCreated;
 import org.jboss.cache.notifications.event.Event;
-import org.jboss.cache.transaction.DummyTransactionManager;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.Test;
 /**
@@ -27,8 +27,8 @@
 {
    CacheImpl<Object, Object> cache = null, cache2;
    Transaction tx = null;
-   final Fqn FQN_A = Fqn.fromString("/a");
-   final Fqn FQN_B = Fqn.fromString("/b");
+   final Fqn<String> FQN_A = Fqn.fromString("/a");
+   final Fqn<String> FQN_B = Fqn.fromString("/b");
    static final String KEY = "key";
    static final String VALUE = "value";
 
@@ -132,7 +132,7 @@
 
    private Transaction startTransaction()
    {
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       try
       {
          mgr.begin();
@@ -159,9 +159,9 @@
    public class GetListener
    {
       CacheImpl<Object, Object> c;
-      Fqn my_fqn;
+      Fqn<?> my_fqn;
 
-      public GetListener(CacheImpl<Object, Object> c, Fqn my_fqn)
+      public GetListener(CacheImpl<Object, Object> c, Fqn<?> my_fqn)
       {
          this.c = c;
          this.my_fqn = my_fqn;
@@ -174,7 +174,7 @@
          {
             try
             {
-               Node n = c.get(this.my_fqn);
+               Node<?,?> n = c.get(this.my_fqn);
                assertNotNull(n);
             }
             catch (CacheException ex)

Modified: core/trunk/src/test/java/org/jboss/cache/LifeCycleTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/LifeCycleTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/LifeCycleTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -4,26 +4,26 @@
 import static org.testng.AssertJUnit.assertTrue;
 import static org.testng.AssertJUnit.fail;
 
+import java.util.LinkedList;
+import java.util.List;
+
 import javax.transaction.NotSupportedException;
 import javax.transaction.RollbackException;
 import javax.transaction.SystemException;
 import javax.transaction.Transaction;
+import javax.transaction.TransactionManager;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.jboss.cache.config.Configuration;
+import org.jboss.cache.misc.TestingUtil;
 import org.jboss.cache.notifications.annotation.CacheListener;
 import org.jboss.cache.notifications.annotation.CacheStarted;
 import org.jboss.cache.notifications.annotation.CacheStopped;
 import org.jboss.cache.notifications.event.Event;
-import org.jboss.cache.transaction.DummyTransactionManager;
-import org.jboss.cache.misc.TestingUtil;
+import org.testng.annotations.AfterMethod;
 import org.testng.annotations.Test;
-import org.testng.annotations.AfterMethod;
 
-import java.util.List;
-import java.util.LinkedList;
-
 /**
  * Tests restart (stop-destroy-create-start) of CacheImpl
  *
@@ -442,7 +442,7 @@
 
    private Transaction beginTransaction() throws SystemException, NotSupportedException
    {
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = c[0].getConfiguration().getRuntimeConfig().getTransactionManager();
       mgr.begin();
       return mgr.getTransaction();
    }

Modified: core/trunk/src/test/java/org/jboss/cache/api/SyncReplTxTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/api/SyncReplTxTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/api/SyncReplTxTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -18,8 +18,10 @@
 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 org.jboss.cache.Cache;
 import org.jboss.cache.CacheSPI;
@@ -31,7 +33,6 @@
 import org.jboss.cache.config.Configuration.CacheMode;
 import org.jboss.cache.factories.UnitTestCacheConfigurationFactory;
 import org.jboss.cache.misc.TestingUtil;
-import org.jboss.cache.transaction.DummyTransactionManager;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
@@ -73,7 +74,8 @@
                   {
                      try
                      {
-                        t.rollback();
+                        if (t.getStatus() == Status.STATUS_ACTIVE)
+                           t.rollback();
                      }
                      catch (SystemException e)
                      {
@@ -93,9 +95,9 @@
       System.out.println("*** Finished tearDown()");
    }
 
-   private Transaction beginTransaction() throws SystemException, NotSupportedException
+   private Transaction beginTransaction(Cache<Object, Object> cache) throws NotSupportedException, SystemException
    {
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       mgr.begin();
       return mgr.getTransaction();
    }
@@ -105,7 +107,7 @@
       assertClusterSize("Should only be 2  caches in the cluster!!!", 2);
       assertInvocationContextInitState();
 
-      Fqn f = Fqn.fromString("/test/data");
+      Fqn<String> f = Fqn.fromString("/test/data");
       String k = "key", v = "value";
 
       assertNull("Should be null", caches.get(0).getRoot().getChild(f));
@@ -115,7 +117,7 @@
 
       assertNotNull("Should not be null", node);
 
-      Transaction tx = beginTransaction();
+      Transaction tx = beginTransaction(caches.get(0));
       node.put(k, v);
       Transaction tx1 = caches.get(0).getInvocationContext().getTransaction();
       assertNotNull("Transaction can't be null ", tx1);
@@ -128,26 +130,26 @@
 
    private void assertClusterSize(String message, int size)
    {
-      for (Cache c : caches)
+      for (Cache<Object, Object> c : caches)
       {
          assertClusterSize(message, size, c);
       }
    }
 
-   private void assertClusterSize(String message, int size, Cache c)
+   private void assertClusterSize(String message, int size, Cache<Object, Object> c)
    {
       assertEquals(message, size, c.getMembers().size());
    }
 
    private void assertInvocationContextInitState()
    {
-      for (Cache c : caches)
+      for (Cache<Object, Object> c : caches)
       {
          assertInvocationContextInitState(c);
       }
    }
 
-   private void assertInvocationContextInitState(Cache c)
+   private void assertInvocationContextInitState(Cache<Object, Object> c)
    {
       InvocationContext ctx = c.getInvocationContext();
       InvocationContext control = null;

Modified: core/trunk/src/test/java/org/jboss/cache/config/ConfigurationTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/config/ConfigurationTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/config/ConfigurationTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -14,12 +14,12 @@
 import org.jboss.cache.factories.UnitTestCacheConfigurationFactory;
 import org.jboss.cache.factories.XmlConfigurationParser;
 import org.jboss.cache.lock.IsolationLevel;
-import org.jboss.cache.transaction.GenericTransactionManagerLookup;
+import org.jboss.cache.transaction.TransactionSetup;
 import org.testng.annotations.Test;
 /**
  * @author <a href="mailto:manik at jboss.org">Manik Surtani (manik at jboss.org)</a>
  */
- at Test(groups = {"functional", "jgroups"})
+ at Test(groups = {"functional", "jgroups", "transaction"})
 public class ConfigurationTest
 {
    public void testReplSyncStack() throws Exception
@@ -28,7 +28,7 @@
 
       //now test that everything has been read in properly.
       assertEquals(Configuration.CacheMode.REPL_SYNC, conf.getCacheMode());
-      assertEquals(GenericTransactionManagerLookup.class.getName(), conf.getTransactionManagerLookupClass());
+      assertEquals(TransactionSetup.getManagerLookup(), conf.getTransactionManagerLookupClass());
       assertEquals(IsolationLevel.REPEATABLE_READ, conf.getIsolationLevel());
       assertEquals(false, conf.isUseReplQueue());
       assertEquals(0, conf.getReplQueueInterval());

Modified: core/trunk/src/test/java/org/jboss/cache/factories/UnitTestCacheConfigurationFactory.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/factories/UnitTestCacheConfigurationFactory.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/factories/UnitTestCacheConfigurationFactory.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -12,6 +12,7 @@
 import org.jboss.cache.config.Configuration;
 import org.jboss.cache.config.ConfigurationException;
 import org.jboss.cache.config.Configuration.CacheMode;
+import org.jboss.cache.transaction.TransactionSetup;
 import org.jboss.cache.xml.XmlHelper;
 import org.w3c.dom.Element;
 import org.w3c.dom.NodeList;
@@ -55,6 +56,8 @@
          c.setCacheLoaderConfig(null);
       }
 
+      c.setTransactionManagerLookupClass(TransactionSetup.getManagerLookup());
+
       return c;
    }
 

Modified: core/trunk/src/test/java/org/jboss/cache/loader/CacheLoaderTestsBase.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/loader/CacheLoaderTestsBase.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/loader/CacheLoaderTestsBase.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -34,7 +34,7 @@
 import org.jboss.cache.buddyreplication.BuddyManager;
 import org.jboss.cache.config.Configuration;
 import org.jboss.cache.statetransfer.StateTransferManager;
-import org.jboss.cache.transaction.DummyTransactionManager;
+import org.jboss.cache.transaction.TransactionSetup;
 import org.jboss.util.stream.MarshalledValueInputStream;
 import org.jboss.util.stream.MarshalledValueOutputStream;
 import org.testng.annotations.AfterMethod;
@@ -71,7 +71,7 @@
       Configuration c = new Configuration();
       cache.setConfiguration(c);
       c.setCacheMode(Configuration.CacheMode.LOCAL);
-      c.setTransactionManagerLookupClass("org.jboss.cache.transaction.DummyTransactionManagerLookup");
+      c.setTransactionManagerLookupClass(TransactionSetup.getManagerLookup());
       configureCache();
       cache.start();
       loader = cache.getCacheLoaderManager().getCacheLoader();
@@ -794,7 +794,7 @@
       assertEquals("v", loader.get(f).get("k"));
       assertNull(loader.getChildrenNames(f));
    }
-   
+
    public void testGetKeys() throws Exception
    {
       Fqn f = Fqn.fromString("/a");
@@ -806,7 +806,7 @@
       assertTrue("Has key 'one", keys.contains("one"));
       assertTrue("Has key 'two", keys.contains("two"));
    }
-   
+
    public void testGetData() throws Exception
    {
       Fqn f = Fqn.fromString("/a");
@@ -817,7 +817,7 @@
       assertEquals("Correct # of entries", 2, data.size());
       assertEquals("Has key 'one", "one", data.get("one"));
       assertEquals("Has key 'two", "two", data.get("two"));
-      
+
    }
 
 
@@ -2117,7 +2117,7 @@
 
       // test that the cache loader is wrapped by a read-only delegate
       assert loader instanceof ReadOnlyDelegatingCacheLoader;
-            
+
       // old state should be persisted.
       assert "v".equals(cache.get(fqn, "k"));
       assert "v".equals(loader.get(fqn).get("k"));
@@ -2298,6 +2298,6 @@
 
    protected TransactionManager getTransactionManager()
    {
-      return DummyTransactionManager.getInstance();
+      return cache.getConfiguration().getRuntimeConfig().getTransactionManager();
    }
 }

Modified: core/trunk/src/test/java/org/jboss/cache/loader/TxCacheLoaderTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/loader/TxCacheLoaderTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/loader/TxCacheLoaderTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -14,23 +14,26 @@
 import javax.transaction.RollbackException;
 import javax.transaction.SystemException;
 import javax.transaction.Transaction;
+import javax.transaction.TransactionManager;
 
 import org.jboss.cache.CacheImpl;
 import org.jboss.cache.DefaultCacheFactory;
 import org.jboss.cache.Fqn;
 import org.jboss.cache.misc.TestingUtil;
-import org.jboss.cache.transaction.DummyTransactionManager;
+import org.jboss.cache.transaction.TransactionSetup;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
 
 /**
  * @author Bela Ban
  * @version $Id$
  */
+ at Test(groups = {"functional", "transaction"})
 public class TxCacheLoaderTest extends AbstractCacheLoaderTestBase
 {
    CacheImpl<Object, Object> cache1, cache2;
-   private Fqn fqn = Fqn.fromString("/one/two/three");
+   private Fqn<String> fqn = Fqn.fromString("/one/two/three");
 
    @BeforeMethod(alwaysRun = true)
    public void setUp() throws Exception
@@ -41,7 +44,7 @@
 
       cache1 = (CacheImpl<Object, Object>) DefaultCacheFactory.getInstance().createCache(false);
       cache1.getConfiguration().setCacheMode("repl_sync");
-      cache1.getConfiguration().setTransactionManagerLookupClass("org.jboss.cache.transaction.DummyTransactionManagerLookup");
+      cache1.getConfiguration().setTransactionManagerLookupClass(TransactionSetup.getManagerLookup());
 
       cache1.getConfiguration().setCacheLoaderConfig(getSingleCacheLoaderConfig("", "org.jboss.cache.loader.FileCacheLoader", "location=" + location, false, false, false));
       // cache1.setReplQueueInterval(3000);
@@ -52,7 +55,7 @@
 
       cache2 = (CacheImpl<Object, Object>) DefaultCacheFactory.getInstance().createCache(false);
       cache2.getConfiguration().setCacheMode("repl_sync");
-      cache2.getConfiguration().setTransactionManagerLookupClass("org.jboss.cache.transaction.DummyTransactionManagerLookup");
+      cache2.getConfiguration().setTransactionManagerLookupClass(TransactionSetup.getManagerLookup());
       cache2.getConfiguration().setCacheLoaderConfig(getSingleCacheLoaderConfig("", "org.jboss.cache.loader.FileCacheLoader", "location=" + location, false, false, false));
       cache2.getConfiguration().setLockAcquisitionTimeout(2000);
       // cache2.setReplQueueInterval(3000);
@@ -75,7 +78,7 @@
 
    public void testTxPutCommit() throws Exception, NotSupportedException
    {
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache1.getConfiguration().getRuntimeConfig().getTransactionManager();
       mgr.begin();
       Transaction tx = mgr.getTransaction();
 
@@ -86,7 +89,7 @@
       assertNull(cache2.get("/one/two/three/four", "key2"));
       tx.commit();
       assertNotNull(cache1.getKeys(fqn));
-      Set children = cache1.getChildrenNames("/one");
+      Set<?> children = cache1.getChildrenNames("/one");
       assertEquals(1, children.size());
       TestingUtil.sleepThread(2000);
       assertEquals("val1", cache2.get(fqn, "key1"));
@@ -96,7 +99,7 @@
 
    public void testTxPrepareAndRollback() throws Exception, NotSupportedException
    {
-      final DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      final TransactionManager mgr = cache1.getConfiguration().getRuntimeConfig().getTransactionManager();
       mgr.begin();
       Transaction tx1 = mgr.getTransaction();
 
@@ -163,7 +166,7 @@
 
    public void testPutAfterTxCommit() throws Exception, NotSupportedException
    {
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache1.getConfiguration().getRuntimeConfig().getTransactionManager();
       mgr.begin();
       Transaction tx = mgr.getTransaction();
 
@@ -177,7 +180,7 @@
 
    public void testPutAfterTxRollback() throws Exception, NotSupportedException
    {
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache1.getConfiguration().getRuntimeConfig().getTransactionManager();
       mgr.begin();
       Transaction tx = mgr.getTransaction();
 

Modified: core/trunk/src/test/java/org/jboss/cache/lock/LockReleaseTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/lock/LockReleaseTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/lock/LockReleaseTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -10,18 +10,15 @@
 
 import static org.testng.AssertJUnit.assertEquals;
 
-import java.util.Properties;
 import java.util.Set;
 
-import javax.naming.Context;
-import javax.naming.InitialContext;
 import javax.transaction.UserTransaction;
 
 import org.apache.commons.logging.Log;
 import org.jboss.cache.CacheImpl;
 import org.jboss.cache.DefaultCacheFactory;
 import org.jboss.cache.Fqn;
-import org.jboss.cache.transaction.DummyTransactionManager;
+import org.jboss.cache.transaction.TransactionSetup;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
@@ -38,9 +35,6 @@
    CacheImpl<Object, Object> cache = null;
    UserTransaction tx = null;
    Log log;
-   Properties p = null;
-   String old_factory = null;
-   final String FACTORY = "org.jboss.cache.transaction.DummyContextFactory";
    final Fqn<String> NODE1 = Fqn.fromString("/test");
    final Fqn<String> NODE2 = Fqn.fromString("/my/test");
    final String KEY = "key";
@@ -50,15 +44,7 @@
    @BeforeMethod(alwaysRun = true)
    public void setUp() throws Exception
    {
-      old_factory = System.getProperty(Context.INITIAL_CONTEXT_FACTORY);
-      System.setProperty(Context.INITIAL_CONTEXT_FACTORY, FACTORY);
-      DummyTransactionManager.getInstance();
-      if (p == null)
-      {
-         p = new Properties();
-         p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.cache.transaction.DummyContextFactory");
-      }
-      tx = (UserTransaction) new InitialContext(p).lookup("UserTransaction");
+      tx = TransactionSetup.getUserTransaction();
    }
 
    @AfterMethod(alwaysRun = true)
@@ -70,12 +56,7 @@
       }
 
       // BW. kind of a hack to destroy jndi binding and thread local tx before next run.
-      DummyTransactionManager.destroy();
-      if (old_factory != null)
-      {
-         System.setProperty(Context.INITIAL_CONTEXT_FACTORY, old_factory);
-         old_factory = null;
-      }
+      TransactionSetup.cleanup();
 
       if (tx != null)
       {
@@ -156,7 +137,7 @@
       cache.put(NODE2, KEY, VAL1);
       assertEquals("we ran outside of a TX, locks should have been released: ", 0, cache.getNumberOfLocksHeld());
 
-      Set keys = cache.getKeys(NODE1);
+      Set<Object> keys = cache.getKeys(NODE1);
       System.out.println("keys of " + NODE1 + " are " + keys);
       assertEquals("getKeys() called outside the TX should have released all locks", 0, cache.getNumberOfLocksHeld());
 
@@ -178,7 +159,7 @@
       cache.put(NODE2, KEY, VAL1);
       assertEquals("we ran outside of a TX, locks should have been released: ", 0, cache.getNumberOfLocksHeld());
 
-      Set keys = cache.getChildrenNames(NODE2);
+      Set<String> keys = cache.getChildrenNames(NODE2);
       System.out.println("keys of " + NODE2 + " are " + keys);
       assertEquals("getChildrenNames() called outside the TX should have released all locks", 0,
                    cache.getNumberOfLocksHeld());

Modified: core/trunk/src/test/java/org/jboss/cache/lock/pessimistic/LockUpgradeTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/lock/pessimistic/LockUpgradeTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/lock/pessimistic/LockUpgradeTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -26,68 +26,68 @@
 @Test(groups = {"functional"})
 public class LockUpgradeTest{
 
-	private TransactionManager tm;
+   private TransactionManager tm;
 
-	private CacheImpl cache;
+   private CacheImpl cache;
 
    @BeforeMethod(alwaysRun = true)
    protected void setUp() throws Exception {
-		Configuration c = new Configuration();
-		c.setTransactionManagerLookupClass(DummyTransactionManagerLookup.class.getName());
+      Configuration c = new Configuration();
+      c.setTransactionManagerLookupClass(DummyTransactionManagerLookup.class.getName());
       cache = (CacheImpl) DefaultCacheFactory.getInstance().createCache(c);
-		tm = DummyTransactionManager.getInstance();
-	}
+      tm = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
+   }
 
    @AfterMethod(alwaysRun = true)
    protected void tearDown() throws Exception {
-		cache.stop();
-		cache.destroy();
-	}
+      cache.stop();
+      cache.destroy();
+   }
 
-	public void testLock() throws Exception {
-		List<WorkThread> threads = new ArrayList<WorkThread>();
-		for (int x = 0; x < 2; x++) {
-			WorkThread t = new WorkThread(x == 1);
-			threads.add(t);
-			t.start();
-		}
-		for (WorkThread separateThread : threads) {
-			separateThread.join();
-			if (separateThread.getException() != null) {
-				throw separateThread.getException();
-			}
-		}
-	}
+   public void testLock() throws Exception {
+      List<WorkThread> threads = new ArrayList<WorkThread>();
+      for (int x = 0; x < 2; x++) {
+         WorkThread t = new WorkThread(x == 1);
+         threads.add(t);
+         t.start();
+      }
+      for (WorkThread separateThread : threads) {
+         separateThread.join();
+         if (separateThread.getException() != null) {
+            throw separateThread.getException();
+         }
+      }
+   }
 
-	private class WorkThread extends Thread {
-		Exception e = null;
+   private class WorkThread extends Thread {
+      Exception e = null;
 
-		private boolean remove;
+      private boolean remove;
 
-		public WorkThread(boolean remove) {
-			this.remove = remove;
-		}
+      public WorkThread(boolean remove) {
+         this.remove = remove;
+      }
 
-		public Exception getException() {
-			return e;
-		}
+      public Exception getException() {
+         return e;
+      }
 
-		public void run() {
-			try {
-				for (int x = 0; x < 1000; x++) {
-					tm.begin();
-					if (remove) {
-						cache.remove("/a/b/c/d");
-						cache.remove("/a");
-					} else {
-						cache.put("/a/b/c/d", "key","text" + x);
-					}
-					tm.commit();
-					Thread.sleep(1);
-				}
-			} catch (Exception e) {
-				this.e = e;
-			}
-		}
-	}
+      public void run() {
+         try {
+            for (int x = 0; x < 1000; x++) {
+               tm.begin();
+               if (remove) {
+                  cache.remove("/a/b/c/d");
+                  cache.remove("/a");
+               } else {
+                  cache.put("/a/b/c/d", "key","text" + x);
+               }
+               tm.commit();
+               Thread.sleep(1);
+            }
+         } catch (Exception e) {
+            this.e = e;
+         }
+      }
+   }
 }

Modified: core/trunk/src/test/java/org/jboss/cache/marshall/AsyncReplTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/marshall/AsyncReplTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/marshall/AsyncReplTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -18,6 +18,7 @@
 import javax.transaction.NotSupportedException;
 import javax.transaction.SystemException;
 import javax.transaction.Transaction;
+import javax.transaction.TransactionManager;
 
 import org.jboss.cache.CacheSPI;
 import org.jboss.cache.DefaultCacheFactory;
@@ -28,7 +29,7 @@
 import org.jboss.cache.marshall.data.Address;
 import org.jboss.cache.marshall.data.Person;
 import org.jboss.cache.misc.TestingUtil;
-import org.jboss.cache.transaction.DummyTransactionManager;
+import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 /**
@@ -37,7 +38,7 @@
  * @author Ben Wang
  * @version $Revision$
  */
- at Test(groups = {"functional", "jgroups"})
+ at Test(groups = {"functional", "jgroups", "transaction"})
 public class AsyncReplTest extends RegionBasedMarshallingTestBase
 {
    CacheSPI<Object, Object> cache1, cache2;
@@ -45,7 +46,7 @@
    Person ben_;
    Address addr_;
    Throwable ex_;
-   private Fqn aop = Fqn.fromString("/aop");
+   private Fqn<String> aop = Fqn.fromString("/aop");
 
    @BeforeMethod(alwaysRun = true)
    public void setUp() throws Exception
@@ -78,7 +79,7 @@
       return cache;
    }
 
-   @BeforeMethod(alwaysRun = true)
+   @AfterMethod(alwaysRun = true)
    public void tearDown() throws Exception
    {
       cache1.removeNode(Fqn.ROOT);
@@ -130,13 +131,13 @@
       assertNotNull(ben2);
       assertEquals(ben_.toString(), ben2.toString());
 
-      Class claz = clb.loadClass(ADDRESS_CLASSNAME);
+      Class<?> claz = clb.loadClass(ADDRESS_CLASSNAME);
       Object add = claz.newInstance();
-      Class[] types = {String.class};
+      Class<?>[] types = {String.class};
       Method setValue = claz.getMethod("setCity", types);
       Object[] margs = {"Sunnyvale"};
       setValue.invoke(add, margs);
-      Class clasz1 = clb.loadClass(PERSON_CLASSNAME);
+      Class<?> clasz1 = clb.loadClass(PERSON_CLASSNAME);
       types = new Class[]{claz};
       setValue = clasz1.getMethod("setAddress", types);
       margs = new Object[]{add};
@@ -210,13 +211,13 @@
       ben2 = cache2.get(aop, "person");
       assertEquals(ben_.toString(), ben2.toString());
 
-      Class claz = clb.loadClass(ADDRESS_CLASSNAME);
+      Class<?> claz = clb.loadClass(ADDRESS_CLASSNAME);
       Object add = claz.newInstance();
-      Class[] types = {String.class};
+      Class<?>[] types = {String.class};
       Method setValue = claz.getMethod("setCity", types);
       Object[] margs = {"Sunnyvale"};
       setValue.invoke(add, margs);
-      Class clasz1 = clb.loadClass(PERSON_CLASSNAME);
+      Class<?> clasz1 = clb.loadClass(PERSON_CLASSNAME);
       types = new Class[]{claz};
       setValue = clasz1.getMethod("setAddress", types);
       margs = new Object[]{add};
@@ -240,30 +241,32 @@
       Region r2 = cache2.getRegion(aop, false) == null ? cache2.getRegion(aop, true) : cache2.getRegion(aop, false);
       r2.registerContextClassLoader(cl2);
 
-      Class clazz = cl1.loadFoo();
+      Class<?> clazz = cl1.loadFoo();
       Object custom1 = clazz.newInstance();
 
       clazz = cl2.loadFoo();
       Object custom2 = clazz.newInstance();
 
-      Fqn<Object> base = new Fqn<Object>("/aop");
-      cache1.put(new Fqn<Object>(base, custom1), "key", "value");
+      Fqn<Object> base = new Fqn<Object>("aop");
+      Fqn<Object> fqn = new Fqn<Object>(base, custom1);
+      cache1.put(fqn, "key", "value");
       TestingUtil.sleepThread(1000);
 
-      Object val = cache2.get(new Fqn<Object>(base, custom2), "key");
+      Fqn<Object> fqn2 = new Fqn<Object>(base, custom2);
+      Object val = cache2.get(fqn2, "key");
       assertEquals("value", val);
    }
 
    private Transaction beginTransaction() throws SystemException, NotSupportedException
    {
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache1.getConfiguration().getRuntimeConfig().getTransactionManager();
       mgr.begin();
       return mgr.getTransaction();
    }
 
    protected Object getPersonFromClassloader(ClassLoader cl) throws Exception
    {
-      Class clazz = cl.loadClass(PERSON_CLASSNAME);
+      Class<?> clazz = cl.loadClass(PERSON_CLASSNAME);
       return clazz.newInstance();
    }
 

Modified: core/trunk/src/test/java/org/jboss/cache/marshall/SyncReplTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/marshall/SyncReplTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/marshall/SyncReplTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -394,11 +394,11 @@
       clazz = cl2.loadFoo();
       Object custom2 = clazz.newInstance();
 
-      cache1.put(new Fqn<Object>(aop, custom1), "key", "value");
+      cache1.put(new Fqn<Object>("aop", custom1), "key", "value");
 
       try
       {
-         Object val = cache2.get(new Fqn<Object>(aop, custom2), "key");
+         Object val = cache2.get(new Fqn<Object>("aop", custom2), "key");
          assertEquals("value", val);
       }
       catch (Exception ex)

Modified: core/trunk/src/test/java/org/jboss/cache/optimistic/AbstractOptimisticTestCase.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/optimistic/AbstractOptimisticTestCase.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/optimistic/AbstractOptimisticTestCase.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -35,7 +35,7 @@
 import org.jboss.cache.marshall.MethodCallFactory;
 import org.jboss.cache.marshall.MethodDeclarations;
 import org.jboss.cache.misc.TestingUtil;
-import org.jboss.cache.transaction.DummyTransactionManager;
+import org.jboss.cache.transaction.TransactionSetup;
 import org.jboss.cache.xml.XmlHelper;
 import org.jgroups.Address;
 import org.testng.annotations.AfterMethod;
@@ -49,7 +49,7 @@
 public abstract class AbstractOptimisticTestCase
 {
    // some test data shared among all the test cases
-   protected Fqn fqn = Fqn.fromString("/blah");
+   protected Fqn<String> fqn = Fqn.fromString("/blah");
    protected String key = "myKey", value = "myValue";
 
    protected CacheImpl<Object, Object> createCacheUnstarted() throws Exception
@@ -133,16 +133,16 @@
       return cache;
    }
 
-   protected void destroyCache(Cache c)
+   protected void destroyCache(Cache<Object, Object> c)
    {
       c.stop();
       c.destroy();
    }
 
 
-   protected CacheImpl createPessimisticCache() throws Exception
+   protected CacheImpl<Object, Object> createPessimisticCache() throws Exception
    {
-      CacheImpl cache = (CacheImpl) DefaultCacheFactory.getInstance().createCache(false);
+      CacheImpl<Object, Object> cache = (CacheImpl<Object, Object>) DefaultCacheFactory.getInstance().createCache(false);
       Configuration c = new Configuration();
       cache.setConfiguration(c);
 
@@ -159,9 +159,9 @@
       return cache;
    }
 
-   protected CacheImpl createPessimisticCacheLocal() throws Exception
+   protected CacheImpl<Object, Object> createPessimisticCacheLocal() throws Exception
    {
-      CacheImpl cache = (CacheImpl) DefaultCacheFactory.getInstance().createCache(false);
+      CacheImpl<Object, Object> cache = (CacheImpl<Object, Object>) DefaultCacheFactory.getInstance().createCache(false);
       Configuration c = new Configuration();
       cache.setConfiguration(c);
 
@@ -218,7 +218,7 @@
          c.setSyncRollbackPhase(true);
       }
       c.setNodeLockingScheme("OPTIMISTIC");
-      c.setTransactionManagerLookupClass("org.jboss.cache.transaction.DummyTransactionManagerLookup");
+      c.setTransactionManagerLookupClass(TransactionSetup.getManagerLookup());
       cache.create();
       cache.start();
 
@@ -270,9 +270,10 @@
       TestingUtil.sleepThread(l);
    }
 
-   @AfterMethod(alwaysRun = true) public void tearDown()
+   @AfterMethod(alwaysRun = true)
+   public void tearDown()
    {
-      TransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = TransactionSetup.getManager();
       try
       {
          if (mgr.getTransaction() != null)
@@ -286,7 +287,7 @@
       }
    }
 
-   protected Interceptor getAlteredInterceptorChain(Interceptor newLast, CacheSPI spi, boolean replicated)
+   protected Interceptor getAlteredInterceptorChain(Interceptor newLast, CacheSPI<Object, Object> spi, boolean replicated)
    {
       Interceptor ici = new InvocationContextInterceptor();
       ici.setCache(spi);
@@ -334,7 +335,7 @@
       }
    }
 
-   protected List injectDataVersion(List<MethodCall> modifications)
+   protected List<MethodCall> injectDataVersion(List<MethodCall> modifications)
    {
       List<MethodCall> newList = new LinkedList<MethodCall>();
       for (MethodCall c : modifications)

Modified: core/trunk/src/test/java/org/jboss/cache/optimistic/AsyncCacheTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/optimistic/AsyncCacheTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/optimistic/AsyncCacheTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -9,16 +9,19 @@
 import static org.testng.AssertJUnit.assertTrue;
 
 import javax.transaction.Transaction;
+import javax.transaction.TransactionManager;
 
 import org.jboss.cache.CacheImpl;
 import org.jboss.cache.Fqn;
 import org.jboss.cache.config.Configuration;
 import org.jboss.cache.loader.SamplePojo;
 import org.jboss.cache.misc.TestingUtil;
-import org.jboss.cache.transaction.DummyTransactionManager;
+import org.jboss.cache.transaction.TransactionSetup;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
 
+ at Test(groups = {"functional", "transaction"})
 public class AsyncCacheTest extends AbstractOptimisticTestCase
 {
    private CacheImpl<Object, Object> cache, cache2;
@@ -40,13 +43,21 @@
       cache2 = null;
    }
 
+   @Override
+   protected CacheImpl<Object, Object> createCacheUnstarted(boolean optimistic) throws Exception
+   {
+      CacheImpl<Object, Object> cache = super.createCacheUnstarted(optimistic);
+      cache.getConfiguration().setTransactionManagerLookupClass(TransactionSetup.getManagerLookup());
+      return cache;
+   }
+
    public void testRemoteCacheBroadcast() throws Exception
    {
 
       assertEquals(2, cache.getMembers().size());
       assertEquals(2, cache2.getMembers().size());
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
 
       //start local transaction
       mgr.begin();
@@ -87,7 +98,7 @@
       assertEquals(2, cache.getMembers().size());
       assertEquals(2, cache2.getMembers().size());
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
 
       //start local transaction
       mgr.begin();

Modified: core/trunk/src/test/java/org/jboss/cache/optimistic/AsyncFullStackInterceptorTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/optimistic/AsyncFullStackInterceptorTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/optimistic/AsyncFullStackInterceptorTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -1,10 +1,12 @@
 package org.jboss.cache.optimistic;
+
 import static org.testng.AssertJUnit.assertEquals;
 import static org.testng.AssertJUnit.assertNotNull;
 import static org.testng.AssertJUnit.assertNull;
 import static org.testng.AssertJUnit.assertTrue;
 
 import javax.transaction.Transaction;
+import javax.transaction.TransactionManager;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -14,7 +16,6 @@
 import org.jboss.cache.config.Configuration;
 import org.jboss.cache.loader.SamplePojo;
 import org.jboss.cache.misc.TestingUtil;
-import org.jboss.cache.transaction.DummyTransactionManager;
 import org.jboss.cache.transaction.GlobalTransaction;
 import org.jboss.cache.transaction.OptimisticTransactionEntry;
 import org.jboss.cache.transaction.TransactionTable;
@@ -32,13 +33,12 @@
     */
    private int groupIncreaser = 0;
 
-
    public void testSingleInstanceRollback() throws Exception
    {
       groupIncreaser++;
       CacheImpl<Object, Object> cache = createAsyncReplicatedCache();
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       assertNull(mgr.getTransaction());
 
       mgr.begin();
@@ -68,7 +68,7 @@
       groupIncreaser++;
       CacheImpl<Object, Object> cache = createAsyncReplicatedCache();
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       assertNull(mgr.getTransaction());
 
       mgr.begin();
@@ -101,11 +101,9 @@
 
       assertTrue(cache.exists(Fqn.fromString("/one/two")));
       assertNotNull(cache.get(Fqn.fromString("/")).getChild("one"));
-      assertEquals(false, ((NodeSPI<Object, Object>) cache.get(Fqn.fromString("/"))).getLock()
-              .isLocked());
-      assertEquals(false, ((NodeSPI<Object, Object>) cache.get(Fqn.fromString("/one"))).getLock()
-              .isLocked());
-      assertEquals(false, ((NodeSPI<Object, Object>) cache.get(Fqn.fromString("/one/two"))).getLock().isLocked());
+      assertEquals(false, ((NodeSPI<Object, Object>)cache.get(Fqn.fromString("/"))).getLock().isLocked());
+      assertEquals(false, ((NodeSPI<Object, Object>)cache.get(Fqn.fromString("/one"))).getLock().isLocked());
+      assertEquals(false, ((NodeSPI<Object, Object>)cache.get(Fqn.fromString("/one/two"))).getLock().isLocked());
       assertNotNull(cache.get(Fqn.fromString("/one")).getChild("two"));
       assertNotNull(cache.get(Fqn.fromString("/one/two"), "key1"));
 
@@ -118,7 +116,7 @@
       groupIncreaser++;
       CacheImpl<Object, Object> cache = createAsyncReplicatedCache();
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       assertNull(mgr.getTransaction());
 
       mgr.begin();
@@ -168,11 +166,9 @@
 
       assertTrue(cache.exists(Fqn.fromString("/one/two")));
       assertNotNull(cache.get(Fqn.fromString("/")).getChild("one"));
-      assertEquals(false, ((NodeSPI<Object, Object>) cache.get(Fqn.fromString("/"))).getLock()
-              .isLocked());
-      assertEquals(false, ((NodeSPI<Object, Object>) cache.get(Fqn.fromString("/one"))).getLock()
-              .isLocked());
-      assertEquals(false, ((NodeSPI<Object, Object>) cache.get(Fqn.fromString("/one/two"))).getLock().isLocked());
+      assertEquals(false, ((NodeSPI<Object, Object>)cache.get(Fqn.fromString("/"))).getLock().isLocked());
+      assertEquals(false, ((NodeSPI<Object, Object>)cache.get(Fqn.fromString("/one"))).getLock().isLocked());
+      assertEquals(false, ((NodeSPI<Object, Object>)cache.get(Fqn.fromString("/one/two"))).getLock().isLocked());
       assertNotNull(cache.get(Fqn.fromString("/one")).getChild("two"));
       assertEquals(pojo2, cache.get(Fqn.fromString("/one/two"), "key1"));
 
@@ -186,7 +182,7 @@
       CacheImpl<Object, Object> cache = createAsyncReplicatedCache();
       CacheImpl<Object, Object> cache2 = createAsyncReplicatedCache();
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       assertNull(mgr.getTransaction());
 
       mgr.begin();
@@ -211,16 +207,14 @@
 
       assertTrue(cache.exists(Fqn.fromString("/one/two")));
       assertNotNull(cache.get(Fqn.fromString("/")).getChild("one"));
-      assertEquals(false, ((NodeSPI<Object, Object>) cache.get(Fqn.fromString("/"))).getLock()
-              .isLocked());
-      assertEquals(false, ((NodeSPI<Object, Object>) cache.get(Fqn.fromString("/one"))).getLock()
-              .isLocked());
-      assertEquals(false, ((NodeSPI<Object, Object>) cache.get(Fqn.fromString("/one/two"))).getLock().isLocked());
+      assertEquals(false, ((NodeSPI<Object, Object>)cache.get(Fqn.fromString("/"))).getLock().isLocked());
+      assertEquals(false, ((NodeSPI<Object, Object>)cache.get(Fqn.fromString("/one"))).getLock().isLocked());
+      assertEquals(false, ((NodeSPI<Object, Object>)cache.get(Fqn.fromString("/one/two"))).getLock().isLocked());
       assertNotNull(cache.get(Fqn.fromString("/one")).getChild("two"));
       assertNotNull(cache.get(Fqn.fromString("/one/two"), "key1"));
 
       // let async calls propagate
-      TestingUtil.sleepThread((long) 1000);
+      TestingUtil.sleepThread((long)1000);
 
       // cache2 asserts
       assertEquals(0, cache2.getTransactionTable().getNumGlobalTransactions());
@@ -232,9 +226,9 @@
 
       assertTrue(cache2.exists(Fqn.fromString("/one/two")));
       assertNotNull(cache2.get(Fqn.fromString("/")).getChild("one"));
-      assertEquals(false, ((NodeSPI<Object, Object>) cache2.get(Fqn.fromString("/"))).getLock().isLocked());
-      assertEquals(false, ((NodeSPI<Object, Object>) cache2.get(Fqn.fromString("/one"))).getLock().isLocked());
-      assertEquals(false, ((NodeSPI<Object, Object>) cache2.get(Fqn.fromString("/one/two"))).getLock().isLocked());
+      assertEquals(false, ((NodeSPI<Object, Object>)cache2.get(Fqn.fromString("/"))).getLock().isLocked());
+      assertEquals(false, ((NodeSPI<Object, Object>)cache2.get(Fqn.fromString("/one"))).getLock().isLocked());
+      assertEquals(false, ((NodeSPI<Object, Object>)cache2.get(Fqn.fromString("/one/two"))).getLock().isLocked());
       assertNotNull(cache2.get(Fqn.fromString("/one")).getChild("two"));
       assertNotNull(cache2.get(Fqn.fromString("/one/two"), "key1"));
 
@@ -248,7 +242,7 @@
       CacheImpl<Object, Object> cache = createAsyncReplicatedCache();
       CacheImpl<Object, Object> cache2 = createAsyncReplicatedCache();
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       assertNull(mgr.getTransaction());
 
       mgr.begin();
@@ -273,16 +267,14 @@
 
       assertTrue(cache.exists(Fqn.fromString("/one/two")));
       assertNotNull(cache.get(Fqn.fromString("/")).getChild("one"));
-      assertEquals(false, ((NodeSPI<Object, Object>) cache.get(Fqn.fromString("/"))).getLock()
-              .isLocked());
-      assertEquals(false, ((NodeSPI<Object, Object>) cache.get(Fqn.fromString("/one"))).getLock()
-              .isLocked());
-      assertEquals(false, ((NodeSPI<Object, Object>) cache.get(Fqn.fromString("/one/two"))).getLock().isLocked());
+      assertEquals(false, ((NodeSPI<Object, Object>)cache.get(Fqn.fromString("/"))).getLock().isLocked());
+      assertEquals(false, ((NodeSPI<Object, Object>)cache.get(Fqn.fromString("/one"))).getLock().isLocked());
+      assertEquals(false, ((NodeSPI<Object, Object>)cache.get(Fqn.fromString("/one/two"))).getLock().isLocked());
       assertNotNull(cache.get(Fqn.fromString("/one")).getChild("two"));
       assertNotNull(cache.get(Fqn.fromString("/one/two"), "key1"));
 
       // let async calls propagate
-      TestingUtil.sleepThread((long) 1000);
+      TestingUtil.sleepThread((long)1000);
 
       // cache2 asserts
       assertEquals(0, cache2.getTransactionTable().getNumGlobalTransactions());
@@ -294,9 +286,9 @@
 
       assertTrue(cache2.exists(Fqn.fromString("/one/two")));
       assertNotNull(cache2.get(Fqn.fromString("/")).getChild("one"));
-      assertEquals(false, ((NodeSPI<Object, Object>) cache2.get(Fqn.fromString("/"))).getLock().isLocked());
-      assertEquals(false, ((NodeSPI<Object, Object>) cache2.get(Fqn.fromString("/one"))).getLock().isLocked());
-      assertEquals(false, ((NodeSPI<Object, Object>) cache2.get(Fqn.fromString("/one/two"))).getLock().isLocked());
+      assertEquals(false, ((NodeSPI<Object, Object>)cache2.get(Fqn.fromString("/"))).getLock().isLocked());
+      assertEquals(false, ((NodeSPI<Object, Object>)cache2.get(Fqn.fromString("/one"))).getLock().isLocked());
+      assertEquals(false, ((NodeSPI<Object, Object>)cache2.get(Fqn.fromString("/one/two"))).getLock().isLocked());
       assertNotNull(cache2.get(Fqn.fromString("/one")).getChild("two"));
       assertNotNull(cache2.get(Fqn.fromString("/one/two"), "key1"));
 
@@ -306,7 +298,7 @@
       assertEquals(null, cache.get("/one/two", "key1"));
 
       // let async calls propagate
-      TestingUtil.sleepThread((long) 1000);
+      TestingUtil.sleepThread((long)1000);
 
       log.debug("  C2 " + cache2.get("/one/two"));
       assertEquals(false, cache2.exists("/one/two"));
@@ -322,7 +314,7 @@
       CacheImpl<Object, Object> cache = createAsyncReplicatedCache();
       CacheImpl<Object, Object> cache2 = createAsyncReplicatedCache();
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       assertNull(mgr.getTransaction());
 
       mgr.begin();
@@ -341,10 +333,8 @@
 
       GlobalTransaction gtx = cache.getCurrentTransaction(tx);
       TransactionTable table = cache.getTransactionTable();
-      OptimisticTransactionEntry entry = (OptimisticTransactionEntry) table
-              .get(gtx);
+      OptimisticTransactionEntry entry = (OptimisticTransactionEntry)table.get(gtx);
 
-
       assertEquals(3, entry.getTransactionWorkSpace().getNodes().size());
       assertNull(mgr.getTransaction());
 
@@ -357,7 +347,7 @@
       mgr.commit();
 
       // let async calls propagate
-      TestingUtil.sleepThread((long) 1000);
+      TestingUtil.sleepThread((long)1000);
 
       assertEquals(1, cache.getTransactionTable().getNumGlobalTransactions());
       assertEquals(1, cache.getTransactionTable().getNumLocalTransactions());
@@ -384,9 +374,9 @@
 
       assertTrue(cache.exists(Fqn.fromString("/one/two")));
       assertNotNull(cache.get(Fqn.fromString("/")).getChild("one"));
-      assertEquals(false, ((NodeSPI<Object, Object>) cache.get(Fqn.fromString("/"))).getLock().isLocked());
-      assertEquals(false, ((NodeSPI<Object, Object>) cache.get(Fqn.fromString("/one"))).getLock().isLocked());
-      assertEquals(false, ((NodeSPI<Object, Object>) cache.get(Fqn.fromString("/one/two"))).getLock().isLocked());
+      assertEquals(false, ((NodeSPI<Object, Object>)cache.get(Fqn.fromString("/"))).getLock().isLocked());
+      assertEquals(false, ((NodeSPI<Object, Object>)cache.get(Fqn.fromString("/one"))).getLock().isLocked());
+      assertEquals(false, ((NodeSPI<Object, Object>)cache.get(Fqn.fromString("/one/two"))).getLock().isLocked());
       assertNotNull(cache.get(Fqn.fromString("/one")).getChild("two"));
       assertEquals(pojo2, cache.get(Fqn.fromString("/one/two"), "key1"));
 

Modified: core/trunk/src/test/java/org/jboss/cache/optimistic/CacheTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/optimistic/CacheTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/optimistic/CacheTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -25,7 +25,6 @@
 import org.jboss.cache.marshall.MethodCall;
 import org.jboss.cache.marshall.MethodCallFactory;
 import org.jboss.cache.marshall.MethodDeclarations;
-import org.jboss.cache.transaction.DummyTransactionManager;
 import org.jboss.cache.transaction.GlobalTransaction;
 import org.jboss.cache.transaction.OptimisticTransactionEntry;
 import org.jboss.cache.transaction.TransactionTable;
@@ -130,7 +129,7 @@
 
       c.setInterceptorChain(getAlteredInterceptorChain(dummy, c, true));
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = c.getConfiguration().getRuntimeConfig().getTransactionManager();
       assertNull(mgr.getTransaction());
 
       mgr.begin();
@@ -150,7 +149,7 @@
 
       //make sure all calls were done in right order
 
-      List calls = dummy.getAllCalled();
+      List<?> calls = dummy.getAllCalled();
 
       assertEquals(MethodDeclarations.optimisticPrepareMethod, calls.get(0));
       assertEquals(MethodDeclarations.commitMethod, calls.get(1));
@@ -167,7 +166,7 @@
 
       c.setInterceptorChain(getAlteredInterceptorChain(dummy, c, true));
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = c.getConfiguration().getRuntimeConfig().getTransactionManager();
       assertNull(mgr.getTransaction());
       assertEquals(0, c.getTransactionTable().getNumGlobalTransactions());
       assertEquals(0, c.getTransactionTable().getNumLocalTransactions());
@@ -182,7 +181,7 @@
 
       //make sure all calls were done in right order
 
-      List calls = dummy.getAllCalled();
+      List<?> calls = dummy.getAllCalled();
 
       assertEquals(1, calls.size());
       assertEquals(MethodDeclarations.rollbackMethod, calls.get(0));
@@ -197,7 +196,7 @@
       dummy.setCache(c);
 
       c.setInterceptorChain(getAlteredInterceptorChain(dummy, c, true));
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = c.getConfiguration().getRuntimeConfig().getTransactionManager();
 
       //start local transaction
       mgr.begin();
@@ -240,7 +239,7 @@
       //assert that the remote prepare has populated the local workspace
       assertEquals(3, entry.getTransactionWorkSpace().getNodes().size());
       assertEquals(1, entry.getModifications().size());
-      List calls = dummy.getAllCalled();
+      List<?> calls = dummy.getAllCalled();
       assertEquals(MethodDeclarations.optimisticPrepareMethod, calls.get(2));
 
       assertEquals(1, c.getTransactionTable().getNumGlobalTransactions());
@@ -256,7 +255,7 @@
       assertEquals(2, cache.getMembers().size());
       assertEquals(2, cache2.getMembers().size());
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
 
       //start local transaction
       mgr.begin();
@@ -300,7 +299,7 @@
       assertEquals(2, cache.getMembers().size());
       assertEquals(2, cache2.getMembers().size());
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
 
       //start local transaction
       mgr.begin();
@@ -346,7 +345,7 @@
    //      CacheImpl cache = createPessimisticCache();
    //      CacheImpl cache2 = createPessimisticCache();
    //
-   //      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+   //      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
    //
    //      //start local transaction
    //      mgr.begin();

Modified: core/trunk/src/test/java/org/jboss/cache/optimistic/FullStackInterceptorTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/optimistic/FullStackInterceptorTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/optimistic/FullStackInterceptorTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -9,6 +9,7 @@
 
 import javax.transaction.RollbackException;
 import javax.transaction.Transaction;
+import javax.transaction.TransactionManager;
 
 import junit.framework.Assert;
 
@@ -19,7 +20,6 @@
 import org.jboss.cache.NodeSPI;
 import org.jboss.cache.config.Configuration;
 import org.jboss.cache.loader.SamplePojo;
-import org.jboss.cache.transaction.DummyTransactionManager;
 import org.jboss.cache.transaction.GlobalTransaction;
 import org.jboss.cache.transaction.OptimisticTransactionEntry;
 import org.jboss.cache.transaction.TransactionTable;
@@ -38,7 +38,7 @@
 
       CacheImpl<Object, Object> cache = createCacheWithListener();
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       assertNull(mgr.getTransaction());
 
       mgr.begin();
@@ -71,7 +71,7 @@
 
       CacheImpl<Object, Object> cache = createCacheWithListener(listener);
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       assertNull(mgr.getTransaction());
 
       assertEquals(0, cache.getTransactionTable().getNumGlobalTransactions());
@@ -107,7 +107,7 @@
       groupIncreaser++;
       CacheImpl<Object, Object> cache = createCacheWithListener();
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       assertNull(mgr.getTransaction());
 
       mgr.begin();
@@ -147,7 +147,7 @@
       groupIncreaser++;
       CacheImpl<Object, Object> cache = createSyncReplicatedCache();
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       assertNull(mgr.getTransaction());
 
       mgr.begin();
@@ -177,7 +177,7 @@
       groupIncreaser++;
       CacheImpl<Object, Object> cache = createSyncReplicatedCache();
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       assertNull(mgr.getTransaction());
 
       mgr.begin();
@@ -227,7 +227,7 @@
       groupIncreaser++;
       CacheImpl<Object, Object> cache = createSyncReplicatedCache();
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       assertNull(mgr.getTransaction());
 
       mgr.begin();
@@ -295,7 +295,7 @@
       CacheImpl<Object, Object> cache = createSyncReplicatedCache();
       CacheImpl<Object, Object> cache2 = createSyncReplicatedCache();
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       assertNull(mgr.getTransaction());
 
       mgr.begin();
@@ -354,7 +354,7 @@
       CacheImpl<Object, Object> cache = createSyncReplicatedCache();
       CacheImpl<Object, Object> cache2 = createSyncReplicatedCache();
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       assertNull(mgr.getTransaction());
 
       mgr.begin();
@@ -422,7 +422,7 @@
       CacheImpl<Object, Object> cache = createSyncReplicatedCache();
       CacheImpl<Object, Object> cache2 = createSyncReplicatedCache();
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       assertNull(mgr.getTransaction());
 
       mgr.begin();
@@ -499,7 +499,7 @@
 
       CacheImpl<Object, Object> cache = createCacheWithListener();
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       assertNull(mgr.getTransaction());
 
       // first put in a value
@@ -546,7 +546,7 @@
 
       CacheImpl<Object, Object> cache = createCacheWithListener();
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       if (mgr.getTransaction() != null) mgr.rollback();
       assertNull(mgr.getTransaction());
 
@@ -591,7 +591,7 @@
       CacheImpl<Object, Object> cache = createCacheWithListener();
       Set keys;
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       if (mgr.getTransaction() != null) mgr.rollback();
       assertNull(mgr.getTransaction());
 
@@ -659,7 +659,7 @@
       CacheImpl<Object, Object> cache = createCache();
       Transaction tx;
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       Assert.assertNull(cache.get(fqn));
 
       mgr.begin();
@@ -685,7 +685,7 @@
       CacheImpl<Object, Object> cache = createCache();
       Transaction tx;
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       Assert.assertNull(cache.get(fqn));
       cache.put(fqn, key, value);
       Assert.assertEquals(value, cache.get(fqn, key));
@@ -714,7 +714,7 @@
       CacheImpl<Object, Object> cache = createCache();
       Transaction tx;
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       Assert.assertNull(cache.get(fqn));
       cache.put(fqn, key, value);
       Assert.assertEquals(value, cache.get(fqn, key));
@@ -744,7 +744,7 @@
          CacheImpl<Object, Object> cache1 = createSyncReplicatedCache();
          CacheImpl<Object, Object> cache2 = createSyncReplicatedCache();
          log.debug("Created caches");
-         DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+         TransactionManager mgr = cache1.getConfiguration().getRuntimeConfig().getTransactionManager();
 
          int numLoops = 5, numPuts = 5;
 

Modified: core/trunk/src/test/java/org/jboss/cache/optimistic/NodeInterceptorGetChildrenNamesTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/optimistic/NodeInterceptorGetChildrenNamesTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/optimistic/NodeInterceptorGetChildrenNamesTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -7,6 +7,7 @@
 import java.util.Iterator;
 
 import javax.transaction.Transaction;
+import javax.transaction.TransactionManager;
 
 import org.jboss.cache.CacheImpl;
 import org.jboss.cache.Fqn;
@@ -14,7 +15,6 @@
 import org.jboss.cache.interceptors.OptimisticCreateIfNotExistsInterceptor;
 import org.jboss.cache.interceptors.OptimisticNodeInterceptor;
 import org.jboss.cache.loader.SamplePojo;
-import org.jboss.cache.transaction.DummyTransactionManager;
 import org.jboss.cache.transaction.GlobalTransaction;
 import org.jboss.cache.transaction.OptimisticTransactionEntry;
 import org.jboss.cache.transaction.TransactionTable;
@@ -43,7 +43,7 @@
       cache.setInterceptorChain(interceptor);
 
 //		 first set up a node with a pojo
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       mgr.begin();
       Transaction tx = mgr.getTransaction();
 
@@ -114,7 +114,7 @@
       cache.setInterceptorChain(interceptor);
 
 //		 first set up a node with a pojo
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       mgr.begin();
       Transaction tx = mgr.getTransaction();
 
@@ -144,6 +144,7 @@
       cache.stop();
    }
 
+
    public void testTransactionGetNamesIteratorMethod() throws Exception
    {
 
@@ -163,7 +164,7 @@
       cache.setInterceptorChain(interceptor);
 
 //		 first set up a node with a pojo
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       mgr.begin();
       Transaction tx = mgr.getTransaction();
 
@@ -182,14 +183,15 @@
 
       OptimisticTransactionEntry entry = (OptimisticTransactionEntry) table.get(gtx);
 
-      TransactionWorkspace workspace = entry.getTransactionWorkSpace();
+      @SuppressWarnings("unchecked")
+      TransactionWorkspace<Object, Object> workspace = entry.getTransactionWorkSpace();
 
       //assert we can see this
       assertEquals(1, cache.getChildrenNames("/one").size());
 
       try
       {
-         for (Iterator it = cache.getChildrenNames("/one").iterator(); it.hasNext();)
+         for (Iterator<?> it = cache.getChildrenNames("/one").iterator(); it.hasNext();)
          {
             it.next();
             it.remove();

Modified: core/trunk/src/test/java/org/jboss/cache/optimistic/NodeInterceptorGetKeyValTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/optimistic/NodeInterceptorGetKeyValTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/optimistic/NodeInterceptorGetKeyValTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -5,6 +5,7 @@
 import static org.testng.AssertJUnit.assertTrue;
 
 import javax.transaction.Transaction;
+import javax.transaction.TransactionManager;
 
 import org.jboss.cache.CacheImpl;
 import org.jboss.cache.Fqn;
@@ -12,7 +13,6 @@
 import org.jboss.cache.interceptors.OptimisticCreateIfNotExistsInterceptor;
 import org.jboss.cache.interceptors.OptimisticNodeInterceptor;
 import org.jboss.cache.loader.SamplePojo;
-import org.jboss.cache.transaction.DummyTransactionManager;
 import org.jboss.cache.transaction.GlobalTransaction;
 import org.jboss.cache.transaction.OptimisticTransactionEntry;
 import org.jboss.cache.transaction.TransactionTable;
@@ -41,7 +41,7 @@
       cache.setInterceptorChain(interceptor);
 
 //		 first set up a node with a pojo
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       mgr.begin();
       Transaction tx = mgr.getTransaction();
 
@@ -110,7 +110,7 @@
       cache.setInterceptorChain(interceptor);
 
 //		 first set up a node with a pojo
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       mgr.begin();
       Transaction tx = mgr.getTransaction();
 
@@ -170,7 +170,7 @@
       cache.setInterceptorChain(interceptor);
 
 //		 first set up a node with a pojo
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       mgr.begin();
       Transaction tx = mgr.getTransaction();
 
@@ -229,7 +229,7 @@
       cache.setInterceptorChain(interceptor);
 
 //		 first set up a node with a pojo
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       mgr.begin();
       Transaction tx = mgr.getTransaction();
 

Modified: core/trunk/src/test/java/org/jboss/cache/optimistic/NodeInterceptorGetKeysTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/optimistic/NodeInterceptorGetKeysTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/optimistic/NodeInterceptorGetKeysTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -7,6 +7,7 @@
 import java.util.Iterator;
 
 import javax.transaction.Transaction;
+import javax.transaction.TransactionManager;
 
 import org.jboss.cache.CacheImpl;
 import org.jboss.cache.Fqn;
@@ -14,7 +15,6 @@
 import org.jboss.cache.interceptors.OptimisticCreateIfNotExistsInterceptor;
 import org.jboss.cache.interceptors.OptimisticNodeInterceptor;
 import org.jboss.cache.loader.SamplePojo;
-import org.jboss.cache.transaction.DummyTransactionManager;
 import org.jboss.cache.transaction.GlobalTransaction;
 import org.jboss.cache.transaction.OptimisticTransactionEntry;
 import org.jboss.cache.transaction.TransactionTable;
@@ -43,7 +43,7 @@
       cache.setInterceptorChain(interceptor);
 
 //		 first set up a node with a pojo
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       mgr.begin();
       Transaction tx = mgr.getTransaction();
 
@@ -98,7 +98,7 @@
    {
 
       TestListener listener = new TestListener();
-      final CacheImpl cache = createCacheWithListener(listener);
+      final CacheImpl<Object, Object> cache = createCacheWithListener(listener);
 
       Interceptor interceptor = new OptimisticCreateIfNotExistsInterceptor();
       interceptor.setCache(cache);
@@ -113,7 +113,7 @@
       cache.setInterceptorChain(interceptor);
 
 //		 first set up a node with a pojo
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       mgr.begin();
       Transaction tx = mgr.getTransaction();
 
@@ -161,7 +161,7 @@
       cache.setInterceptorChain(interceptor);
 
 //		 first set up a node with a pojo
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       mgr.begin();
       Transaction tx = mgr.getTransaction();
 
@@ -184,7 +184,7 @@
       //assert we can see this with a key value get in the transaction
       assertEquals(1, cache.getKeys("/one/two").size());
 
-      for (Iterator it = cache.getKeys("/one/two").iterator(); it.hasNext();)
+      for (Iterator<?> it = cache.getKeys("/one/two").iterator(); it.hasNext();)
       {
          it.next();
          it.remove();

Modified: core/trunk/src/test/java/org/jboss/cache/optimistic/NodeInterceptorKeyValTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/optimistic/NodeInterceptorKeyValTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/optimistic/NodeInterceptorKeyValTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -4,6 +4,7 @@
 import static org.testng.AssertJUnit.assertTrue;
 
 import javax.transaction.Transaction;
+import javax.transaction.TransactionManager;
 
 import org.jboss.cache.CacheImpl;
 import org.jboss.cache.Fqn;
@@ -11,7 +12,6 @@
 import org.jboss.cache.interceptors.OptimisticCreateIfNotExistsInterceptor;
 import org.jboss.cache.interceptors.OptimisticNodeInterceptor;
 import org.jboss.cache.loader.SamplePojo;
-import org.jboss.cache.transaction.DummyTransactionManager;
 import org.jboss.cache.transaction.GlobalTransaction;
 import org.jboss.cache.transaction.OptimisticTransactionEntry;
 import org.jboss.cache.transaction.TransactionTable;
@@ -40,7 +40,7 @@
       cache.setInterceptorChain(interceptor);
 
 //		 first set up a node with a pojo
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       mgr.begin();
       Transaction tx = mgr.getTransaction();
 
@@ -95,7 +95,7 @@
       cache.setInterceptorChain(interceptor);
 
 //		 first set up a node with a pojo
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       mgr.begin();
       Transaction tx = mgr.getTransaction();
 
@@ -153,7 +153,7 @@
       cache.setInterceptorChain(interceptor);
 
 //		 first set up a node with a pojo
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       mgr.begin();
       Transaction tx = mgr.getTransaction();
 
@@ -210,7 +210,7 @@
       cache.setInterceptorChain(interceptor);
 
 //		 first set up a node with a pojo
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       mgr.begin();
       Transaction tx = mgr.getTransaction();
 
@@ -268,7 +268,7 @@
       cache.setInterceptorChain(interceptor);
 
 //		 first set up a node with a pojo
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       mgr.begin();
       Transaction tx = mgr.getTransaction();
 

Modified: core/trunk/src/test/java/org/jboss/cache/optimistic/TxInterceptorTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/optimistic/TxInterceptorTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/optimistic/TxInterceptorTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -15,19 +15,30 @@
 import java.util.List;
 
 import javax.transaction.Transaction;
+import javax.transaction.TransactionManager;
 
 import org.jboss.cache.CacheImpl;
 import org.jboss.cache.loader.SamplePojo;
 import org.jboss.cache.marshall.MethodCall;
 import org.jboss.cache.marshall.MethodCallFactory;
 import org.jboss.cache.marshall.MethodDeclarations;
-import org.jboss.cache.transaction.DummyTransactionManager;
 import org.jboss.cache.transaction.GlobalTransaction;
 import org.jboss.cache.transaction.OptimisticTransactionEntry;
+import org.jboss.cache.transaction.TransactionSetup;
 import org.jboss.cache.transaction.TransactionTable;
+import org.testng.annotations.Test;
 
+ at Test(groups = {"functional", "transaction"})
 public class TxInterceptorTest extends AbstractOptimisticTestCase
 {
+   @Override
+   protected CacheImpl<Object, Object> createCacheUnstarted(boolean optimistic) throws Exception
+   {
+      CacheImpl<Object, Object> cache = super.createCacheUnstarted(optimistic);
+      cache.getConfiguration().setTransactionManagerLookupClass(TransactionSetup.getManagerLookup());
+      return cache;
+   }
+
    public void testNoTransaction() throws Exception
    {
 
@@ -36,7 +47,7 @@
       dummy.setCache(cache);
 
       cache.setInterceptorChain(getAlteredInterceptorChain(dummy, cache, false));
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       assertNull(mgr.getTransaction());
       assertEquals(0, cache.getTransactionTable().getNumGlobalTransactions());
       assertEquals(0, cache.getTransactionTable().getNumLocalTransactions());
@@ -50,7 +61,7 @@
 
       //make sure all calls were done in right order
 
-      List calls = dummy.getAllCalled();
+      List<?> calls = dummy.getAllCalled();
 
       assertEquals(MethodDeclarations.optimisticPrepareMethod, calls.get(0));
       assertEquals(MethodDeclarations.commitMethod, calls.get(1));
@@ -67,7 +78,7 @@
 
       cache.setInterceptorChain(getAlteredInterceptorChain(dummy, cache, false));
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
 
       //start local transaction
       mgr.begin();
@@ -86,7 +97,7 @@
 
       assertNull(mgr.getTransaction());
 
-      List calls = dummy.getAllCalled();
+      List<?> calls = dummy.getAllCalled();
       assertEquals(MethodDeclarations.optimisticPrepareMethod, calls.get(0));
       assertEquals(MethodDeclarations.commitMethod, calls.get(1));
 
@@ -104,7 +115,7 @@
       dummy.setCache(cache);
 
       cache.setInterceptorChain(getAlteredInterceptorChain(dummy, cache, false));
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
 
       //start local transaction
       mgr.begin();
@@ -118,7 +129,7 @@
 
       assertNull(mgr.getTransaction());
 
-      List calls = dummy.getAllCalled();
+      List<?> calls = dummy.getAllCalled();
       assertEquals(1, calls.size());
       assertEquals(MethodDeclarations.rollbackMethod, calls.get(0));
 
@@ -136,7 +147,7 @@
       dummy.setCache(cache);
 
       cache.setInterceptorChain(getAlteredInterceptorChain(dummy, cache, false));
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
 
       //start local transaction
       mgr.begin();
@@ -146,7 +157,7 @@
 
       assertNull(mgr.getTransaction());
 
-      List calls = dummy.getAllCalled();
+      List<?> calls = dummy.getAllCalled();
       assertEquals(0, calls.size());
 
       assertNull(mgr.getTransaction());
@@ -166,7 +177,7 @@
 
       cache.setInterceptorChain(getAlteredInterceptorChain(dummy, cache, false));
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
 
       //start local transaction
       mgr.begin();
@@ -176,7 +187,7 @@
 
       assertNull(mgr.getTransaction());
 
-      List calls = dummy.getAllCalled();
+      List<?> calls = dummy.getAllCalled();
       assertEquals(0, calls.size());
 
       assertNull(mgr.getTransaction());
@@ -196,7 +207,7 @@
 
       cache.setInterceptorChain(getAlteredInterceptorChain(dummy, cache, false));
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
 
       //start local transaction
       mgr.begin();
@@ -210,7 +221,7 @@
 
       assertNull(mgr.getTransaction());
 
-      List calls = dummy.getAllCalled();
+      List<?> calls = dummy.getAllCalled();
       assertEquals(MethodDeclarations.optimisticPrepareMethod, calls.get(0));
       assertEquals(MethodDeclarations.commitMethod, calls.get(1));
       boolean failed = false;
@@ -240,7 +251,7 @@
       dummy.setCache(cache);
 
       cache.setInterceptorChain(getAlteredInterceptorChain(dummy, cache, false));
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
 
       //start local transaction
       mgr.begin();
@@ -258,7 +269,7 @@
 
       assertNull(mgr.getTransaction());
 
-      List calls = dummy.getAllCalled();
+      List<?> calls = dummy.getAllCalled();
       assertEquals(MethodDeclarations.optimisticPrepareMethod, calls.get(0));
       assertEquals(MethodDeclarations.commitMethod, calls.get(1));
 
@@ -278,7 +289,7 @@
       dummy.setCache(cache);
 
       cache.setInterceptorChain(getAlteredInterceptorChain(dummy, cache, false));
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
 
       //start local transaction
       mgr.begin();
@@ -296,7 +307,7 @@
       mgr.commit();
 
       //test local calls
-      List calls = dummy.getAllCalled();
+      List<?> calls = dummy.getAllCalled();
       assertEquals(MethodDeclarations.optimisticPrepareMethod, calls.get(0));
       assertEquals(MethodDeclarations.commitMethod, calls.get(1));
       assertNull(mgr.getTransaction());
@@ -348,7 +359,7 @@
       dummy.setCache(cache);
 
       cache.setInterceptorChain(getAlteredInterceptorChain(dummy, cache, false));
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
 
       //start local transaction
       mgr.begin();
@@ -393,7 +404,7 @@
       assertNotNull(table.getLocalTransaction(remoteGtx));
 
 
-      List calls = dummy.getAllCalled();
+      List<?> calls = dummy.getAllCalled();
       assertEquals(MethodDeclarations.optimisticPrepareMethod, calls.get(0));
 
       //assert we have two current transactions
@@ -432,7 +443,7 @@
 
       cache.setInterceptorChain(getAlteredInterceptorChain(dummy, cache, true));
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
 
       //start local transaction
       mgr.begin();
@@ -492,7 +503,7 @@
       assertNull(table.get(remoteGtx));
       assertNull(table.getLocalTransaction(remoteGtx));
 
-      List calls = dummy.getAllCalled();
+      List<?> calls = dummy.getAllCalled();
       assertEquals(MethodDeclarations.optimisticPrepareMethod, calls.get(0));
       assertEquals(MethodDeclarations.commitMethod, calls.get(1));
 
@@ -522,7 +533,7 @@
       dummy.setCache(cache);
 
       cache.setInterceptorChain(getAlteredInterceptorChain(dummy, cache, true));
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
 
       //start local transaction
       mgr.begin();
@@ -581,7 +592,7 @@
       assertNull(table.get(remoteGtx));
       assertNull(table.getLocalTransaction(remoteGtx));
 
-      List calls = dummy.getAllCalled();
+      List<?> calls = dummy.getAllCalled();
       assertEquals(MethodDeclarations.optimisticPrepareMethod, calls.get(0));
       assertEquals(MethodDeclarations.rollbackMethod, calls.get(1));
 
@@ -611,7 +622,7 @@
       dummy.setCache(cache);
 
       cache.setInterceptorChain(getAlteredInterceptorChain(dummy, cache, true));
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
 
       //start local transaction
       mgr.begin();
@@ -631,7 +642,7 @@
       mgr.commit();
 
       //test local calls
-      List calls = dummy.getAllCalled();
+      List<?> calls = dummy.getAllCalled();
       assertEquals(MethodDeclarations.optimisticPrepareMethod, calls.get(0));
       assertEquals(MethodDeclarations.commitMethod, calls.get(1));
 
@@ -704,7 +715,7 @@
       dummy.setCache(cache);
 
       cache.setInterceptorChain(getAlteredInterceptorChain(dummy, cache, true));
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
 
       //start local transaction
       mgr.begin();
@@ -724,7 +735,7 @@
       mgr.commit();
 
       //test local calls
-      List calls = dummy.getAllCalled();
+      List<?> calls = dummy.getAllCalled();
       assertEquals(MethodDeclarations.optimisticPrepareMethod, calls.get(0));
       assertEquals(MethodDeclarations.commitMethod, calls.get(1));
 
@@ -793,7 +804,7 @@
 
       cache.setInterceptorChain(getAlteredInterceptorChain(dummy, cache, false));
 
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
 
       mgr.begin();
       Transaction tx = mgr.getTransaction();
@@ -813,7 +824,7 @@
       mgr.commit();
 
 
-      List calls = dummy.getAllCalled();
+      List<?> calls = dummy.getAllCalled();
       assertEquals(MethodDeclarations.optimisticPrepareMethod, calls.get(0));
       assertEquals(MethodDeclarations.commitMethod, calls.get(1));
 

Modified: core/trunk/src/test/java/org/jboss/cache/replicated/SyncReplTxTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/replicated/SyncReplTxTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/replicated/SyncReplTxTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -42,6 +42,7 @@
 import org.jboss.cache.notifications.annotation.NodeModified;
 import org.jboss.cache.notifications.event.NodeEvent;
 import org.jboss.cache.transaction.DummyTransactionManager;
+import org.jboss.cache.transaction.TransactionSetup;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
@@ -52,24 +53,20 @@
  *
  * @version $Revision$
  */
- at Test(groups = {"functional", "jgroups"})
+ at Test(groups = {"functional", "jgroups", "transaction"})
 public class SyncReplTxTest
 {
    private static Log log = LogFactory.getLog(SyncReplTxTest.class);
    private CacheImpl<Object, Object> cache1;
    private CacheImpl<Object, Object> cache2;
 
-   private String old_factory = null;
-   private final static String FACTORY = "org.jboss.cache.transaction.DummyContextFactory";
-   private Semaphore lock;
+   Semaphore lock;
    private Throwable t1_ex;
    private Throwable t2_ex;
 
    @BeforeMethod(alwaysRun = true)
    public void setUp() throws Exception
    {
-      old_factory = System.getProperty(Context.INITIAL_CONTEXT_FACTORY);
-      System.setProperty(Context.INITIAL_CONTEXT_FACTORY, FACTORY);
       t1_ex = t2_ex = null;
       lock = new Semaphore(1);
    }
@@ -77,18 +74,13 @@
    @AfterMethod(alwaysRun = true)
    public void tearDown() throws Exception
    {
-      DummyTransactionManager.destroy();
+      TransactionSetup.cleanup();
       destroyCaches();
-      if (old_factory != null)
-      {
-         System.setProperty(Context.INITIAL_CONTEXT_FACTORY, old_factory);
-         old_factory = null;
-      }
    }
 
    private Transaction beginTransaction() throws SystemException, NotSupportedException
    {
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache1.getConfiguration().getRuntimeConfig().getTransactionManager();
       mgr.begin();
       return mgr.getTransaction();
    }
@@ -102,8 +94,8 @@
       cache1.getConfiguration().setIsolationLevel(IsolationLevel.SERIALIZABLE);
       cache2.getConfiguration().setIsolationLevel(IsolationLevel.SERIALIZABLE);
 
-      cache1.getConfiguration().setTransactionManagerLookupClass("org.jboss.cache.transaction.DummyTransactionManagerLookup");
-      cache2.getConfiguration().setTransactionManagerLookupClass("org.jboss.cache.transaction.DummyTransactionManagerLookup");
+      cache1.getConfiguration().setTransactionManagerLookupClass(TransactionSetup.getManagerLookup());
+      cache2.getConfiguration().setTransactionManagerLookupClass(TransactionSetup.getManagerLookup());
       cache1.getConfiguration().setLockAcquisitionTimeout(5000);
       cache2.getConfiguration().setLockAcquisitionTimeout(5000);
 

Modified: core/trunk/src/test/java/org/jboss/cache/transaction/AbortionTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/transaction/AbortionTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/transaction/AbortionTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -31,7 +31,7 @@
 /**
  * @author <a href="mailto:manik at jboss.org">Manik Surtani (manik at jboss.org)</a>
  */
- at Test(groups={"functional", "transaction"})
+ at Test(groups={"functional"})
 public class AbortionTest
 {
    private MyTC cache1, cache2, cache3;

Modified: core/trunk/src/test/java/org/jboss/cache/transaction/AsyncRollbackTxTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/transaction/AsyncRollbackTxTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/transaction/AsyncRollbackTxTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -23,7 +23,7 @@
  * @author <a href="mailto:jhalat at infovide.pl">Jacek Halat</a>
  * @since 1.4.0
  */
- at Test(groups={"functional", "transaction"})
+ at Test(groups={"functional"})
 public class AsyncRollbackTxTest
 {
    private CacheImpl<String, String> cache;

Modified: core/trunk/src/test/java/org/jboss/cache/transaction/ConcurrentBankTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/transaction/ConcurrentBankTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/transaction/ConcurrentBankTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -5,11 +5,8 @@
 
 import java.util.HashMap;
 import java.util.Iterator;
-import java.util.Properties;
 import java.util.Set;
 
-import javax.naming.Context;
-import javax.naming.InitialContext;
 import javax.transaction.UserTransaction;
 
 import org.apache.commons.logging.Log;
@@ -39,9 +36,6 @@
 {
    private CacheImpl<Object, Integer> cache;
    private static Log logger_ = LogFactory.getLog(ConcurrentBankTest.class);
-   private static Properties p = null;
-   private String old_factory = null;
-   private final String FACTORY = "org.jboss.cache.transaction.DummyContextFactory";
    private final String NODE = "/cachetest";
    private final int ROLLBACK_CHANCE = 100;
 
@@ -57,15 +51,6 @@
    @BeforeMethod(alwaysRun = true)
    public void setUp() throws Exception
    {
-      old_factory = System.getProperty(Context.INITIAL_CONTEXT_FACTORY);
-      System.setProperty(Context.INITIAL_CONTEXT_FACTORY, FACTORY);
-      DummyTransactionManager.getInstance();
-      if (p == null)
-      {
-         p = new Properties();
-         p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.cache.transaction.DummyContextFactory");
-      }
-
       CacheFactory<Object, Integer> instance = DefaultCacheFactory.getInstance();
       cache = (CacheImpl<Object, Integer>)instance.createCache(false);
 
@@ -74,6 +59,8 @@
       // XML file above only sets REPEATABLE-READ
       cache.getConfiguration().setIsolationLevel(IsolationLevel.SERIALIZABLE);
 
+      cache.getConfiguration().setTransactionManagerLookupClass(TransactionSetup.getManagerLookup());
+
       cache.create();
       cache.start();
    }
@@ -83,12 +70,7 @@
    {
       cache.stop();
       // BW. kind of a hack to destroy jndi binding and thread local tx before next run.
-      DummyTransactionManager.destroy();
-      if (old_factory != null)
-      {
-         System.setProperty(Context.INITIAL_CONTEXT_FACTORY, old_factory);
-         old_factory = null;
-      }
+      TransactionSetup.cleanup();
    }
 
    public void testConcurrentBooking()
@@ -156,7 +138,7 @@
          UserTransaction tx = null;
          try
          {
-            tx = (UserTransaction)new InitialContext(p).lookup("UserTransaction");
+            tx = TransactionSetup.getUserTransaction();
 
             boolean again = false;
             int src = 0;

Modified: core/trunk/src/test/java/org/jboss/cache/transaction/ConcurrentTransactionalTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/transaction/ConcurrentTransactionalTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/transaction/ConcurrentTransactionalTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -13,12 +13,8 @@
 import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
-import java.util.Properties;
 import java.util.Set;
 
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
 import javax.transaction.UserTransaction;
 
 import org.apache.commons.logging.Log;
@@ -47,21 +43,10 @@
    private Log logger_ = LogFactory.getLog(ConcurrentTransactionalTest.class);
    private static Throwable thread_ex = null;
    private static final int NUM = 10000;
-   private static Properties p = null;
-   private String old_factory = null;
-   private static final String FACTORY = "org.jboss.cache.transaction.DummyContextFactory";
 
    @BeforeMethod(alwaysRun = true)
    public void setUp() throws Exception
    {
-      old_factory = System.getProperty(Context.INITIAL_CONTEXT_FACTORY);
-      System.setProperty(Context.INITIAL_CONTEXT_FACTORY, FACTORY);
-      DummyTransactionManager.getInstance();
-      if (p == null)
-      {
-         p = new Properties();
-         p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.cache.transaction.DummyContextFactory");
-      }
    }
 
    private void createCache(IsolationLevel level) throws Exception
@@ -72,41 +57,17 @@
 
       cache.getConfiguration().setCacheMode(Configuration.CacheMode.LOCAL);
       cache.getConfiguration().setIsolationLevel(level);
+      cache.getConfiguration().setTransactionManagerLookupClass(TransactionSetup.getManagerLookup());
       cache.start();
       cache.put("/a/b/c", null);
    }
 
-   private UserTransaction getTransaction()
-   {
-      UserTransaction tx = null;
-      try
-      {
-         tx = (UserTransaction)new InitialContext(p).lookup("UserTransaction");
-      }
-      catch (NamingException e)
-      {
-         e.printStackTrace();
-      }
-
-      if (tx == null)
-      {
-         throw new RuntimeException("Tx is null");
-      }
-
-      return tx;
-   }
-
    @AfterMethod(alwaysRun = true)
    public void tearDown() throws Exception
    {
       cache.stop();
       thread_ex = null;
-      DummyTransactionManager.destroy();
-      if (old_factory != null)
-      {
-         System.setProperty(Context.INITIAL_CONTEXT_FACTORY, old_factory);
-         old_factory = null;
-      }
+      TransactionSetup.cleanup();
    }
 
    public void testConcurrentAccessWithRWLock() throws Throwable
@@ -224,7 +185,7 @@
          try
          {
             log("adding data");
-            tx = getTransaction();
+            tx = TransactionSetup.getUserTransaction();
             for (int i = 0; i < NUM; i++)
             {
                log("adding data i=" + i);

Modified: core/trunk/src/test/java/org/jboss/cache/transaction/DeadlockTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/transaction/DeadlockTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/transaction/DeadlockTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -11,6 +11,7 @@
 import javax.transaction.NotSupportedException;
 import javax.transaction.SystemException;
 import javax.transaction.Transaction;
+import javax.transaction.TransactionManager;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -49,13 +50,12 @@
    @BeforeMethod(alwaysRun = true)
    public void setUp() throws Exception
    {
-      DummyTransactionManager.getInstance();
       CacheFactory<String, String> instance = DefaultCacheFactory.getInstance();
       cache = (CacheImpl<String, String>)instance.createCache(false);
       cache.getConfiguration().setStateRetrievalTimeout(10000);
       cache.getConfiguration().setClusterName("test");
       cache.getConfiguration().setCacheMode(Configuration.CacheMode.LOCAL);
-      cache.getConfiguration().setTransactionManagerLookupClass("org.jboss.cache.transaction.DummyTransactionManagerLookup");
+      cache.getConfiguration().setTransactionManagerLookupClass(TransactionSetup.getManagerLookup());
       cache.getConfiguration().setIsolationLevel(IsolationLevel.REPEATABLE_READ);
       cache.getConfiguration().setLockParentForChildInsertRemove(true);
       cache.getConfiguration().setLockAcquisitionTimeout(3000);
@@ -573,7 +573,7 @@
 
    private Transaction startTransaction() throws SystemException, NotSupportedException
    {
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getTransactionManager();
       mgr.begin();
       Transaction tx = mgr.getTransaction();
       return tx;

Modified: core/trunk/src/test/java/org/jboss/cache/transaction/InvocationContextCleanupTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/transaction/InvocationContextCleanupTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/transaction/InvocationContextCleanupTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -39,7 +39,7 @@
       if (optimistic)
          cache.getConfiguration().setNodeLockingScheme("OPTIMISTIC");
       cache.getConfiguration().setClusterName("InvocationContextCleanupTest");
-      cache.getConfiguration().setTransactionManagerLookupClass("org.jboss.cache.transaction.DummyTransactionManagerLookup");
+      cache.getConfiguration().setTransactionManagerLookupClass(TransactionSetup.getManagerLookup());
       cache.getConfiguration().setLockAcquisitionTimeout(2000);
       cache.start();
       return cache;

Modified: core/trunk/src/test/java/org/jboss/cache/transaction/IsolationLevelNoneTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/transaction/IsolationLevelNoneTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/transaction/IsolationLevelNoneTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -6,6 +6,7 @@
 import javax.transaction.NotSupportedException;
 import javax.transaction.SystemException;
 import javax.transaction.Transaction;
+import javax.transaction.TransactionManager;
 
 import org.jboss.cache.CacheFactory;
 import org.jboss.cache.CacheImpl;
@@ -63,7 +64,7 @@
       cache = (CacheImpl<String, String>)instance.createCache(false);
       cache.getConfiguration().setCacheMode(Configuration.CacheMode.LOCAL);
       cache.getConfiguration().setIsolationLevel(IsolationLevel.NONE);
-      cache.setTransactionManagerLookup(new DummyTransactionManagerLookup());
+      cache.getConfiguration().setTransactionManagerLookupClass(TransactionSetup.getManagerLookup());
       cache.start();
       tx = startTransaction();
       cache.put(FQN, KEY, VALUE);
@@ -81,7 +82,7 @@
       cache = (CacheImpl<String, String>)instance.createCache(false);
       cache.getConfiguration().setCacheMode(Configuration.CacheMode.LOCAL);
       cache.getConfiguration().setIsolationLevel(IsolationLevel.REPEATABLE_READ);
-      cache.setTransactionManagerLookup(new DummyTransactionManagerLookup());
+      cache.getConfiguration().setTransactionManagerLookupClass(TransactionSetup.getManagerLookup());
       cache.start();
       tx = startTransaction();
       cache.put(FQN, KEY, VALUE);
@@ -95,7 +96,7 @@
 
    private Transaction startTransaction() throws SystemException, NotSupportedException
    {
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getTransactionManager();
       mgr.begin();
       return mgr.getTransaction();
    }

Modified: core/trunk/src/test/java/org/jboss/cache/transaction/IsolationLevelReadCommittedNodeCreationRollbackTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/transaction/IsolationLevelReadCommittedNodeCreationRollbackTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/transaction/IsolationLevelReadCommittedNodeCreationRollbackTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -6,7 +6,20 @@
  */
 package org.jboss.cache.transaction;
 
+import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.assertNull;
+import static org.testng.AssertJUnit.fail;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+import javax.transaction.NotSupportedException;
+import javax.transaction.SystemException;
+import javax.transaction.Transaction;
+import javax.transaction.TransactionManager;
+
 import junit.framework.AssertionFailedError;
+
 import org.jboss.cache.CacheFactory;
 import org.jboss.cache.CacheImpl;
 import org.jboss.cache.DefaultCacheFactory;
@@ -14,17 +27,10 @@
 import org.jboss.cache.config.Configuration;
 import org.jboss.cache.lock.IsolationLevel;
 import org.jboss.cache.lock.TimeoutException;
-import static org.testng.AssertJUnit.*;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
-import javax.transaction.NotSupportedException;
-import javax.transaction.SystemException;
-import javax.transaction.Transaction;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-
 /**
  * Tests READ_COMMITED isolation level.
  *
@@ -58,7 +64,7 @@
       cache = (CacheImpl<String, String>) instance.createCache(false);
       cache.getConfiguration().setCacheMode(Configuration.CacheMode.LOCAL);
       cache.getConfiguration().setIsolationLevel(IsolationLevel.READ_COMMITTED);
-      cache.getConfiguration().setTransactionManagerLookupClass(DummyTransactionManagerLookup.class.getName());
+      cache.getConfiguration().setTransactionManagerLookupClass(TransactionSetup.getManagerLookup());
       cache.start();
    }
 
@@ -214,7 +220,7 @@
 
    private Transaction startTransaction() throws SystemException, NotSupportedException
    {
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getTransactionManager();
       mgr.begin();
       return mgr.getTransaction();
    }

Modified: core/trunk/src/test/java/org/jboss/cache/transaction/IsolationLevelReadCommittedTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/transaction/IsolationLevelReadCommittedTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/transaction/IsolationLevelReadCommittedTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -10,6 +10,7 @@
 import javax.transaction.NotSupportedException;
 import javax.transaction.SystemException;
 import javax.transaction.Transaction;
+import javax.transaction.TransactionManager;
 
 import junit.framework.AssertionFailedError;
 
@@ -60,7 +61,7 @@
       config.setCacheMode(CacheMode.LOCAL);
       config.setIsolationLevel(IsolationLevel.READ_COMMITTED);
       config.setLockAcquisitionTimeout(1000);
-      config.setTransactionManagerLookupClass(DummyTransactionManagerLookup.class.getName());
+      config.setTransactionManagerLookupClass(TransactionSetup.getManagerLookup());
       CacheFactory<String, String> instance = DefaultCacheFactory.getInstance();
       cache = instance.createCache(config);
    }
@@ -322,7 +323,7 @@
 
    private Transaction startTransaction() throws SystemException, NotSupportedException
    {
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       mgr.begin();
       return mgr.getTransaction();
    }

Modified: core/trunk/src/test/java/org/jboss/cache/transaction/IsolationLevelRepeatableReadTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/transaction/IsolationLevelRepeatableReadTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/transaction/IsolationLevelRepeatableReadTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -9,6 +9,7 @@
 import javax.transaction.NotSupportedException;
 import javax.transaction.SystemException;
 import javax.transaction.Transaction;
+import javax.transaction.TransactionManager;
 
 import junit.framework.AssertionFailedError;
 
@@ -50,7 +51,7 @@
       cache = (CacheImpl<String, String>)instance.createCache(false);
       cache.getConfiguration().setCacheMode("LOCAL");
       cache.getConfiguration().setIsolationLevel(IsolationLevel.REPEATABLE_READ);
-      cache.getConfiguration().setTransactionManagerLookupClass(DummyTransactionManagerLookup.class.getName());
+      cache.getConfiguration().setTransactionManagerLookupClass(TransactionSetup.getManagerLookup());
       cache.getConfiguration().setLockAcquisitionTimeout(1000);
       cache.start();
    }
@@ -155,7 +156,7 @@
 
    private Transaction startTransaction() throws SystemException, NotSupportedException
    {
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getTransactionManager();
       mgr.begin();
       return mgr.getTransaction();
    }

Modified: core/trunk/src/test/java/org/jboss/cache/transaction/IsolationLevelSerializableTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/transaction/IsolationLevelSerializableTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/transaction/IsolationLevelSerializableTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -9,6 +9,7 @@
 import javax.transaction.NotSupportedException;
 import javax.transaction.SystemException;
 import javax.transaction.Transaction;
+import javax.transaction.TransactionManager;
 
 import junit.framework.AssertionFailedError;
 
@@ -54,7 +55,7 @@
       config.setCacheMode(CacheMode.LOCAL);
       config.setIsolationLevel(IsolationLevel.SERIALIZABLE);
       config.setLockAcquisitionTimeout(1000);
-      config.setTransactionManagerLookupClass(DummyTransactionManagerLookup.class.getName());
+      config.setTransactionManagerLookupClass(TransactionSetup.getManagerLookup());
       CacheFactory<String, String> instance = DefaultCacheFactory.getInstance();
       cache = instance.createCache(config);
    }
@@ -161,7 +162,7 @@
 
    private Transaction startTransaction() throws SystemException, NotSupportedException
    {
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       mgr.begin();
       return mgr.getTransaction();
    }

Modified: core/trunk/src/test/java/org/jboss/cache/transaction/PrepareTxTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/transaction/PrepareTxTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/transaction/PrepareTxTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -5,6 +5,7 @@
 import javax.transaction.NotSupportedException;
 import javax.transaction.Synchronization;
 import javax.transaction.Transaction;
+import javax.transaction.TransactionManager;
 
 import org.jboss.cache.CacheException;
 import org.jboss.cache.CacheFactory;
@@ -31,7 +32,7 @@
       CacheFactory<String, String> instance = DefaultCacheFactory.getInstance();
       cache = (CacheImpl<String, String>)instance.createCache(false);
       cache.getConfiguration().setCacheMode("local");
-      cache.getConfiguration().setTransactionManagerLookupClass("org.jboss.cache.transaction.DummyTransactionManagerLookup");
+      cache.getConfiguration().setTransactionManagerLookupClass(TransactionSetup.getManagerLookup());
       cache.create();
       cache.start();
    }
@@ -53,7 +54,7 @@
    public void testCacheModificationInBeforeCompletionPhase() throws Exception, NotSupportedException
    {
       int numLocks = 0;
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getTransactionManager();
       mgr.begin();
       Transaction tx = mgr.getTransaction();
 
@@ -109,7 +110,7 @@
    public void testCacheModificationInAfterCompletionPhase() throws Exception, NotSupportedException
    {
       int numLocks = 0;
-      DummyTransactionManager mgr = DummyTransactionManager.getInstance();
+      TransactionManager mgr = cache.getTransactionManager();
       mgr.begin();
       Transaction tx = mgr.getTransaction();
 

Modified: core/trunk/src/test/java/org/jboss/cache/transaction/ReplicatedTransactionDeadlockTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/transaction/ReplicatedTransactionDeadlockTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/transaction/ReplicatedTransactionDeadlockTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -79,19 +79,6 @@
    private static final long LOCK_ACQUISITION_TIMEOUT = 10000;
 
    /**
-    * The initial context factory properties.
-    */
-   private static final Properties PROPERTIES;
-   /**
-    * The context factory to be used for the test.
-    */
-   private static final String CONTEXT_FACTORY = "org.jboss.cache.transaction.DummyContextFactory";
-   /**
-    * The original context factory to be restored after the test.
-    */
-   private String m_contextFactory = null;
-
-   /**
     * Exception recorded if any of the worker threads fails.
     */
    private static volatile Exception exception = null;
@@ -107,12 +94,6 @@
 
    private Log log = LogFactory.getLog(ReplicatedTransactionDeadlockTest.class);
 
-   static
-   {
-      PROPERTIES = new Properties();
-      PROPERTIES.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.cache.transaction.DummyContextFactory");
-   }
-
    /**
     * Constructor.
     *
@@ -126,14 +107,11 @@
    public void setUp() throws Exception
    {
       exception = null;
-      m_contextFactory = System.getProperty(Context.INITIAL_CONTEXT_FACTORY);
-      System.setProperty(Context.INITIAL_CONTEXT_FACTORY, CONTEXT_FACTORY);
-      DummyTransactionManager.getInstance();
       CacheFactory<Boolean, Boolean> instance = DefaultCacheFactory.getInstance();
       // setup and start the source cache
       srcCache = (CacheImpl<Boolean, Boolean>)instance.createCache(false);
       srcCache.setConfiguration(UnitTestCacheConfigurationFactory.createConfiguration(CacheMode.REPL_SYNC));
-      srcCache.getConfiguration().setTransactionManagerLookupClass("org.jboss.cache.transaction.DummyTransactionManagerLookup");
+      srcCache.getConfiguration().setTransactionManagerLookupClass(TransactionSetup.getManagerLookup());
       srcCache.getConfiguration().setCacheMode(Configuration.CacheMode.REPL_SYNC);
 
       srcCache.getConfiguration().setSyncCommitPhase(true);
@@ -158,16 +136,11 @@
    @AfterMethod(alwaysRun = true)
    public void tearDown() throws Exception
    {
-      DummyTransactionManager.destroy();
       srcCache.stop();
       srcCache = null;
       dstCache.stop();
       dstCache = null;
-      if (m_contextFactory != null)
-      {
-         System.setProperty(Context.INITIAL_CONTEXT_FACTORY, m_contextFactory);
-         m_contextFactory = null;
-      }
+      TransactionSetup.cleanup();
    }
 
    /**
@@ -218,7 +191,7 @@
     */
    private UserTransaction getTransaction() throws Exception
    {
-      return (UserTransaction)new InitialContext(PROPERTIES).lookup("UserTransaction");
+      return  TransactionSetup.getUserTransaction();
    }
 
    /**

Modified: core/trunk/src/test/java/org/jboss/cache/transaction/SimultaneousRollbackAndPutTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/transaction/SimultaneousRollbackAndPutTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/transaction/SimultaneousRollbackAndPutTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -20,7 +20,7 @@
  *
  * @author <a href="mailto:manik at jboss.org">Manik Surtani</a>
  */
- at Test(groups = {"functional"})
+ at Test(groups = {"functional", "transaction"})
 public class SimultaneousRollbackAndPutTest
 {
    private Cache cache;
@@ -31,7 +31,7 @@
    protected void setUp() throws Exception
    {
       cache = DefaultCacheFactory.getInstance().createCache(false);
-      cache.getConfiguration().setTransactionManagerLookupClass(DummyTransactionManagerLookup.class.getName());
+      cache.getConfiguration().setTransactionManagerLookupClass(TransactionSetup.getManagerLookup());
       cache.start();
       tm = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
       cache.put(A, "k", "v");

Modified: core/trunk/src/test/java/org/jboss/cache/transaction/StatusUnknownTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/transaction/StatusUnknownTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/transaction/StatusUnknownTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -1,37 +1,46 @@
 package org.jboss.cache.transaction;
 
-import junit.framework.TestCase;
-import org.jboss.cache.Cache;
-import org.jboss.cache.DefaultCacheFactory;
-import org.jboss.cache.Fqn;
-import org.jboss.cache.CacheImpl;
+import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.assertFalse;
+import static org.testng.AssertJUnit.assertTrue;
 
-import javax.transaction.TransactionManager;
-import javax.transaction.Transaction;
-import javax.transaction.SystemException;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Properties;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
 import javax.transaction.NotSupportedException;
+import javax.transaction.RollbackException;
 import javax.transaction.Status;
-import javax.transaction.RollbackException;
 import javax.transaction.Synchronization;
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
-import java.util.Properties;
-import java.util.List;
-import java.util.LinkedList;
+import javax.transaction.SystemException;
+import javax.transaction.Transaction;
+import javax.transaction.TransactionManager;
 
+import org.jboss.cache.Cache;
+import org.jboss.cache.CacheImpl;
+import org.jboss.cache.DefaultCacheFactory;
+import org.jboss.cache.Fqn;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
 /**
  * This test checks how the cache behaves when a JTA STATUS_UNKNOWN is passed in to the cache during afterCompletion().
  *
  * @author <a href="mailto:manik at jboss.org">Manik Surtani</a>
  */
 @SuppressWarnings("unchecked")
-public class StatusUnknownTest extends TestCase
+ at Test(groups={"functional"})
+public class StatusUnknownTest
 {
    private Cache cache;
    private TransactionManager tm;
 
-   protected void setUp() throws Exception
+   @BeforeMethod(alwaysRun = true)
+   public void setUp() throws Exception
    {
       cache = DefaultCacheFactory.getInstance().createCache(false);
       cache.getConfiguration().setTransactionManagerLookupClass(HeuristicFailingDummyTransactionManagerLookup.class.getName());
@@ -39,7 +48,8 @@
       tm = cache.getConfiguration().getRuntimeConfig().getTransactionManager();
    }
 
-   protected void tearDown()
+   @AfterMethod(alwaysRun = true)
+   public void tearDown()
    {
       cache.stop();
    }

Modified: core/trunk/src/test/java/org/jboss/cache/transaction/SuspendTxTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/transaction/SuspendTxTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/transaction/SuspendTxTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -31,7 +31,7 @@
       CacheFactory<String, String> instance = DefaultCacheFactory.getInstance();
       cache = (CacheImpl<String, String>)instance.createCache(false);
       cache.getConfiguration().setCacheMode("local");
-      cache.getConfiguration().setTransactionManagerLookupClass("org.jboss.cache.transaction.DummyTransactionManagerLookup");
+      cache.getConfiguration().setTransactionManagerLookupClass(TransactionSetup.getManagerLookup());
       cache.start();
       mgr = cache.getTransactionManager();
    }

Added: core/trunk/src/test/java/org/jboss/cache/transaction/TransactionSetup.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/transaction/TransactionSetup.java	                        (rev 0)
+++ core/trunk/src/test/java/org/jboss/cache/transaction/TransactionSetup.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -0,0 +1,150 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.cache.transaction;
+
+import javax.transaction.TransactionManager;
+import javax.transaction.UserTransaction;
+
+/**
+ * A simple abstraction for transaction manager interaction
+ *
+ * @author Jason T. Greene
+ */
+public class TransactionSetup
+{
+   private interface Operations
+   {
+      UserTransaction getUserTransaction();
+      String getLookup();
+      void cleanup();
+      TransactionManager getManager();
+   }
+
+   private static final String JBOSS_JTA="jboss-jta";
+
+   private static Operations operations;
+
+   static
+   {
+      init();
+   }
+
+   private static void init()
+   {
+      String property = System.getProperty("org.jboss.cache.test.tm");
+      if (JBOSS_JTA.equals(property))
+      {
+         final String lookup = JBossStandaloneJTAManagerLookup.class.getName();
+         final JBossStandaloneJTAManagerLookup instance = new JBossStandaloneJTAManagerLookup();
+         operations = new Operations()
+         {
+            public UserTransaction getUserTransaction()
+            {
+               try
+               {
+                  return instance.getUserTransaction();
+               }
+               catch (Exception e)
+               {
+                  throw new RuntimeException(e);
+               }
+            }
+
+            public void cleanup()
+            {
+            }
+
+            public String getLookup()
+            {
+               return lookup;
+            }
+
+            public TransactionManager getManager()
+            {
+               try
+               {
+                  return instance.getTransactionManager();
+               }
+               catch (Exception e)
+               {
+                  throw new RuntimeException(e);
+               }
+            }
+         };
+      }
+      else
+      {
+         final String lookup = DummyTransactionManagerLookup.class.getName();
+         final DummyTransactionManagerLookup instance = new DummyTransactionManagerLookup();
+         operations = new Operations()
+         {
+            public UserTransaction getUserTransaction()
+            {
+               return instance.getUserTransaction();
+            }
+
+            public void cleanup()
+            {
+               instance.cleanup();
+            }
+
+            public String getLookup()
+            {
+               return lookup;
+            }
+
+            public TransactionManager getManager()
+            {
+               try
+               {
+                  return instance.getTransactionManager();
+               }
+               catch (Exception e)
+               {
+                  throw new RuntimeException(e);
+               }
+
+            }
+         };
+      }
+   }
+
+   public static TransactionManager getManager()
+   {
+      return operations.getManager();
+   }
+
+   public static String getManagerLookup()
+   {
+      return operations.getLookup();
+   }
+
+   public static UserTransaction getUserTransaction()
+   {
+      return operations.getUserTransaction();
+   }
+
+   public static void cleanup()
+   {
+      operations.cleanup();
+   }
+}
\ No newline at end of file

Modified: core/trunk/src/test/java/org/jboss/cache/transaction/TransactionTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/transaction/TransactionTest.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/transaction/TransactionTest.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -17,11 +17,8 @@
 
 import java.util.HashMap;
 import java.util.Map;
-import java.util.Properties;
 import java.util.Set;
 
-import javax.naming.Context;
-import javax.naming.InitialContext;
 import javax.transaction.HeuristicMixedException;
 import javax.transaction.HeuristicRollbackException;
 import javax.transaction.NotSupportedException;
@@ -54,31 +51,21 @@
 {
    CacheImpl<String, Comparable> cache = null;
    UserTransaction tx = null;
-   Properties p = null;
-   String old_factory = null;
-   final String FACTORY = "org.jboss.cache.transaction.DummyContextFactory";
    Exception thread_ex;
 
    @BeforeMethod(alwaysRun = true)
    public void setUp() throws Exception
    {
-      old_factory = System.getProperty(Context.INITIAL_CONTEXT_FACTORY);
-      System.setProperty(Context.INITIAL_CONTEXT_FACTORY, FACTORY);
-      DummyTransactionManager.getInstance();
-      if (p == null)
-      {
-         p = new Properties();
-         p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.cache.transaction.DummyContextFactory");
-      }
 
-      tx = (UserTransaction)new InitialContext(p).lookup("UserTransaction");
       CacheFactory<String, Comparable> instance = DefaultCacheFactory.getInstance();
       cache = (CacheImpl<String, Comparable>)instance.createCache(false);
       cache.getConfiguration().setClusterName("test");
       cache.getConfiguration().setStateRetrievalTimeout(10000);
-      cache.getConfiguration().setTransactionManagerLookupClass("org.jboss.cache.transaction.DummyTransactionManagerLookup");
       cache.getConfiguration().setIsolationLevel(IsolationLevel.SERIALIZABLE);
       cache.getConfiguration().setLockParentForChildInsertRemove(true);// this test case is written to assume this.
+      cache.getConfiguration().setTransactionManagerLookupClass(TransactionSetup.getManagerLookup());
+      tx = TransactionSetup.getUserTransaction();
+
       cache.create();
       cache.start();
       thread_ex = null;
@@ -94,12 +81,7 @@
       }
 
       // BW. kind of a hack to destroy jndi binding and thread local tx before next run.
-      DummyTransactionManager.destroy();
-      if (old_factory != null)
-      {
-         System.setProperty(Context.INITIAL_CONTEXT_FACTORY, old_factory);
-         old_factory = null;
-      }
+      TransactionSetup.cleanup();
 
       if (tx != null)
       {
@@ -597,6 +579,7 @@
       catch (Exception e)
       {
          // expected
+         //cache.getTransactionManager().commit();
          t2.commit();
       }
 

Modified: core/trunk/src/test/java/org/jboss/cache/transaction/isolationlevels/IsolationLevelTestBase.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/transaction/isolationlevels/IsolationLevelTestBase.java	2007-10-02 11:07:45 UTC (rev 4525)
+++ core/trunk/src/test/java/org/jboss/cache/transaction/isolationlevels/IsolationLevelTestBase.java	2007-10-02 16:22:14 UTC (rev 4526)
@@ -19,7 +19,7 @@
 import org.jboss.cache.DefaultCacheFactory;
 import org.jboss.cache.Fqn;
 import org.jboss.cache.lock.IsolationLevel;
-import org.jboss.cache.transaction.DummyTransactionManagerLookup;
+import org.jboss.cache.transaction.TransactionSetup;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
@@ -48,7 +48,7 @@
       CacheFactory<String, String> cf = DefaultCacheFactory.getInstance();
       cache = cf.createCache(false);
       cache.getConfiguration().setIsolationLevel(isolationLevel);
-      cache.getConfiguration().setTransactionManagerLookupClass(DummyTransactionManagerLookup.class.getName());
+      cache.getConfiguration().setTransactionManagerLookupClass(TransactionSetup.getManagerLookup());
       // very short so the tests don't take ages
       cache.getConfiguration().setLockAcquisitionTimeout(250);
       cache.start();




More information about the jbosscache-commits mailing list