[infinispan-commits] Infinispan SVN: r266 - in trunk/core/src/main/java/org/infinispan: interceptors and 1 other directory.
infinispan-commits at lists.jboss.org
infinispan-commits at lists.jboss.org
Tue May 12 16:30:27 EDT 2009
Author: vblagojevic at jboss.com
Date: 2009-05-12 16:30:27 -0400 (Tue, 12 May 2009)
New Revision: 266
Modified:
trunk/core/src/main/java/org/infinispan/commands/LockControlCommand.java
trunk/core/src/main/java/org/infinispan/commands/RemoteCommandFactory.java
trunk/core/src/main/java/org/infinispan/interceptors/CallInterceptor.java
trunk/core/src/main/java/org/infinispan/interceptors/TxInterceptor.java
Log:
[ISPN-48] - Introduce lock() and unlock() API methods
first working version of SyncReplLockingTest
Modified: trunk/core/src/main/java/org/infinispan/commands/LockControlCommand.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/LockControlCommand.java 2009-05-12 14:51:58 UTC (rev 265)
+++ trunk/core/src/main/java/org/infinispan/commands/LockControlCommand.java 2009-05-12 20:30:27 UTC (rev 266)
@@ -39,6 +39,10 @@
private Collection keys;
private boolean lock;
+
+ public LockControlCommand() {
+ }
+
public LockControlCommand(Collection keys, boolean lock) {
this.keys = keys;
this.lock = lock;
@@ -69,10 +73,12 @@
}
public void setParameters(int commandId, Object[] args) {
+ if (commandId != COMMAND_ID)
+ throw new IllegalStateException("Unusupported command id:" + commandId);
globalTx = (GlobalTransaction) args[0];
cacheName = (String) args[1];
- keys = (Collection) args [2];
- lock = (Boolean)args[3];
+ keys = (Collection) args[2];
+ lock = (Boolean) args[3];
}
public boolean equals(Object o) {
Modified: trunk/core/src/main/java/org/infinispan/commands/RemoteCommandFactory.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/RemoteCommandFactory.java 2009-05-12 14:51:58 UTC (rev 265)
+++ trunk/core/src/main/java/org/infinispan/commands/RemoteCommandFactory.java 2009-05-12 20:30:27 UTC (rev 266)
@@ -53,6 +53,9 @@
case PutKeyValueCommand.COMMAND_ID:
command = new PutKeyValueCommand();
break;
+ case LockControlCommand.COMMAND_ID:
+ command = new LockControlCommand();
+ break;
case PutMapCommand.COMMAND_ID:
command = new PutMapCommand();
break;
Modified: trunk/core/src/main/java/org/infinispan/interceptors/CallInterceptor.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/interceptors/CallInterceptor.java 2009-05-12 14:51:58 UTC (rev 265)
+++ trunk/core/src/main/java/org/infinispan/interceptors/CallInterceptor.java 2009-05-12 20:30:27 UTC (rev 266)
@@ -22,6 +22,7 @@
package org.infinispan.interceptors;
+import org.infinispan.commands.LockControlCommand;
import org.infinispan.commands.ReplicableCommand;
import org.infinispan.commands.VisitableCommand;
import org.infinispan.commands.tx.CommitCommand;
@@ -60,6 +61,12 @@
if (trace) log.trace("Suppressing invocation of method handleRollbackCommand.");
return null;
}
+
+ @Override
+ public Object visitLockControlCommand(InvocationContext ctx, LockControlCommand c) throws Throwable {
+ if (trace) log.trace("Suppressing invocation of method handleLockControlCommand.");
+ return null;
+ }
@Override
public Object handleDefault(InvocationContext ctx, VisitableCommand command) throws Throwable {
Modified: trunk/core/src/main/java/org/infinispan/interceptors/TxInterceptor.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/interceptors/TxInterceptor.java 2009-05-12 14:51:58 UTC (rev 265)
+++ trunk/core/src/main/java/org/infinispan/interceptors/TxInterceptor.java 2009-05-12 20:30:27 UTC (rev 266)
@@ -1,5 +1,6 @@
package org.infinispan.interceptors;
+import org.infinispan.commands.LockControlCommand;
import org.infinispan.commands.VisitableCommand;
import org.infinispan.commands.read.GetKeyValueCommand;
import org.infinispan.commands.read.SizeCommand;
@@ -87,7 +88,12 @@
transactionLog.rollback(command.getGlobalTransaction());
return invokeNextInterceptor(ctx, command);
}
-
+
+ @Override
+ public Object visitLockControlCommand(InvocationContext ctx, LockControlCommand command) throws Throwable{
+ return enlistReadAndInvokeNext(ctx, command);
+ }
+
/**
* Designed to be overridden. Returns a VisitableCommand fit for replaying locally, based on the modification passed
* in. If a null value is returned, this means that the command should not be replayed.
More information about the infinispan-commits
mailing list