[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