[infinispan-commits] Infinispan SVN: r323 - in trunk/core/src: main/java/org/infinispan/commands and 2 other directories.
infinispan-commits at lists.jboss.org
infinispan-commits at lists.jboss.org
Wed May 20 08:46:53 EDT 2009
Author: vblagojevic at jboss.com
Date: 2009-05-20 08:46:52 -0400 (Wed, 20 May 2009)
New Revision: 323
Modified:
trunk/core/src/main/java/org/infinispan/AbstractDelegatingAdvancedCache.java
trunk/core/src/main/java/org/infinispan/AdvancedCache.java
trunk/core/src/main/java/org/infinispan/CacheDelegate.java
trunk/core/src/main/java/org/infinispan/commands/CommandsFactory.java
trunk/core/src/main/java/org/infinispan/commands/CommandsFactoryImpl.java
trunk/core/src/main/java/org/infinispan/commands/LockControlCommand.java
trunk/core/src/main/java/org/infinispan/interceptors/LockingInterceptor.java
trunk/core/src/test/java/org/infinispan/replication/SyncReplLockingTest.java
Log:
[ISPN-48] - Introduce lock() and unlock() API methods
remove unlock()
Modified: trunk/core/src/main/java/org/infinispan/AbstractDelegatingAdvancedCache.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/AbstractDelegatingAdvancedCache.java 2009-05-19 16:59:52 UTC (rev 322)
+++ trunk/core/src/main/java/org/infinispan/AbstractDelegatingAdvancedCache.java 2009-05-20 12:46:52 UTC (rev 323)
@@ -265,12 +265,4 @@
public void lock(Collection<? extends K> keys) {
cache.lock(keys);
}
-
- public void unlock(K key) {
- cache.unlock(key);
- }
-
- public void unlock(Collection<? extends K> keys) {
- cache.unlock(keys);
- }
}
Modified: trunk/core/src/main/java/org/infinispan/AdvancedCache.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/AdvancedCache.java 2009-05-19 16:59:52 UTC (rev 322)
+++ trunk/core/src/main/java/org/infinispan/AdvancedCache.java 2009-05-20 12:46:52 UTC (rev 323)
@@ -87,10 +87,6 @@
void lock(Collection<? extends K> keys);
- void unlock(K key);
-
- void unlock(Collection<? extends K> keys);
-
RpcManager getRpcManager();
BatchContainer getBatchContainer();
Modified: trunk/core/src/main/java/org/infinispan/CacheDelegate.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/CacheDelegate.java 2009-05-19 16:59:52 UTC (rev 322)
+++ trunk/core/src/main/java/org/infinispan/CacheDelegate.java 2009-05-20 12:46:52 UTC (rev 323)
@@ -236,23 +236,10 @@
public void lock(Collection<? extends K> keys) {
if (keys == null || keys.isEmpty())
throw new IllegalArgumentException("Cannot lock empty list of keys");
- LockControlCommand command = commandsFactory.buildLockControlCommand(keys, true);
+ LockControlCommand command = commandsFactory.buildLockControlCommand(keys);
invoker.invoke(getInvocationContext(), command);
}
- public void unlock(K key) {
- if (key == null)
- throw new IllegalArgumentException("Cannot unlock null key");
- unlock(Collections.singletonList(key));
- }
-
- public void unlock(Collection<? extends K> keys) {
- if (keys == null || keys.isEmpty())
- throw new IllegalArgumentException("Cannot unlock empty list of keys");
- LockControlCommand command = commandsFactory.buildLockControlCommand(keys, false);
- invoker.invoke(getInvocationContext(), command);
- }
-
public void start() {
componentRegistry.start();
defaultLifespan = config.getExpirationLifespan();
Modified: trunk/core/src/main/java/org/infinispan/commands/CommandsFactory.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/CommandsFactory.java 2009-05-19 16:59:52 UTC (rev 322)
+++ trunk/core/src/main/java/org/infinispan/commands/CommandsFactory.java 2009-05-20 12:46:52 UTC (rev 323)
@@ -99,5 +99,5 @@
ClusteredGetCommand buildClusteredGetCommand(Object key);
- LockControlCommand buildLockControlCommand(Collection keys, boolean lock);
+ LockControlCommand buildLockControlCommand(Collection keys);
}
Modified: trunk/core/src/main/java/org/infinispan/commands/CommandsFactoryImpl.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/CommandsFactoryImpl.java 2009-05-19 16:59:52 UTC (rev 322)
+++ trunk/core/src/main/java/org/infinispan/commands/CommandsFactoryImpl.java 2009-05-20 12:46:52 UTC (rev 323)
@@ -237,7 +237,7 @@
}
}
- public LockControlCommand buildLockControlCommand(Collection keys, boolean lock) {
- return new LockControlCommand(keys, cacheName, lock);
+ public LockControlCommand buildLockControlCommand(Collection keys) {
+ return new LockControlCommand(keys, cacheName);
}
}
Modified: trunk/core/src/main/java/org/infinispan/commands/LockControlCommand.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/LockControlCommand.java 2009-05-19 16:59:52 UTC (rev 322)
+++ trunk/core/src/main/java/org/infinispan/commands/LockControlCommand.java 2009-05-20 12:46:52 UTC (rev 323)
@@ -38,16 +38,13 @@
public class LockControlCommand extends AbstractTransactionBoundaryCommand {
public static final int COMMAND_ID = 3;
private Collection keys;
- private boolean lock;
-
public LockControlCommand() {
}
- public LockControlCommand(Collection keys, String cacheName, boolean lock) {
+ public LockControlCommand(Collection keys, String cacheName) {
this.cacheName = cacheName;
this.keys = keys;
- this.lock = lock;
}
public void attachGlobalTransaction(GlobalTransaction gtx) {
@@ -58,14 +55,6 @@
return keys;
}
- public boolean isLock() {
- return lock;
- }
-
- public boolean isUnlock() {
- return !isLock();
- }
-
@Override
public Object perform(InvocationContext ignored) throws Throwable {
if (ignored != null)
@@ -92,7 +81,7 @@
}
public Object[] getParameters() {
- return new Object[]{globalTx, cacheName, keys, lock};
+ return new Object[]{globalTx, cacheName, keys};
}
public void setParameters(int commandId, Object[] args) {
@@ -101,7 +90,6 @@
globalTx = (GlobalTransaction) args[0];
cacheName = (String) args[1];
keys = (Collection) args[2];
- lock = (Boolean) args[3];
}
public boolean equals(Object o) {
@@ -118,9 +106,7 @@
public int hashCode() {
int result = super.hashCode();
- result = 31 * result + (keys != null ? keys.hashCode() : 0);
- result = 31 * result + (lock ? 1 : 0);
- return result;
+ return 31 * result + (keys != null ? keys.hashCode() : 0);
}
@Override
@@ -128,7 +114,6 @@
return "LockControlCommand{" +
"gtx=" + globalTx +
", cacheName='" + cacheName +
- ", lock=" + lock +
", keys=" + keys + '}';
}
}
Modified: trunk/core/src/main/java/org/infinispan/interceptors/LockingInterceptor.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/interceptors/LockingInterceptor.java 2009-05-19 16:59:52 UTC (rev 322)
+++ trunk/core/src/main/java/org/infinispan/interceptors/LockingInterceptor.java 2009-05-20 12:46:52 UTC (rev 323)
@@ -142,16 +142,8 @@
if (ctx.isOriginLocal() && ctx.isInTxScope()) {
c.attachGlobalTransaction((GlobalTransaction) ctx.getLockOwner());
}
- if (c.isLock()) {
- for (Object key : c.getKeys()) {
- entryFactory.wrapEntryForWriting(ctx, key, true, false, false, false);
- }
- } else if (c.isUnlock()) {
- for (Object key : c.getKeys()) {
- entryFactory.releaseLock(key);
- if (trace)
- log.trace("Unlocked key " + key);
- }
+ for (Object key : c.getKeys()) {
+ entryFactory.wrapEntryForWriting(ctx, key, true, false, false, false);
}
return invokeNextInterceptor(ctx, c);
} finally {
Modified: trunk/core/src/test/java/org/infinispan/replication/SyncReplLockingTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/replication/SyncReplLockingTest.java 2009-05-19 16:59:52 UTC (rev 322)
+++ trunk/core/src/test/java/org/infinispan/replication/SyncReplLockingTest.java 2009-05-20 12:46:52 UTC (rev 323)
@@ -34,7 +34,6 @@
import org.infinispan.test.MultipleCacheManagersTest;
import org.infinispan.test.TestingUtil;
import org.infinispan.transaction.lookup.DummyTransactionManagerLookup;
-import org.infinispan.util.concurrent.locks.LockManager;
import org.testng.annotations.Test;
/**
@@ -61,12 +60,7 @@
cache1 = manager(0).getCache("replSync");
cache2 = manager(1).getCache("replSync");
}
-
- public void testLockingWithExplicitUnlock() throws Exception {
- lockingWithExplicitUnlockHelper(false);
- lockingWithExplicitUnlockHelper(true);
- }
-
+
public void testLocksReleasedWithoutExplicitUnlock() throws Exception {
locksReleasedWithoutExplicitUnlockHelper(false,false);
locksReleasedWithoutExplicitUnlockHelper(true,false);
@@ -98,8 +92,6 @@
//do a dummy read
cache1.get(k);
-
- cache1.getAdvancedCache().unlock(k);
mgr.commit();
assertNoLocks(cache1);
@@ -108,35 +100,7 @@
//TODO fails since assert cache1.isEmpty() is false because lock() creates an entry in data container
//cleanup();
}
-
- private void lockingWithExplicitUnlockHelper(boolean lockPriorToPut) throws Exception {
- assertClusterSize("Should only be 2 caches in the cluster!!!", 2);
-
- assertNull("Should be null", cache1.get(k));
- assertNull("Should be null", cache2.get(k));
-
- String name = "Vladimir";
- TransactionManager mgr = TestingUtil.getTransactionManager(cache1);
- mgr.begin();
- if (lockPriorToPut)
- cache1.getAdvancedCache().lock(k);
-
- cache1.put(k, v);
-
- cache1.put(k, name);
- if (!lockPriorToPut)
- cache1.getAdvancedCache().lock(k);
-
- cache1.getAdvancedCache().unlock(k);
- mgr.commit();
-
- assertEquals(name, cache1.get(k));
- assertEquals("Should have replicated", name, cache2.get(k));
-
- cache2.remove(k);
- cleanup();
- }
-
+
private void concurrentLockingHelper(final boolean sameNode, final boolean useTx)
throws Exception {
assertClusterSize("Should only be 2 caches in the cluster!!!", 2);
More information about the infinispan-commits
mailing list