[infinispan-commits] Infinispan SVN: r247 - 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
Mon May 11 09:22:48 EDT 2009


Author: vblagojevic at jboss.com
Date: 2009-05-11 09:22:48 -0400 (Mon, 11 May 2009)
New Revision: 247

Added:
   trunk/core/src/main/java/org/infinispan/commands/LockControlCommand.java
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/AbstractVisitor.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/Visitor.java
Log:
[ISPN-48] -  Introduce lock() and unlock() API methods
prepare implementation stubs

Modified: trunk/core/src/main/java/org/infinispan/AbstractDelegatingAdvancedCache.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/AbstractDelegatingAdvancedCache.java	2009-05-11 10:01:06 UTC (rev 246)
+++ trunk/core/src/main/java/org/infinispan/AbstractDelegatingAdvancedCache.java	2009-05-11 13:22:48 UTC (rev 247)
@@ -9,6 +9,7 @@
 import org.infinispan.interceptors.base.CommandInterceptor;
 import org.infinispan.remoting.RpcManager;
 
+import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.Future;
@@ -256,4 +257,20 @@
    public Future<Boolean> replaceAsync(K key, V oldValue, V newValue, long lifespan, TimeUnit lifespanUnit, long maxIdle, TimeUnit maxIdleUnit) {
       return cache.replaceAsync(key, oldValue, newValue, lifespan, lifespanUnit, maxIdle, maxIdleUnit);
    }
+
+   public void lock(K key, boolean eager) {
+      cache.lock(key, eager);
+   }
+
+   public void lock(Collection<? extends K> keys, boolean eager) {
+      cache.lock(keys, eager);
+   }
+
+   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-11 10:01:06 UTC (rev 246)
+++ trunk/core/src/main/java/org/infinispan/AdvancedCache.java	2009-05-11 13:22:48 UTC (rev 247)
@@ -9,6 +9,7 @@
 import org.infinispan.interceptors.base.CommandInterceptor;
 import org.infinispan.remoting.RpcManager;
 
+import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.Future;
@@ -80,6 +81,15 @@
     * @return the component registry for this cache instance
     */
    ComponentRegistry getComponentRegistry();
+   
+   
+   void lock(K key, boolean eager);
+   
+   void lock(Collection<? extends K> keys, boolean eager);
+   
+   void unlock(K key);
+   
+   void unlock(Collection<? extends K> keys);
 
    RpcManager getRpcManager();
 

Modified: trunk/core/src/main/java/org/infinispan/CacheDelegate.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/CacheDelegate.java	2009-05-11 10:01:06 UTC (rev 246)
+++ trunk/core/src/main/java/org/infinispan/CacheDelegate.java	2009-05-11 13:22:48 UTC (rev 247)
@@ -253,7 +253,23 @@
    private InvocationContext getInvocationContext() {
       return invocationContextContainer.get();
    }
+   
+   public void lock(K key, boolean eager) {
+      // TODO: Customise this generated block
+   }
 
+   public void lock(Collection<? extends K> keys, boolean eager) {
+      // TODO: Customise this generated block
+   }
+
+   public void unlock(K key) {
+      // TODO: Customise this generated block
+   }
+
+   public void unlock(Collection<? extends K> keys) {
+      // TODO: Customise this generated block
+   }
+
    public void start() {
       componentRegistry.start();
       defaultLifespan = config.getExpirationLifespan();

Modified: trunk/core/src/main/java/org/infinispan/commands/AbstractVisitor.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/AbstractVisitor.java	2009-05-11 10:01:06 UTC (rev 246)
+++ trunk/core/src/main/java/org/infinispan/commands/AbstractVisitor.java	2009-05-11 13:22:48 UTC (rev 247)
@@ -124,4 +124,8 @@
          command.acceptVisitor(ctx, this);
       }
    }
+   
+   public Object visitLockControlCommand(InvocationContext ctx, LockControlCommand command) throws Throwable{
+      return handleDefault(ctx, command);
+   }
 }
