[infinispan-commits] Infinispan SVN: r287 - in trunk: cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje and 7 other directories.

infinispan-commits at lists.jboss.org infinispan-commits at lists.jboss.org
Thu May 14 06:04:16 EDT 2009


Author: mircea.markus
Date: 2009-05-14 06:04:16 -0400 (Thu, 14 May 2009)
New Revision: 287

Modified:
   trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/BdbjeCacheStore.java
   trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/BdbjeCacheStoreIntegrationTest.java
   trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/BdbjeCacheStoreTest.java
   trunk/core/src/main/java/org/infinispan/interceptors/CacheStoreInterceptor.java
   trunk/core/src/main/java/org/infinispan/interceptors/TxInterceptor.java
   trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheStore.java
   trunk/core/src/main/java/org/infinispan/loaders/CacheStore.java
   trunk/core/src/main/java/org/infinispan/loaders/decorators/AbstractDelegatingStore.java
   trunk/core/src/main/java/org/infinispan/loaders/decorators/ChainingCacheStore.java
   trunk/core/src/main/java/org/infinispan/loaders/decorators/ReadOnlyStore.java
   trunk/core/src/main/java/org/infinispan/loaders/decorators/SingletonStore.java
   trunk/core/src/main/java/org/infinispan/statetransfer/StateTransferManagerImpl.java
   trunk/core/src/test/java/org/infinispan/loaders/BaseCacheStoreTest.java
   trunk/core/src/test/java/org/infinispan/loaders/decorators/ChainingCacheLoaderTest.java
   trunk/core/src/test/java/org/infinispan/statetransfer/StateTransferCacheLoaderFunctionalTest.java
   trunk/core/src/test/java/org/infinispan/statetransfer/StateTransferFunctionalTest.java
Log:
ongoing work on integrating NBST in new TxInterceptor

Modified: trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/BdbjeCacheStore.java
===================================================================
--- trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/BdbjeCacheStore.java	2009-05-13 22:57:00 UTC (rev 286)
+++ trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/BdbjeCacheStore.java	2009-05-14 10:04:16 UTC (rev 287)
@@ -14,6 +14,7 @@
 import com.sleepycat.je.Transaction;
 import com.sleepycat.util.ExceptionUnwrapper;
 import org.infinispan.Cache;
+import org.infinispan.transaction.xa.GlobalTransaction;
 import org.infinispan.container.entries.InternalCacheEntry;
 import org.infinispan.loaders.AbstractCacheStore;
 import org.infinispan.loaders.CacheLoaderConfig;
