[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