\ No newline at end of file

Modified: trunk/core/src/main/java/org/infinispan/commands/CommandsFactory.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/CommandsFactory.java	2009-05-11 10:01:06 UTC (rev 246)
+++ trunk/core/src/main/java/org/infinispan/commands/CommandsFactory.java	2009-05-11 13:22:48 UTC (rev 247)
@@ -42,6 +42,7 @@
 import org.infinispan.remoting.transport.Address;
 import org.infinispan.transaction.GlobalTransaction;
 
+import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 
@@ -97,4 +98,6 @@
    StateTransferControlCommand buildStateTransferControlCommand(boolean block);
 
    ClusteredGetCommand buildClusteredGetCommand(Object key);
+   
+   LockControlCommand buildLockControlCommand(Collection keys, boolean lock);
 }

Modified: trunk/core/src/main/java/org/infinispan/commands/CommandsFactoryImpl.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/CommandsFactoryImpl.java	2009-05-11 10:01:06 UTC (rev 246)
+++ trunk/core/src/main/java/org/infinispan/commands/CommandsFactoryImpl.java	2009-05-11 13:22:48 UTC (rev 247)
@@ -48,6 +48,7 @@
 import org.infinispan.remoting.transport.Address;
 import org.infinispan.transaction.GlobalTransaction;
 
+import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 
@@ -200,4 +201,8 @@
             break;
       }
    }
+
+   public LockControlCommand buildLockControlCommand(Collection keys, boolean lock) {
+      return new LockControlCommand(keys,lock);
+   }
 }

Added: trunk/core/src/main/java/org/infinispan/commands/LockControlCommand.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/LockControlCommand.java	                        (rev 0)
+++ trunk/core/src/main/java/org/infinispan/commands/LockControlCommand.java	2009-05-11 13:22:48 UTC (rev 247)
@@ -0,0 +1,73 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.infinispan.commands;
+
+import java.util.Collection;
+
+import org.infinispan.commands.VisitableCommand;
+import org.infinispan.commands.Visitor;
+import org.infinispan.context.InvocationContext;
+
+/**
+ * 
+ *
+ * @author Vladimir Blagojevic (<a href="mailto:vblagoje at redhat.com">vblagoje at redhat.com</a>)
+ * @param 
+ * @since 4.0
+ */
+public class LockControlCommand implements VisitableCommand {
+   private final Collection keys;
+   private final boolean lock;
+
+   public LockControlCommand(Collection keys,boolean lock) {
+      this.keys=keys;
+      this.lock = lock;
+   }
+
+   public Object acceptVisitor(InvocationContext ctx, Visitor visitor) throws Throwable {
+      return visitor.visitLockControlCommand(ctx, this);
+   }
+
+   public Boolean perform(InvocationContext ctx) throws Throwable {
+      return true;
+   }
+
+   public byte getCommandId() {
+      return 0;  // no-op
+   }
+
+   public Object[] getParameters() {
+      return new Object[0];  // no-op
+   }
+
+   public void setParameters(int commandId, Object[] parameters) {
+      // no-op
+   }
+
+   @Override
+   public String toString() {
+      return "LockControlCommand{" +
+            "lock=" + lock +
+            "keys=" + keys +
+            '}';
+   }
+}

Modified: trunk/core/src/main/java/org/infinispan/commands/Visitor.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/Visitor.java	2009-05-11 10:01:06 UTC (rev 246)
+++ trunk/core/src/main/java/org/infinispan/commands/Visitor.java	2009-05-11 13:22:48 UTC (rev 247)
@@ -65,4 +65,7 @@
    Object visitCommitCommand(InvocationContext ctx, CommitCommand command) throws Throwable;
 
    Object visitInvalidateCommand(InvocationContext ctx, InvalidateCommand invalidateCommand) throws Throwable;
+   
+   // locking commands
+   Object visitLockControlCommand(InvocationContext ctx, LockControlCommand command) throws Throwable;
 }
\ No newline at end of file




More information about the infinispan-commits mailing list