[infinispan-commits] Infinispan SVN: r256 - in trunk/core/src/main/java/org/infinispan: commands and 1 other directory.

infinispan-commits at lists.jboss.org infinispan-commits at lists.jboss.org
Tue May 12 08:00:14 EDT 2009


Author: vblagojevic at jboss.com
Date: 2009-05-12 08:00:14 -0400 (Tue, 12 May 2009)
New Revision: 256

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/LockControlCommand.java
Log:
[ISPN-48] -  Introduce lock() and unlock() API methods
work in progress

Modified: trunk/core/src/main/java/org/infinispan/AbstractDelegatingAdvancedCache.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/AbstractDelegatingAdvancedCache.java	2009-05-12 09:43:17 UTC (rev 255)
+++ trunk/core/src/main/java/org/infinispan/AbstractDelegatingAdvancedCache.java	2009-05-12 12:00:14 UTC (rev 256)
@@ -258,12 +258,12 @@
       return cache.replaceAsync(key, oldValue, newValue, lifespan, lifespanUnit, maxIdle, maxIdleUnit);
    }
 
-   public void lock(K key, boolean eager) {
-      cache.lock(key, eager);
+   public void lock(K key) {
+      cache.lock(key);
    }
 
-   public void lock(Collection<? extends K> keys, boolean eager) {
-      cache.lock(keys, eager);
+   public void lock(Collection<? extends K> keys) {
+      cache.lock(keys);
    }
 
    public void unlock(K key) {

Modified: trunk/core/src/main/java/org/infinispan/AdvancedCache.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/AdvancedCache.java	2009-05-12 09:43:17 UTC (rev 255)
+++ trunk/core/src/main/java/org/infinispan/AdvancedCache.java	2009-05-12 12:00:14 UTC (rev 256)
@@ -83,9 +83,9 @@
    ComponentRegistry getComponentRegistry();
    
    
-   void lock(K key, boolean eager);
+   void lock(K key);
    
-   void lock(Collection<? extends K> keys, boolean eager);
+   void lock(Collection<? extends K> keys);
    
    void unlock(K key);
    

Modified: trunk/core/src/main/java/org/infinispan/CacheDelegate.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/CacheDelegate.java	2009-05-12 09:43:17 UTC (rev 255)
+++ trunk/core/src/main/java/org/infinispan/CacheDelegate.java	2009-05-12 12:00:14 UTC (rev 256)
@@ -63,6 +63,7 @@
 import javax.transaction.TransactionManager;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -238,15 +239,13 @@
       return icc.getLocalInvocationContext(true);
    }
 
-   public void lock(K key, boolean eager) {
+   public void lock(K key) {
       if (key == null)
          throw new IllegalArgumentException("Cannot lock null key");
-      List<K> keys = new ArrayList<K>(1);
-      keys.add(key);
-      lock(keys, eager);
+      lock(Collections.singletonList(key));
    }
 
-   public void lock(Collection<? extends K> keys, boolean eager) {
+   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);
@@ -256,9 +255,7 @@
    public void unlock(K key) {
       if (key == null)
          throw new IllegalArgumentException("Cannot unlock null key");
-      List<K> keys = new ArrayList<K>(1);
-      keys.add(key);
-      unlock(keys);
+      unlock(Collections.singletonList(key));
    }
 
    public void unlock(Collection<? extends K> keys) {

Modified: trunk/core/src/main/java/org/infinispan/commands/LockControlCommand.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/LockControlCommand.java	2009-05-12 09:43:17 UTC (rev 255)
+++ trunk/core/src/main/java/org/infinispan/commands/LockControlCommand.java	2009-05-12 12:00:14 UTC (rev 256)
@@ -25,6 +25,7 @@
 
 import org.infinispan.commands.tx.AbstractTransactionBoundaryCommand;
 import org.infinispan.context.InvocationContext;
+import org.infinispan.transaction.xa.GlobalTransaction;
 
 /**
  * 
@@ -34,8 +35,9 @@
  * @since 4.0
  */
 public class LockControlCommand extends AbstractTransactionBoundaryCommand {
-   private final Collection keys;
-   private final boolean lock;
+   public static final int COMMAND_ID = 3;
+   private Collection keys;
+   private boolean lock;
 
    public LockControlCommand(Collection keys, boolean lock) {
       this.keys = keys;
@@ -59,9 +61,20 @@
    }
 
    public byte getCommandId() {
-      return 0; // no-op
+      return COMMAND_ID;
    }
+   
+   public Object[] getParameters() {
+      return new Object[]{globalTx, cacheName,keys,lock};
+   }
 
+   public void setParameters(int commandId, Object[] args) {
+      globalTx = (GlobalTransaction) args[0];
+      cacheName = (String) args[1];
+      keys = (Collection) args [2];
+      lock = (Boolean)args[3];
+   }
+   
    public boolean equals(Object o) {
       if (this == o)
          return true;
@@ -83,6 +96,11 @@
 
    @Override
    public String toString() {
-      return "LockControlCommand{" + "lock=" + lock + "keys=" + keys + '}';
+      return "LockControlCommand{" + 
+         "globalTx=" + globalTx + 
+         ", cacheName='" + cacheName+ 
+         ", invoker=" + invoker + 
+         ", lock=" + lock + 
+         ", keys=" + keys + '}';
    }
 }




More information about the infinispan-commits mailing list