@@ -45,7 +46,7 @@
  * <p/>
  * All data access is transactional.  Any attempted reads to locked records will block.  The maximum duration of this is
  * set in nanoseconds via the parameter {@link org.infinispan.loaders.bdbje.BdbjeCacheStoreConfig#getLockAcquistionTimeout()}.
- * Calls to {@link BdbjeCacheStore#prepare(java.util.List, javax.transaction.Transaction, boolean) prepare} will attempt
+ * Calls to {@link org.infinispan.loaders.CacheStore#prepare(java.util.List prepare} will attempt
  * to resolve deadlocks, retrying up to {@link org.infinispan.loaders.bdbje.BdbjeCacheStoreConfig#getMaxTxRetries()}
  * attempts.
  * <p/>
@@ -72,7 +73,7 @@
    private StoredMap<Object, InternalCacheEntry> cacheMap;
 
    private PreparableTransactionRunner transactionRunner;
-   private Map<javax.transaction.Transaction, Transaction> txnMap;
+   private Map<GlobalTransaction, Transaction> txnMap;
    private CurrentTransaction currentTransaction;
    private BdbjeResourceFactory factory;
 
@@ -121,7 +122,7 @@
    }
 
    private void openTransactionServices() {
-      txnMap = new ConcurrentHashMap<javax.transaction.Transaction, Transaction>();
+      txnMap = new ConcurrentHashMap<GlobalTransaction, Transaction>();
       currentTransaction = factory.createCurrentTransaction(env);
       transactionRunner = factory.createPreparableTransactionRunner(env);
    }
@@ -222,7 +223,7 @@
     * {@inheritDoc} delegates to {@link BdbjeCacheStore#applyModifications(java.util.List)}, if <code>isOnePhase</code>.
     * Otherwise, delegates to {@link BdbjeCacheStore#prepare(java.util.List, javax.transaction.Transaction) prepare}.
     */
-   public void prepare(List<? extends Modification> mods, javax.transaction.Transaction tx, boolean isOnePhase) throws CacheLoaderException {
+   public void prepare(List<? extends Modification> mods, GlobalTransaction tx, boolean isOnePhase) throws CacheLoaderException {
       if (isOnePhase) {
          applyModifications(mods);
       } else {
@@ -258,7 +259,7 @@
     * @param tx   transaction identifier
     * @throws CacheLoaderException in the event of problems writing to the store
     */
-   protected void prepare(List<? extends Modification> mods, javax.transaction.Transaction tx) throws CacheLoaderException {
+   protected void prepare(List<? extends Modification> mods, GlobalTransaction tx) throws CacheLoaderException {
       if (trace) log.trace("preparing transaction {0}", tx);
       try {
          transactionRunner.prepare(new ModificationsTransactionWorker(this, mods));
@@ -278,7 +279,7 @@
     * This implementation calls {@link BdbjeCacheStore#completeTransaction(javax.transaction.Transaction, boolean)
     * completeTransaction} with an argument of false.
     */
-   public void rollback(javax.transaction.Transaction tx) {
+   public void rollback(GlobalTransaction tx) {
       try {
          completeTransaction(tx, false);
       } catch (Exception e) {
@@ -292,7 +293,7 @@
     * This implementation calls {@link BdbjeCacheStore#completeTransaction(javax.transaction.Transaction, boolean)
     * completeTransaction} with an argument of true.
     */
-   public void commit(javax.transaction.Transaction tx) throws CacheLoaderException {
+   public void commit(GlobalTransaction tx) throws CacheLoaderException {
       completeTransaction(tx, true);
    }
 
@@ -304,7 +305,7 @@
     * @param commit true to commit false to abort
     * @throws CacheLoaderException if there are problems committing or aborting the transaction
     */
-   protected void completeTransaction(javax.transaction.Transaction tx, boolean commit) throws CacheLoaderException {
+   protected void completeTransaction(GlobalTransaction tx, boolean commit) throws CacheLoaderException {
       Transaction txn = txnMap.remove(tx);
       if (txn != null) {
          if (trace) log.trace("{0} sleepycat transaction {1}", commit ? "committing" : "aborting", txn);

Modified: trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/BdbjeCacheStoreIntegrationTest.java
===================================================================
--- trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/BdbjeCacheStoreIntegrationTest.java	2009-05-13 22:57:00 UTC (rev 286)
+++ trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/BdbjeCacheStoreIntegrationTest.java	2009-05-14 10:04:16 UTC (rev 287)
@@ -1,6 +1,5 @@
 package org.infinispan.loaders.bdbje;
 
-import org.easymock.EasyMock;
 import org.infinispan.container.entries.InternalEntryFactory;
 import org.infinispan.loaders.BaseCacheStoreTest;
 import org.infinispan.loaders.CacheLoaderException;
@@ -10,12 +9,12 @@
 import org.infinispan.loaders.modifications.Remove;
 import org.infinispan.loaders.modifications.Store;
 import org.infinispan.test.TestingUtil;
+import org.infinispan.transaction.xa.GlobalTransaction;
 import org.testng.annotations.AfterTest;
 import org.testng.annotations.BeforeTest;
 import org.testng.annotations.Parameters;
 import org.testng.annotations.Test;
 
-import javax.transaction.Transaction;
 import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
@@ -62,7 +61,7 @@
       mods.add(new Store(InternalEntryFactory.create("k1", "v1")));
       mods.add(new Store(InternalEntryFactory.create("k2", "v2")));
       mods.add(new Remove("k1"));
-      Transaction tx = EasyMock.createNiceMock(Transaction.class);
+      GlobalTransaction tx = new GlobalTransaction(false);
       cs.prepare(mods, tx, false);
       cs.commit(tx);
 
@@ -98,7 +97,7 @@
       mods.add(new Store(InternalEntryFactory.create("k2", "v2")));
       mods.add(new Remove("k1"));
       mods.add(new Remove("old"));
-      Transaction tx = EasyMock.createNiceMock(Transaction.class);
+      GlobalTransaction tx = new GlobalTransaction(false);
       cs.prepare(mods, tx, false);
       cs.rollback(tx);
 

Modified: trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/BdbjeCacheStoreTest.java
===================================================================
--- trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/BdbjeCacheStoreTest.java	2009-05-13 22:57:00 UTC (rev 286)
+++ trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/BdbjeCacheStoreTest.java	2009-05-14 10:04:16 UTC (rev 287)
@@ -17,12 +17,12 @@
 import org.infinispan.loaders.modifications.Store;
 import org.infinispan.marshall.Marshaller;
 import org.infinispan.marshall.TestObjectStreamMarshaller;
+import org.infinispan.transaction.xa.GlobalTransaction;
 import org.infinispan.util.ReflectionUtil;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
-import javax.transaction.Transaction;
 import java.io.File;
 import java.io.IOException;
 import java.io.ObjectInput;
@@ -250,7 +250,7 @@
    @Test
    public void testNoExceptionOnRollback() throws Exception {
       start();
-      Transaction tx = createMock(Transaction.class);
+      GlobalTransaction tx = new GlobalTransaction(false);
       replayAll();
       cs.start();
       cs.rollback(tx);
@@ -291,7 +291,7 @@
       cs.start();
       try {
          txn = currentTransaction.beginTransaction(null);
-         Transaction t = createMock(Transaction.class);
+         GlobalTransaction t = new GlobalTransaction(false);
          cs.prepare(Collections.singletonList(new Store(InternalEntryFactory.create("k", "v"))), t, false);
          cs.commit(t);
          assert false : "should have gotten an exception";
@@ -313,7 +313,8 @@
       replayAll();
       cs.start();
       try {
-         cs.prepare(Collections.singletonList(new Store(InternalEntryFactory.create("k", "v"))), createMock(Transaction.class), false);
+         GlobalTransaction tx = new GlobalTransaction(false);
+         cs.prepare(Collections.singletonList(new Store(InternalEntryFactory.create("k", "v"))), tx, false);
          assert false : "should have gotten an exception";
       } catch (CacheLoaderException e) {
          assert ex.equals(e.getCause());

Modified: trunk/core/src/main/java/org/infinispan/interceptors/CacheStoreInterceptor.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/interceptors/CacheStoreInterceptor.java	2009-05-13 22:57:00 UTC (rev 286)
+++ trunk/core/src/main/java/org/infinispan/interceptors/CacheStoreInterceptor.java	2009-05-14 10:04:16 UTC (rev 287)
@@ -53,7 +53,6 @@
 import org.infinispan.transaction.xa.GlobalTransaction;
 import org.infinispan.util.logging.LogFactory;
 
-import javax.transaction.Transaction;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -72,8 +71,8 @@
  */
 public class CacheStoreInterceptor extends JmxStatsCommandInterceptor {
    private CacheLoaderManagerConfig loaderConfig = null;
-   private HashMap<Transaction, Integer> txStores = new HashMap<Transaction, Integer>();
-   private Map<Transaction, Set<Object>> preparingTxs = new ConcurrentHashMap<Transaction, Set<Object>>();
+   private HashMap<GlobalTransaction, Integer> txStores = new HashMap<GlobalTransaction, Integer>();
+   private Map<GlobalTransaction, Set<Object>> preparingTxs = new ConcurrentHashMap<GlobalTransaction, Set<Object>>();
    private final AtomicLong cacheStores = new AtomicLong(0);
    CacheStore store;
    private CacheLoaderManager loaderManager;
@@ -114,7 +113,7 @@
       if (!skip(ctx, command)) {
          if (ctx.hasModifications()) {
             // this is a commit call.
-            Transaction tx = ctx.getRunningTransaction();
+            GlobalTransaction tx = ctx.getGlobalTransaction();
             log.trace("Calling loader.commit() for transaction {0}", tx);
             try {
                store.commit(tx);
@@ -143,7 +142,7 @@
       if (!skip(ctx, command)) {
          if (trace) log.trace("transactional so don't put stuff in the cloader yet.");
          if (ctx.hasModifications()) {
-            Transaction tx = ctx.getRunningTransaction();
+            GlobalTransaction tx = ctx.getGlobalTransaction();
             // this is a rollback method
             if (preparingTxs.containsKey(tx)) {
                preparingTxs.remove(tx);
@@ -245,7 +244,7 @@
       log.trace("Converted method calls to cache loader modifications.  List size: {0}", numMods);
 
       if (numMods > 0) {
-         Transaction tx = transactionContext.getRunningTransaction();
+         GlobalTransaction tx = transactionContext.getGlobalTransaction();
          store.prepare(modsBuilder.modifications, tx, onePhase);
 
          preparingTxs.put(tx, modsBuilder.affectedKeys);

Modified: trunk/core/src/main/java/org/infinispan/interceptors/TxInterceptor.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/interceptors/TxInterceptor.java	2009-05-13 22:57:00 UTC (rev 286)
+++ trunk/core/src/main/java/org/infinispan/interceptors/TxInterceptor.java	2009-05-14 10:04:16 UTC (rev 287)
@@ -75,27 +75,39 @@
             }
          }
       }
+      //if it is remote and 2PC then first log the tx only after replying mods
+      //(TxInterceptor line 338)
       if (!command.isOnePhaseCommit()) {
          transactionLog.logPrepare(command);
-      } else {
-         transactionLog.logOnePhaseCommit(ctx.getGlobalTransaction(), Arrays.asList(command.getModifications()));
       }
       if (getStatisticsEnabled()) prepares.incrementAndGet();
-      return invokeNextInterceptor(ctx, command);
+      try {
+         return invokeNextInterceptor(ctx, command);
+      } finally {
+         if (command.isOnePhaseCommit()) {
+            transactionLog.logOnePhaseCommit(ctx.getGlobalTransaction(), Arrays.asList(command.getModifications()));
+         }
+      }
    }
 
    @Override
    public Object visitCommitCommand(TxInvocationContext ctx, CommitCommand command) throws Throwable {
       if (getStatisticsEnabled()) commits.incrementAndGet();
-      transactionLog.logCommit(command.getGlobalTransaction());
-      return invokeNextInterceptor(ctx, command);
+      try {
+         return invokeNextInterceptor(ctx, command);
+      } finally {
+         transactionLog.logCommit(command.getGlobalTransaction());
+      }
    }
 
    @Override
    public Object visitRollbackCommand(TxInvocationContext ctx, RollbackCommand command) throws Throwable {
       if (getStatisticsEnabled()) rollbacks.incrementAndGet();
-      transactionLog.rollback(command.getGlobalTransaction());
-      return invokeNextInterceptor(ctx, command);
+      try {
+         return invokeNextInterceptor(ctx, command);
+      } finally {
+         transactionLog.rollback(command.getGlobalTransaction());
+      }
    }
 
    @Override

Modified: trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheStore.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheStore.java	2009-05-13 22:57:00 UTC (rev 286)
+++ trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheStore.java	2009-05-14 10:04:16 UTC (rev 287)
@@ -1,6 +1,7 @@
 package org.infinispan.loaders;
 
 import org.infinispan.Cache;
+import org.infinispan.transaction.xa.GlobalTransaction;
 import org.infinispan.loaders.modifications.Modification;
 import org.infinispan.loaders.modifications.Remove;
 import org.infinispan.loaders.modifications.Store;
@@ -9,7 +10,6 @@
 import org.infinispan.util.logging.Log;
 import org.infinispan.util.logging.LogFactory;
 
-import javax.transaction.Transaction;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.List;
@@ -27,7 +27,7 @@
  */
 public abstract class AbstractCacheStore extends AbstractCacheLoader implements CacheStore {
 
-   private final Map<Transaction, List<? extends Modification>> transactions = new ConcurrentHashMap<Transaction, List<? extends Modification>>();
+   private final Map<GlobalTransaction, List<? extends Modification>> transactions = new ConcurrentHashMap<GlobalTransaction, List<? extends Modification>>();
 
    private static Log log = LogFactory.getLog(AbstractCacheStore.class);
 
@@ -93,7 +93,7 @@
       }
    }
 
-   public void prepare(List<? extends Modification> mods, Transaction tx, boolean isOnePhase) throws CacheLoaderException {
+   public void prepare(List<? extends Modification> mods, GlobalTransaction tx, boolean isOnePhase) throws CacheLoaderException {
       if (isOnePhase) {
          applyModifications(mods);
       } else {
@@ -101,11 +101,11 @@
       }
    }
 
-   public void rollback(Transaction tx) {
+   public void rollback(GlobalTransaction tx) {
       transactions.remove(tx);
    }
 
-   public void commit(Transaction tx) throws CacheLoaderException {
+   public void commit(GlobalTransaction tx) throws CacheLoaderException {
       List<? extends Modification> list = transactions.remove(tx);
       if (list != null && !list.isEmpty()) applyModifications(list);
    }

Modified: trunk/core/src/main/java/org/infinispan/loaders/CacheStore.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loaders/CacheStore.java	2009-05-13 22:57:00 UTC (rev 286)
+++ trunk/core/src/main/java/org/infinispan/loaders/CacheStore.java	2009-05-14 10:04:16 UTC (rev 287)
@@ -2,8 +2,8 @@
 
 import org.infinispan.container.entries.InternalCacheEntry;
 import org.infinispan.loaders.modifications.Modification;
+import org.infinispan.transaction.xa.GlobalTransaction;
 
-import javax.transaction.Transaction;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
 import java.util.List;
@@ -111,40 +111,40 @@
     *                      immediately
     * @throws CacheLoaderException in the event of problems writing to the store
     */
-   void prepare(List<? extends Modification> modifications, Transaction tx, boolean isOnePhase) throws CacheLoaderException;
+   void prepare(List<? extends Modification> modifications, GlobalTransaction tx, boolean isOnePhase) throws CacheLoaderException;
 
    /**
     * Commits a transaction that has been previously prepared.
     * <p/>
     * This method <i>may</b> be invoked on a transaction for which there is <i>no</i> prior {@link
-    * #prepare(java.util.List, javax.transaction.Transaction, boolean)}.  The implementation would need to deal with
+    * #prepare(java.util.List}.  The implementation would need to deal with
     * this case acordingly.  Typically, this would be a no-op, after ensuring any resources attached to the transaction
     * are cleared up.
     * <p/>
     * Also note that this method <i>may</i> be invoked on a thread which is different from the {@link
-    * #prepare(java.util.List, javax.transaction.Transaction, boolean)} invocation.  As such, {@link ThreadLocal}s
+    * #prepare(java.util.List} invocation.  As such, {@link ThreadLocal}s
     * should not be relied upon to maintain transaction context.
     * <p/>
     *
     * @param tx tx to commit
     * @throws CacheLoaderException in the event of problems writing to the store
     */
-   void commit(Transaction tx) throws CacheLoaderException;
+   void commit(GlobalTransaction tx) throws CacheLoaderException;
 
    /**
     * Rolls back a transaction that has been previously prepared
     * <p/>
     * This method <i>may</b> be invoked on a transaction for which there is <i>no</i> prior {@link
-    * #prepare(java.util.List, javax.transaction.Transaction, boolean)}.  The implementation would need to deal with
+    * #prepare(java.util.List}.  The implementation would need to deal with
     * this case acordingly.  Typically, this would be a no-op, after ensuring any resources attached to the transaction
     * are cleared up.
     * <p/>
     * Also note that this method <i>may</i> be invoked on a thread which is different from the {@link
-    * #prepare(java.util.List, javax.transaction.Transaction, boolean)} invocation.  As such, {@link ThreadLocal}s
+    * #prepare(java.util.List} invocation.  As such, {@link ThreadLocal}s
     * should not be relied upon to maintain transaction context.
     * <p/>
     *
     * @param tx tx to roll back
     */
-   void rollback(Transaction tx);
+   void rollback(GlobalTransaction tx);
 }

Modified: trunk/core/src/main/java/org/infinispan/loaders/decorators/AbstractDelegatingStore.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loaders/decorators/AbstractDelegatingStore.java	2009-05-13 22:57:00 UTC (rev 286)
+++ trunk/core/src/main/java/org/infinispan/loaders/decorators/AbstractDelegatingStore.java	2009-05-14 10:04:16 UTC (rev 287)
@@ -1,6 +1,7 @@
 package org.infinispan.loaders.decorators;
 
 import org.infinispan.Cache;
+import org.infinispan.transaction.xa.GlobalTransaction;
 import org.infinispan.container.entries.InternalCacheEntry;
 import org.infinispan.loaders.CacheLoaderConfig;
 import org.infinispan.loaders.CacheLoaderException;
@@ -8,7 +9,6 @@
 import org.infinispan.loaders.modifications.Modification;
 import org.infinispan.marshall.Marshaller;
 
-import javax.transaction.Transaction;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
 import java.util.List;
@@ -65,15 +65,15 @@
       delegate.purgeExpired();
    }
 
-   public void commit(Transaction tx) throws CacheLoaderException {
+   public void commit(GlobalTransaction tx) throws CacheLoaderException {
       delegate.commit(tx);
    }
 
-   public void rollback(Transaction tx) {
+   public void rollback(GlobalTransaction tx) {
       delegate.rollback(tx);
    }
 
-   public void prepare(List<? extends Modification> list, Transaction tx, boolean isOnePhase) throws CacheLoaderException {
+   public void prepare(List<? extends Modification> list, GlobalTransaction tx, boolean isOnePhase) throws CacheLoaderException {
       delegate.prepare(list, tx, isOnePhase);
    }
 

Modified: trunk/core/src/main/java/org/infinispan/loaders/decorators/ChainingCacheStore.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loaders/decorators/ChainingCacheStore.java	2009-05-13 22:57:00 UTC (rev 286)
+++ trunk/core/src/main/java/org/infinispan/loaders/decorators/ChainingCacheStore.java	2009-05-14 10:04:16 UTC (rev 287)
@@ -1,6 +1,7 @@
 package org.infinispan.loaders.decorators;
 
 import org.infinispan.Cache;
+import org.infinispan.transaction.xa.GlobalTransaction;
 import org.infinispan.container.entries.InternalCacheEntry;
 import org.infinispan.loaders.CacheLoader;
 import org.infinispan.loaders.CacheLoaderConfig;
@@ -10,7 +11,6 @@
 import org.infinispan.loaders.modifications.Modification;
 import org.infinispan.marshall.Marshaller;
 
-import javax.transaction.Transaction;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
 import java.util.HashSet;
@@ -82,15 +82,15 @@
       for (CacheStore s : stores.keySet()) s.purgeExpired();
    }
 
-   public void commit(Transaction tx) throws CacheLoaderException {
+   public void commit(GlobalTransaction tx) throws CacheLoaderException {
       for (CacheStore s : stores.keySet()) s.commit(tx);
    }
 
-   public void rollback(Transaction tx) {
+   public void rollback(GlobalTransaction tx) {
       for (CacheStore s : stores.keySet()) s.rollback(tx);
    }
 
-   public void prepare(List<? extends Modification> list, Transaction tx, boolean isOnePhase) throws CacheLoaderException {
+   public void prepare(List<? extends Modification> list, GlobalTransaction tx, boolean isOnePhase) throws CacheLoaderException {
       for (CacheStore s : stores.keySet()) s.prepare(list, tx, isOnePhase);
    }
 

Modified: trunk/core/src/main/java/org/infinispan/loaders/decorators/ReadOnlyStore.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loaders/decorators/ReadOnlyStore.java	2009-05-13 22:57:00 UTC (rev 286)
+++ trunk/core/src/main/java/org/infinispan/loaders/decorators/ReadOnlyStore.java	2009-05-14 10:04:16 UTC (rev 287)
@@ -3,8 +3,8 @@
 import org.infinispan.container.entries.InternalCacheEntry;
 import org.infinispan.loaders.CacheStore;
 import org.infinispan.loaders.modifications.Modification;
+import org.infinispan.transaction.xa.GlobalTransaction;
 
-import javax.transaction.Transaction;
 import java.io.ObjectInput;
 import java.util.List;
 
@@ -47,17 +47,17 @@
    }
 
    @Override
-   public void commit(Transaction tx) {
+   public void commit(GlobalTransaction tx) {
       // no-op
    }
 
    @Override
-   public void rollback(Transaction tx) {
+   public void rollback(GlobalTransaction tx) {
       // no-op
    }
 
    @Override
-   public void prepare(List<? extends Modification> list, Transaction tx, boolean isOnePhase) {
+   public void prepare(List<? extends Modification> list, GlobalTransaction tx, boolean isOnePhase) {
       // no-op
    }
 }

Modified: trunk/core/src/main/java/org/infinispan/loaders/decorators/SingletonStore.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loaders/decorators/SingletonStore.java	2009-05-13 22:57:00 UTC (rev 286)
+++ trunk/core/src/main/java/org/infinispan/loaders/decorators/SingletonStore.java	2009-05-14 10:04:16 UTC (rev 287)
@@ -1,6 +1,7 @@
 package org.infinispan.loaders.decorators;
 
 import org.infinispan.Cache;
+import org.infinispan.transaction.xa.GlobalTransaction;
 import org.infinispan.container.DataContainer;
 import org.infinispan.container.entries.InternalCacheEntry;
 import org.infinispan.loaders.CacheLoaderException;
@@ -16,7 +17,6 @@
 import org.infinispan.util.logging.Log;
 import org.infinispan.util.logging.LogFactory;
 
-import javax.transaction.Transaction;
 import java.io.ObjectInput;
 import java.util.List;
 import java.util.Set;
@@ -132,17 +132,17 @@
    }
 
    @Override
-   public void commit(Transaction tx) throws CacheLoaderException {
+   public void commit(GlobalTransaction tx) throws CacheLoaderException {
       if (active) super.commit(tx);
    }
 
    @Override
-   public void rollback(Transaction tx) {
+   public void rollback(GlobalTransaction tx) {
       if (active) super.rollback(tx);
    }
 
    @Override
-   public void prepare(List<? extends Modification> list, Transaction tx, boolean isOnePhase) throws CacheLoaderException {
+   public void prepare(List<? extends Modification> list, GlobalTransaction tx, boolean isOnePhase) throws CacheLoaderException {
       if (active) super.prepare(list, tx, isOnePhase);
    }
 

Modified: trunk/core/src/main/java/org/infinispan/statetransfer/StateTransferManagerImpl.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/statetransfer/StateTransferManagerImpl.java	2009-05-13 22:57:00 UTC (rev 286)
+++ trunk/core/src/main/java/org/infinispan/statetransfer/StateTransferManagerImpl.java	2009-05-14 10:04:16 UTC (rev 287)
@@ -30,6 +30,7 @@
 import org.infinispan.container.DataContainer;
 import org.infinispan.container.entries.InternalCacheEntry;
 import org.infinispan.context.Flag;
+import org.infinispan.context.InvocationContext;
 import org.infinispan.context.InvocationContextContainer;
 import org.infinispan.context.impl.RemoteTxInvocationContext;
 import org.infinispan.factories.annotations.Inject;
@@ -218,11 +219,9 @@
    private void processCommitLog(ObjectInput oi) throws Exception {
       if (trace) log.trace("Applying commit log");
       Object object = marshaller.objectFromObjectStream(oi);
-      RemoteTxInvocationContext ctx = invocationContextContainer.createRemoteTxInvocationContext();
       while (object instanceof TransactionLog.LogEntry) {
          TransactionLog.LogEntry logEntry = (TransactionLog.LogEntry) object;
-         RemoteTransaction remoteTransaction = txTable.getRemoteTransaction(logEntry.getTransaction());
-         ctx.setRemoteTransaction(remoteTransaction);
+         InvocationContext ctx = invocationContextContainer.createRemoteInvocationContext();
          WriteCommand[] mods = logEntry.getModifications();
          if (trace) log.trace("Mods = {0}", Arrays.toString(mods));
          for (WriteCommand mod : mods) {

Modified: trunk/core/src/test/java/org/infinispan/loaders/BaseCacheStoreTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/loaders/BaseCacheStoreTest.java	2009-05-13 22:57:00 UTC (rev 286)
+++ trunk/core/src/test/java/org/infinispan/loaders/BaseCacheStoreTest.java	2009-05-14 10:04:16 UTC (rev 287)
@@ -12,12 +12,12 @@
 import org.infinispan.loaders.modifications.Store;
 import org.infinispan.marshall.Marshaller;
 import org.infinispan.marshall.TestObjectStreamMarshaller;
+import org.infinispan.transaction.xa.GlobalTransaction;
 import org.infinispan.util.Util;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
-import javax.transaction.Transaction;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
@@ -204,7 +204,7 @@
       mods.add(new Store(InternalEntryFactory.create("k1", "v1")));
       mods.add(new Store(InternalEntryFactory.create("k2", "v2")));
       mods.add(new Remove("k1"));
-      Transaction tx = EasyMock.createNiceMock(Transaction.class);
+      GlobalTransaction tx = new GlobalTransaction(true);
       cs.prepare(mods, tx, true);
 
       assert cs.load("k2").getValue().equals("v2");
@@ -229,7 +229,7 @@
       mods.add(new Store(InternalEntryFactory.create("k1", "v1")));
       mods.add(new Store(InternalEntryFactory.create("k2", "v2")));
       mods.add(new Remove("k1"));
-      Transaction tx = EasyMock.createNiceMock(Transaction.class);
+      GlobalTransaction tx = new GlobalTransaction(false);
       cs.prepare(mods, tx, false);
 
       assert !cs.containsKey("k1");
@@ -271,7 +271,7 @@
       mods.add(new Store(InternalEntryFactory.create("k2", "v2")));
       mods.add(new Remove("k1"));
       mods.add(new Remove("old"));
-      Transaction tx = EasyMock.createNiceMock(Transaction.class);
+      GlobalTransaction tx = new GlobalTransaction(false);
       cs.prepare(mods, tx, false);
 
       assert !cs.containsKey("k1");
@@ -313,7 +313,7 @@
       mods.add(new Store(InternalEntryFactory.create("k2", "v2")));
       mods.add(new Remove("k1"));
       mods.add(new Remove("old"));
-      final Transaction tx = EasyMock.createNiceMock(Transaction.class);
+      final GlobalTransaction tx = new GlobalTransaction(false);
       cs.prepare(mods, tx, false);
 
       Thread t = new Thread(new Runnable() {
@@ -353,7 +353,7 @@
 
    public void testCommitAndRollbackWithoutPrepare() throws CacheLoaderException {
       cs.store(InternalEntryFactory.create("old", "old"));
-      Transaction tx = EasyMock.createNiceMock(Transaction.class);
+      GlobalTransaction tx = new GlobalTransaction(false);
       cs.commit(tx);
       cs.store(InternalEntryFactory.create("old", "old"));
       cs.rollback(tx);

Modified: trunk/core/src/test/java/org/infinispan/loaders/decorators/ChainingCacheLoaderTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/loaders/decorators/ChainingCacheLoaderTest.java	2009-05-13 22:57:00 UTC (rev 286)
+++ trunk/core/src/test/java/org/infinispan/loaders/decorators/ChainingCacheLoaderTest.java	2009-05-14 10:04:16 UTC (rev 287)
@@ -1,6 +1,5 @@
 package org.infinispan.loaders.decorators;
 
-import org.easymock.EasyMock;
 import org.infinispan.container.entries.InternalCacheEntry;
 import org.infinispan.container.entries.InternalEntryFactory;
 import org.infinispan.io.UnclosableObjectInputStream;
@@ -15,10 +14,10 @@
 import org.infinispan.loaders.modifications.Remove;
 import org.infinispan.loaders.modifications.Store;
 import org.infinispan.marshall.TestObjectStreamMarshaller;
+import org.infinispan.transaction.xa.GlobalTransaction;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.Test;
 
-import javax.transaction.Transaction;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
@@ -170,7 +169,7 @@
       list.add(new Store(InternalEntryFactory.create("k5", "v5", lifespan)));
       list.add(new Store(InternalEntryFactory.create("k6", "v6")));
       list.add(new Remove("k6"));
-      Transaction t = EasyMock.createNiceMock(Transaction.class);
+      GlobalTransaction t = new GlobalTransaction(false);
       cs.prepare(list, t, true);
 
       CacheStore[] allStores = new CacheStore[]{cs, store1, store2}; // for iteration
@@ -205,8 +204,8 @@
       list.add(new Store(InternalEntryFactory.create("k5", "v5", lifespan)));
       list.add(new Store(InternalEntryFactory.create("k6", "v6")));
       list.add(new Remove("k6"));
-      Transaction t = EasyMock.createNiceMock(Transaction.class);
-      cs.prepare(list, t, false);
+      GlobalTransaction tx = new GlobalTransaction(false);
+      cs.prepare(list, tx, false);
 
       CacheStore[] allStores = new CacheStore[]{cs, store1, store2}; // for iteration
 
@@ -214,7 +213,7 @@
          for (CacheStore s : allStores) assert !s.containsKey("k" + i);
       }
 
-      cs.commit(t);
+      cs.commit(tx);
 
       for (int i = 1; i < 7; i++) {
          if (i < 4 || i == 6) {

Modified: trunk/core/src/test/java/org/infinispan/statetransfer/StateTransferCacheLoaderFunctionalTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/statetransfer/StateTransferCacheLoaderFunctionalTest.java	2009-05-13 22:57:00 UTC (rev 286)
+++ trunk/core/src/test/java/org/infinispan/statetransfer/StateTransferCacheLoaderFunctionalTest.java	2009-05-14 10:04:16 UTC (rev 287)
@@ -10,7 +10,7 @@
 import org.infinispan.test.TestingUtil;
 import org.testng.annotations.Test;
 
- at Test(groups = "functional", testName = "statetransfer.StateTransferCacheLoaderFunctionalTest", enabled = false)
+ at Test(groups = "functional", testName = "statetransfer.StateTransferCacheLoaderFunctionalTest")
 public class StateTransferCacheLoaderFunctionalTest extends StateTransferFunctionalTest {
    int id;
    ThreadLocal<Boolean> sharedCacheLoader = new ThreadLocal<Boolean>() {

Modified: trunk/core/src/test/java/org/infinispan/statetransfer/StateTransferFunctionalTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/statetransfer/StateTransferFunctionalTest.java	2009-05-13 22:57:00 UTC (rev 286)
+++ trunk/core/src/test/java/org/infinispan/statetransfer/StateTransferFunctionalTest.java	2009-05-14 10:04:16 UTC (rev 287)
@@ -16,7 +16,7 @@
 import java.io.ObjectOutputStream;
 import java.io.Serializable;
 
- at Test(groups = "functional", testName = "statetransfer.StateTransferFunctionalTest", enabled = false)
+ at Test(groups = "functional", testName = "statetransfer.StateTransferFunctionalTest", invocationCount = 1)
 public class StateTransferFunctionalTest extends MultipleCacheManagersTest {
 
    protected static final String ADDRESS_CLASSNAME = Address.class.getName();




More information about the infinispan-commits mailing list