[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