[infinispan-commits] Infinispan SVN: r254 - trunk/core/src/main/java/org/infinispan/interceptors.
infinispan-commits at lists.jboss.org
infinispan-commits at lists.jboss.org
Tue May 12 05:13:12 EDT 2009
Author: vblagojevic at jboss.com
Date: 2009-05-12 05:13:12 -0400 (Tue, 12 May 2009)
New Revision: 254
Modified:
trunk/core/src/main/java/org/infinispan/interceptors/LockingInterceptor.java
trunk/core/src/main/java/org/infinispan/interceptors/ReplicationInterceptor.java
Log:
[ISPN-48] - Introduce lock() and unlock() API methods
work in progress
Modified: trunk/core/src/main/java/org/infinispan/interceptors/LockingInterceptor.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/interceptors/LockingInterceptor.java 2009-05-12 08:42:40 UTC (rev 253)
+++ trunk/core/src/main/java/org/infinispan/interceptors/LockingInterceptor.java 2009-05-12 09:13:12 UTC (rev 254)
@@ -21,6 +21,7 @@
*/
package org.infinispan.interceptors;
+import org.infinispan.commands.LockControlCommand;
import org.infinispan.commands.read.GetKeyValueCommand;
import org.infinispan.commands.read.SizeCommand;
import org.infinispan.commands.tx.CommitCommand;
@@ -133,6 +134,22 @@
doAfterCall(ctx);
}
}
+
+ @Override
+ public Object visitLockControlCommand(InvocationContext ctx, LockControlCommand c) throws Throwable {
+ try {
+ if (c.isLock()) {
+ for (Object key : c.getKeys())
+ entryFactory.acquireLock(ctx, key);
+ } else if (c.isUnlock()) {
+ for (Object key : c.getKeys())
+ entryFactory.releaseLock(key);
+ }
+ return invokeNextInterceptor(ctx, c);
+ } finally {
+ doAfterCall(ctx);
+ }
+ }
// write commands
Modified: trunk/core/src/main/java/org/infinispan/interceptors/ReplicationInterceptor.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/interceptors/ReplicationInterceptor.java 2009-05-12 08:42:40 UTC (rev 253)
+++ trunk/core/src/main/java/org/infinispan/interceptors/ReplicationInterceptor.java 2009-05-12 09:13:12 UTC (rev 254)
@@ -21,6 +21,7 @@
*/
package org.infinispan.interceptors;
+import org.infinispan.commands.LockControlCommand;
import org.infinispan.commands.tx.CommitCommand;
import org.infinispan.commands.tx.PrepareCommand;
import org.infinispan.commands.tx.RollbackCommand;
@@ -64,6 +65,16 @@
}
@Override
+ public Object visitLockControlCommand(InvocationContext ctx, LockControlCommand command) throws Throwable {
+ Object retVal = invokeNextInterceptor(ctx, command);
+ if (ctx.isOriginLocal()) {
+ rpcManager.broadcastRpcCommand(command, true, false);
+ }
+ return retVal;
+ }
+
+
+ @Override
public Object visitRollbackCommand(TxInvocationContext ctx, RollbackCommand command) throws Throwable {
if (ctx.isOriginLocal() && !configuration.isOnePhaseCommit()) {
rpcManager.broadcastRpcCommand(command, configuration.isSyncRollbackPhase(), true);
More information about the infinispan-commits
mailing list