[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