[infinispan-commits] Infinispan SVN: r604 - in trunk/core/src/main/java/org/infinispan: commands and 4 other directories.
infinispan-commits at lists.jboss.org
infinispan-commits at lists.jboss.org
Wed Jul 22 07:07:16 EDT 2009
Author: manik.surtani at jboss.com
Date: 2009-07-22 07:07:15 -0400 (Wed, 22 Jul 2009)
New Revision: 604
Added:
trunk/core/src/main/java/org/infinispan/commands/control/LockControlCommand.java
Removed:
trunk/core/src/main/java/org/infinispan/commands/LockControlCommand.java
Modified:
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/RemoteCommandFactory.java
trunk/core/src/main/java/org/infinispan/commands/Visitor.java
trunk/core/src/main/java/org/infinispan/interceptors/CallInterceptor.java
trunk/core/src/main/java/org/infinispan/interceptors/DistributionInterceptor.java
trunk/core/src/main/java/org/infinispan/interceptors/ImplicitEagerLockingInterceptor.java
trunk/core/src/main/java/org/infinispan/interceptors/LockingInterceptor.java
trunk/core/src/main/java/org/infinispan/interceptors/TxInterceptor.java
trunk/core/src/main/java/org/infinispan/interceptors/base/BaseRpcInterceptor.java
trunk/core/src/main/java/org/infinispan/marshall/jboss/ConstantObjectTable.java
Log:
Moved LockControlCommand to control subpackage
Modified: trunk/core/src/main/java/org/infinispan/CacheDelegate.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/CacheDelegate.java 2009-07-22 10:31:37 UTC (rev 603)
+++ trunk/core/src/main/java/org/infinispan/CacheDelegate.java 2009-07-22 11:07:15 UTC (rev 604)
@@ -26,7 +26,7 @@
import org.infinispan.atomic.AtomicMapCache;
import org.infinispan.batch.BatchContainer;
import org.infinispan.commands.CommandsFactory;
-import org.infinispan.commands.LockControlCommand;
+import org.infinispan.commands.control.LockControlCommand;
import org.infinispan.commands.read.EntrySetCommand;
import org.infinispan.commands.read.GetKeyValueCommand;
import org.infinispan.commands.read.KeySetCommand;
@@ -244,7 +244,7 @@
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,false);
+ LockControlCommand command = commandsFactory.buildLockControlCommand(keys, false);
invoker.invoke(getInvocationContext(), command);
}
Modified: trunk/core/src/main/java/org/infinispan/commands/AbstractVisitor.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/AbstractVisitor.java 2009-07-22 10:31:37 UTC (rev 603)
+++ trunk/core/src/main/java/org/infinispan/commands/AbstractVisitor.java 2009-07-22 11:07:15 UTC (rev 604)
@@ -21,6 +21,7 @@
*/
package org.infinispan.commands;
+import org.infinispan.commands.control.LockControlCommand;
import org.infinispan.commands.read.EntrySetCommand;
import org.infinispan.commands.read.GetKeyValueCommand;
import org.infinispan.commands.read.KeySetCommand;
@@ -141,8 +142,8 @@
command.acceptVisitor(ctx, this);
}
}
-
- public Object visitLockControlCommand(TxInvocationContext ctx, LockControlCommand command) throws Throwable{
+
+ public Object visitLockControlCommand(TxInvocationContext 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-07-22 10:31:37 UTC (rev 603)
+++ trunk/core/src/main/java/org/infinispan/commands/CommandsFactory.java 2009-07-22 11:07:15 UTC (rev 604)
@@ -21,6 +21,7 @@
*/
package org.infinispan.commands;
+import org.infinispan.commands.control.LockControlCommand;
import org.infinispan.commands.control.StateTransferControlCommand;
import org.infinispan.commands.read.EntrySetCommand;
import org.infinispan.commands.read.GetKeyValueCommand;
@@ -70,11 +71,11 @@
SizeCommand buildSizeCommand();
GetKeyValueCommand buildGetKeyValueCommand(Object key);
-
+
KeySetCommand buildKeySetCommand();
-
+
ValuesCommand buildValuesCommand();
-
+
EntrySetCommand buildEntrySetCommand();
PutMapCommand buildPutMapCommand(Map map, long lifespanMillis, long maxIdleTimeMillis);
@@ -108,6 +109,6 @@
StateTransferControlCommand buildStateTransferControlCommand(boolean block);
ClusteredGetCommand buildClusteredGetCommand(Object key);
-
+
LockControlCommand buildLockControlCommand(Collection keys, boolean implicit);
}
Modified: trunk/core/src/main/java/org/infinispan/commands/CommandsFactoryImpl.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/CommandsFactoryImpl.java 2009-07-22 10:31:37 UTC (rev 603)
+++ trunk/core/src/main/java/org/infinispan/commands/CommandsFactoryImpl.java 2009-07-22 11:07:15 UTC (rev 604)
@@ -22,6 +22,7 @@
package org.infinispan.commands;
import org.infinispan.Cache;
+import org.infinispan.commands.control.LockControlCommand;
import org.infinispan.commands.control.StateTransferControlCommand;
import org.infinispan.commands.read.EntrySetCommand;
import org.infinispan.commands.read.GetKeyValueCommand;
@@ -123,14 +124,14 @@
}
return cachedSizeCommand;
}
-
+
public KeySetCommand buildKeySetCommand() {
if (cachedKeySetCommand == null) {
cachedKeySetCommand = new KeySetCommand(dataContainer);
}
return cachedKeySetCommand;
}
-
+
public ValuesCommand buildValuesCommand() {
if (cachedValuesCommand == null) {
cachedValuesCommand = new ValuesCommand(dataContainer);
@@ -255,9 +256,9 @@
clusteredGetCommand.initialize(dataContainer, icc, this, interceptorChain);
break;
case LockControlCommand.COMMAND_ID:
- LockControlCommand lcc = (LockControlCommand)c;
- lcc.init(interceptorChain, icc,txTable);
- break;
+ LockControlCommand lcc = (LockControlCommand) c;
+ lcc.init(interceptorChain, icc, txTable);
+ break;
}
}
Deleted: trunk/core/src/main/java/org/infinispan/commands/LockControlCommand.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/LockControlCommand.java 2009-07-22 10:31:37 UTC (rev 603)
+++ trunk/core/src/main/java/org/infinispan/commands/LockControlCommand.java 2009-07-22 11:07:15 UTC (rev 604)
@@ -1,146 +0,0 @@
-/*
- * 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 org.infinispan.commands.tx.AbstractTransactionBoundaryCommand;
-import org.infinispan.commands.write.WriteCommand;
-import org.infinispan.context.InvocationContext;
-import org.infinispan.context.impl.RemoteTxInvocationContext;
-import org.infinispan.context.impl.TxInvocationContext;
-import org.infinispan.marshall.Ids;
-import org.infinispan.marshall.Marshallable;
-import org.infinispan.marshall.exts.ReplicableCommandExternalizer;
-import org.infinispan.transaction.xa.GlobalTransaction;
-import org.infinispan.transaction.xa.RemoteTransaction;
-
-import java.util.Collection;
-
-/**
- * LockControlCommand is a command that enables distributed locking across infinispan nodes.
- * <p>
- * For more details refer to:
- * https://jira.jboss.org/jira/browse/ISPN-70
- * https://jira.jboss.org/jira/browse/ISPN-48
- *
- * @author Vladimir Blagojevic (<a href="mailto:vblagoje at redhat.com">vblagoje at redhat.com</a>)
- * @param
- * @since 4.0
- */
- at Marshallable(externalizer = ReplicableCommandExternalizer.class, id = Ids.LOCK_CONTROL_COMMAND)
-public class LockControlCommand extends AbstractTransactionBoundaryCommand {
- public static final int COMMAND_ID = 3;
- private Collection keys;
- private boolean implicit = false;
-
- public LockControlCommand() {
- }
-
- public LockControlCommand(Collection keys, String cacheName) {
- this(keys,cacheName,false);
- }
-
- public LockControlCommand(Collection keys, String cacheName, boolean implicit) {
- this.cacheName = cacheName;
- this.keys = keys;
- this.implicit = implicit;
- }
-
- public void attachGlobalTransaction(GlobalTransaction gtx) {
- globalTx = gtx;
- }
-
- public Collection getKeys() {
- return keys;
- }
-
- public boolean isImplicit() {
- return implicit;
- }
-
- public boolean isExplicit(){
- return !isImplicit();
- }
-
- public Object acceptVisitor(InvocationContext ctx, Visitor visitor) throws Throwable {
- return visitor.visitLockControlCommand((TxInvocationContext) ctx, this);
- }
-
- @Override
- public Object perform(InvocationContext ignored) throws Throwable {
- if (ignored != null)
- throw new IllegalStateException("Expected null context!");
-
- RemoteTxInvocationContext ctxt = icc.createRemoteTxInvocationContext();
- RemoteTransaction transaction = txTable.getRemoteTransaction(globalTx);
-
- boolean remoteTxinitiated = transaction != null;
- if (!remoteTxinitiated) {
- //create bogus modifications (we do not know modifications ahead of time)
- //todo - make a create method that does not require creation of a WriteCommand[]
- transaction = txTable.createRemoteTransaction(globalTx, new WriteCommand[]{});
- }
- ctxt.setRemoteTransaction(transaction);
- return invoker.invoke(ctxt, this);
- }
-
- public byte getCommandId() {
- return COMMAND_ID;
- }
-
- public Object[] getParameters() {
- return new Object[]{globalTx, cacheName, keys};
- }
-
- public void setParameters(int commandId, Object[] args) {
- if (commandId != COMMAND_ID)
- throw new IllegalStateException("Unusupported command id:" + commandId);
- globalTx = (GlobalTransaction) args[0];
- cacheName = (String) args[1];
- keys = (Collection) args[2];
- }
-
- public boolean equals(Object o) {
- if (this == o)
- return true;
- if (o == null || getClass() != o.getClass())
- return false;
-
- LockControlCommand that = (LockControlCommand) o;
- if (!super.equals(that))
- return false;
- return keys.equals(that.getKeys());
- }
-
- public int hashCode() {
- int result = super.hashCode();
- return 31 * result + (keys != null ? keys.hashCode() : 0);
- }
-
- @Override
- public String toString() {
- return "LockControlCommand{" +
- "gtx=" + globalTx +
- ", cacheName='" + cacheName +
- ", implicit='" + implicit +
- ", keys=" + keys + '}';
- }
-}
Modified: trunk/core/src/main/java/org/infinispan/commands/RemoteCommandFactory.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/RemoteCommandFactory.java 2009-07-22 10:31:37 UTC (rev 603)
+++ trunk/core/src/main/java/org/infinispan/commands/RemoteCommandFactory.java 2009-07-22 11:07:15 UTC (rev 604)
@@ -1,6 +1,7 @@
package org.infinispan.commands;
import org.infinispan.CacheException;
+import org.infinispan.commands.control.LockControlCommand;
import org.infinispan.commands.control.StateTransferControlCommand;
import org.infinispan.commands.read.GetKeyValueCommand;
import org.infinispan.commands.remote.ClusteredGetCommand;
Modified: trunk/core/src/main/java/org/infinispan/commands/Visitor.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/Visitor.java 2009-07-22 10:31:37 UTC (rev 603)
+++ trunk/core/src/main/java/org/infinispan/commands/Visitor.java 2009-07-22 11:07:15 UTC (rev 604)
@@ -21,6 +21,7 @@
*/
package org.infinispan.commands;
+import org.infinispan.commands.control.LockControlCommand;
import org.infinispan.commands.read.EntrySetCommand;
import org.infinispan.commands.read.GetKeyValueCommand;
import org.infinispan.commands.read.KeySetCommand;
@@ -65,11 +66,11 @@
Object visitSizeCommand(InvocationContext ctx, SizeCommand command) throws Throwable;
Object visitGetKeyValueCommand(InvocationContext ctx, GetKeyValueCommand command) throws Throwable;
-
+
Object visitKeySetCommand(InvocationContext ctx, KeySetCommand command) throws Throwable;
-
+
Object visitValuesCommand(InvocationContext ctx, ValuesCommand command) throws Throwable;
-
+
Object visitEntrySetCommand(InvocationContext ctx, EntrySetCommand command) throws Throwable;
// tx commands
@@ -81,7 +82,7 @@
Object visitCommitCommand(TxInvocationContext ctx, CommitCommand command) throws Throwable;
Object visitInvalidateCommand(InvocationContext ctx, InvalidateCommand invalidateCommand) throws Throwable;
-
+
// locking commands
Object visitLockControlCommand(TxInvocationContext ctx, LockControlCommand command) throws Throwable;
}
\ No newline at end of file
Copied: trunk/core/src/main/java/org/infinispan/commands/control/LockControlCommand.java (from rev 602, trunk/core/src/main/java/org/infinispan/commands/LockControlCommand.java)
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/control/LockControlCommand.java (rev 0)
+++ trunk/core/src/main/java/org/infinispan/commands/control/LockControlCommand.java 2009-07-22 11:07:15 UTC (rev 604)
@@ -0,0 +1,145 @@
+/*
+ * 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.control;
+
+import org.infinispan.commands.Visitor;
+import org.infinispan.commands.tx.AbstractTransactionBoundaryCommand;
+import org.infinispan.commands.write.WriteCommand;
+import org.infinispan.context.InvocationContext;
+import org.infinispan.context.impl.RemoteTxInvocationContext;
+import org.infinispan.context.impl.TxInvocationContext;
+import org.infinispan.marshall.Ids;
+import org.infinispan.marshall.Marshallable;
+import org.infinispan.marshall.exts.ReplicableCommandExternalizer;
+import org.infinispan.transaction.xa.GlobalTransaction;
+import org.infinispan.transaction.xa.RemoteTransaction;
+
+import java.util.Collection;
+
+/**
+ * LockControlCommand is a command that enables distributed locking across infinispan nodes.
+ * <p/>
+ * For more details refer to: https://jira.jboss.org/jira/browse/ISPN-70 https://jira.jboss.org/jira/browse/ISPN-48
+ *
+ * @author Vladimir Blagojevic (<a href="mailto:vblagoje at redhat.com">vblagoje at redhat.com</a>)
+ * @param
+ * @since 4.0
+ */
+ at Marshallable(externalizer = ReplicableCommandExternalizer.class, id = Ids.LOCK_CONTROL_COMMAND)
+public class LockControlCommand extends AbstractTransactionBoundaryCommand {
+ public static final int COMMAND_ID = 3;
+ private Collection keys;
+ private boolean implicit = false;
+
+ public LockControlCommand() {
+ }
+
+ public LockControlCommand(Collection keys, String cacheName) {
+ this(keys, cacheName, false);
+ }
+
+ public LockControlCommand(Collection keys, String cacheName, boolean implicit) {
+ this.cacheName = cacheName;
+ this.keys = keys;
+ this.implicit = implicit;
+ }
+
+ public void attachGlobalTransaction(GlobalTransaction gtx) {
+ globalTx = gtx;
+ }
+
+ public Collection getKeys() {
+ return keys;
+ }
+
+ public boolean isImplicit() {
+ return implicit;
+ }
+
+ public boolean isExplicit() {
+ return !isImplicit();
+ }
+
+ public Object acceptVisitor(InvocationContext ctx, Visitor visitor) throws Throwable {
+ return visitor.visitLockControlCommand((TxInvocationContext) ctx, this);
+ }
+
+ @Override
+ public Object perform(InvocationContext ignored) throws Throwable {
+ if (ignored != null)
+ throw new IllegalStateException("Expected null context!");
+
+ RemoteTxInvocationContext ctxt = icc.createRemoteTxInvocationContext();
+ RemoteTransaction transaction = txTable.getRemoteTransaction(globalTx);
+
+ boolean remoteTxinitiated = transaction != null;
+ if (!remoteTxinitiated) {
+ //create bogus modifications (we do not know modifications ahead of time)
+ //todo - make a create method that does not require creation of a WriteCommand[]
+ transaction = txTable.createRemoteTransaction(globalTx, new WriteCommand[]{});
+ }
+ ctxt.setRemoteTransaction(transaction);
+ return invoker.invoke(ctxt, this);
+ }
+
+ public byte getCommandId() {
+ return COMMAND_ID;
+ }
+
+ public Object[] getParameters() {
+ return new Object[]{globalTx, cacheName, keys};
+ }
+
+ public void setParameters(int commandId, Object[] args) {
+ if (commandId != COMMAND_ID)
+ throw new IllegalStateException("Unusupported command id:" + commandId);
+ globalTx = (GlobalTransaction) args[0];
+ cacheName = (String) args[1];
+ keys = (Collection) args[2];
+ }
+
+ public boolean equals(Object o) {
+ if (this == o)
+ return true;
+ if (o == null || getClass() != o.getClass())
+ return false;
+
+ LockControlCommand that = (LockControlCommand) o;
+ if (!super.equals(that))
+ return false;
+ return keys.equals(that.getKeys());
+ }
+
+ public int hashCode() {
+ int result = super.hashCode();
+ return 31 * result + (keys != null ? keys.hashCode() : 0);
+ }
+
+ @Override
+ public String toString() {
+ return "LockControlCommand{" +
+ "gtx=" + globalTx +
+ ", cacheName='" + cacheName +
+ ", implicit='" + implicit +
+ ", keys=" + keys + '}';
+ }
+}
Modified: trunk/core/src/main/java/org/infinispan/interceptors/CallInterceptor.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/interceptors/CallInterceptor.java 2009-07-22 10:31:37 UTC (rev 603)
+++ trunk/core/src/main/java/org/infinispan/interceptors/CallInterceptor.java 2009-07-22 11:07:15 UTC (rev 604)
@@ -22,8 +22,8 @@
package org.infinispan.interceptors;
-import org.infinispan.commands.LockControlCommand;
import org.infinispan.commands.VisitableCommand;
+import org.infinispan.commands.control.LockControlCommand;
import org.infinispan.commands.tx.CommitCommand;
import org.infinispan.commands.tx.PrepareCommand;
import org.infinispan.commands.tx.RollbackCommand;
@@ -57,7 +57,7 @@
if (trace) log.trace("Suppressing invocation of method handleRollbackCommand.");
return null;
}
-
+
@Override
public Object visitLockControlCommand(TxInvocationContext ctx, LockControlCommand c) throws Throwable {
if (trace) log.trace("Suppressing invocation of method handleLockControlCommand.");
Modified: trunk/core/src/main/java/org/infinispan/interceptors/DistributionInterceptor.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/interceptors/DistributionInterceptor.java 2009-07-22 10:31:37 UTC (rev 603)
+++ trunk/core/src/main/java/org/infinispan/interceptors/DistributionInterceptor.java 2009-07-22 11:07:15 UTC (rev 604)
@@ -1,7 +1,7 @@
package org.infinispan.interceptors;
import org.infinispan.commands.CommandsFactory;
-import org.infinispan.commands.LockControlCommand;
+import org.infinispan.commands.control.LockControlCommand;
import org.infinispan.commands.read.GetKeyValueCommand;
import org.infinispan.commands.tx.CommitCommand;
import org.infinispan.commands.tx.PrepareCommand;
@@ -166,7 +166,7 @@
return handleWriteCommand(ctx, command,
new SingleKeyRecipientGenerator(command.getKey()));
}
-
+
public Object visitLockControlCommand(TxInvocationContext ctx, LockControlCommand command) throws Throwable {
if (ctx.isOriginLocal()) {
List<Address> recipients = new ArrayList<Address>(ctx.getTransactionParticipants());
Modified: trunk/core/src/main/java/org/infinispan/interceptors/ImplicitEagerLockingInterceptor.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/interceptors/ImplicitEagerLockingInterceptor.java 2009-07-22 10:31:37 UTC (rev 603)
+++ trunk/core/src/main/java/org/infinispan/interceptors/ImplicitEagerLockingInterceptor.java 2009-07-22 11:07:15 UTC (rev 604)
@@ -1,11 +1,7 @@
package org.infinispan.interceptors;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-
import org.infinispan.commands.CommandsFactory;
-import org.infinispan.commands.LockControlCommand;
+import org.infinispan.commands.control.LockControlCommand;
import org.infinispan.commands.write.EvictCommand;
import org.infinispan.commands.write.InvalidateCommand;
import org.infinispan.commands.write.PutKeyValueCommand;
@@ -16,15 +12,16 @@
import org.infinispan.factories.annotations.Inject;
import org.infinispan.interceptors.base.CommandInterceptor;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+
/**
- * Interceptor in charge of eager, implicit locking of cache keys across cluster within
- * transactional context
- *
- * <p>
- * For more details refer to:
- * https://jira.jboss.org/jira/browse/ISPN-70
- * https://jira.jboss.org/jira/browse/ISPN-48
- *
+ * Interceptor in charge of eager, implicit locking of cache keys across cluster within transactional context
+ * <p/>
+ * <p/>
+ * For more details refer to: https://jira.jboss.org/jira/browse/ISPN-70 https://jira.jboss.org/jira/browse/ISPN-48
+ *
* @author <a href="mailto:vblagoje at redhat.com">Vladimir Blagojevic (vblagoje at redhat.com)</a>
* @since 4.0
*/
@@ -39,7 +36,7 @@
@Override
public Object visitPutKeyValueCommand(InvocationContext ctx, PutKeyValueCommand command)
- throws Throwable {
+ throws Throwable {
boolean localTxScope = ctx.isInTxScope() & ctx.isOriginLocal();
if (localTxScope) {
lockEagerly(ctx, Collections.singleton(command.getKey()));
@@ -58,7 +55,7 @@
@Override
public Object visitReplaceCommand(InvocationContext ctx, ReplaceCommand command)
- throws Throwable {
+ throws Throwable {
boolean localTxScope = ctx.isInTxScope() & ctx.isOriginLocal();
if (localTxScope) {
lockEagerly(ctx, Collections.singleton(command.getKey()));
@@ -86,7 +83,7 @@
@Override
public Object visitInvalidateCommand(InvocationContext ctx, InvalidateCommand command)
- throws Throwable {
+ throws Throwable {
boolean localTxScope = ctx.isInTxScope() & ctx.isOriginLocal();
if (localTxScope) {
lockEagerly(ctx, Collections.singleton(command.getKey()));
Modified: trunk/core/src/main/java/org/infinispan/interceptors/LockingInterceptor.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/interceptors/LockingInterceptor.java 2009-07-22 10:31:37 UTC (rev 603)
+++ trunk/core/src/main/java/org/infinispan/interceptors/LockingInterceptor.java 2009-07-22 11:07:15 UTC (rev 604)
@@ -21,7 +21,7 @@
*/
package org.infinispan.interceptors;
-import org.infinispan.commands.LockControlCommand;
+import org.infinispan.commands.control.LockControlCommand;
import org.infinispan.commands.read.GetKeyValueCommand;
import org.infinispan.commands.tx.CommitCommand;
import org.infinispan.commands.tx.PrepareCommand;
@@ -138,13 +138,13 @@
c.attachGlobalTransaction((GlobalTransaction) ctx.getLockOwner());
}
for (Object key : c.getKeys()) {
- if(c.isImplicit() && localTxScope && !lockManager.ownsLock(key,ctx.getLockOwner())){
+ if (c.isImplicit() && localTxScope && !lockManager.ownsLock(key, ctx.getLockOwner())) {
//if even one key is unlocked we need to invoke this lock command cluster wide...
shouldInvokeOnCluster = true;
}
entryFactory.wrapEntryForWriting(ctx, key, true, false, false, false);
}
- if(shouldInvokeOnCluster || c.isExplicit())
+ if (shouldInvokeOnCluster || c.isExplicit())
return invokeNextInterceptor(ctx, c);
else
return null;
@@ -152,7 +152,7 @@
if (ctx.isInTxScope()) {
doAfterCall(ctx);
} else {
- throw new IllegalStateException( "Attempting to lock but there is no transactional context in scope. " + ctx);
+ throw new IllegalStateException("Attempting to lock but there is no transactional context in scope. " + ctx);
}
}
}
Modified: trunk/core/src/main/java/org/infinispan/interceptors/TxInterceptor.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/interceptors/TxInterceptor.java 2009-07-22 10:31:37 UTC (rev 603)
+++ trunk/core/src/main/java/org/infinispan/interceptors/TxInterceptor.java 2009-07-22 11:07:15 UTC (rev 604)
@@ -1,7 +1,7 @@
package org.infinispan.interceptors;
-import org.infinispan.commands.LockControlCommand;
import org.infinispan.commands.VisitableCommand;
+import org.infinispan.commands.control.LockControlCommand;
import org.infinispan.commands.read.GetKeyValueCommand;
import org.infinispan.commands.tx.CommitCommand;
import org.infinispan.commands.tx.PrepareCommand;
Modified: trunk/core/src/main/java/org/infinispan/interceptors/base/BaseRpcInterceptor.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/interceptors/base/BaseRpcInterceptor.java 2009-07-22 10:31:37 UTC (rev 603)
+++ trunk/core/src/main/java/org/infinispan/interceptors/base/BaseRpcInterceptor.java 2009-07-22 11:07:15 UTC (rev 604)
@@ -21,7 +21,7 @@
*/
package org.infinispan.interceptors.base;
-import org.infinispan.commands.LockControlCommand;
+import org.infinispan.commands.control.LockControlCommand;
import org.infinispan.context.Flag;
import org.infinispan.context.InvocationContext;
import org.infinispan.context.impl.TxInvocationContext;
@@ -51,7 +51,7 @@
public void init() {
defaultSynchronous = configuration.getCacheMode().isSynchronous();
}
-
+
@Override
public Object visitLockControlCommand(TxInvocationContext ctx, LockControlCommand command) throws Throwable {
Object retVal = invokeNextInterceptor(ctx, command);
Modified: trunk/core/src/main/java/org/infinispan/marshall/jboss/ConstantObjectTable.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/marshall/jboss/ConstantObjectTable.java 2009-07-22 10:31:37 UTC (rev 603)
+++ trunk/core/src/main/java/org/infinispan/marshall/jboss/ConstantObjectTable.java 2009-07-22 11:07:15 UTC (rev 604)
@@ -23,8 +23,8 @@
import org.infinispan.CacheException;
import org.infinispan.atomic.AtomicHashMap;
-import org.infinispan.commands.LockControlCommand;
import org.infinispan.commands.RemoteCommandFactory;
+import org.infinispan.commands.control.LockControlCommand;
import org.infinispan.commands.control.StateTransferControlCommand;
import org.infinispan.commands.read.GetKeyValueCommand;
import org.infinispan.commands.remote.ClusteredGetCommand;
@@ -87,10 +87,9 @@
import java.util.TreeSet;
/**
- * Constant ObjectTable that marshalls constant instances regardless of whether
- * these are generic objects such as UnsuccessfulResponse.INSTANCE, or home grown
- * Externalizer implementations. In both cases, this is a hugely efficient way of
- * sending around constant singleton objects.
+ * Constant ObjectTable that marshalls constant instances regardless of whether these are generic objects such as
+ * UnsuccessfulResponse.INSTANCE, or home grown Externalizer implementations. In both cases, this is a hugely efficient
+ * way of sending around constant singleton objects.
*
* @author Galder Zamarreño
* @since 4.0
@@ -108,14 +107,14 @@
JDK_EXTERNALIZERS.put(HashSet.class.getName(), SetExternalizer.class.getName());
JDK_EXTERNALIZERS.put(TreeSet.class.getName(), SetExternalizer.class.getName());
JDK_EXTERNALIZERS.put("java.util.Collections$SingletonList", SingletonListExternalizer.class.getName());
-
+
MARSHALLABLES.add(GlobalTransaction.class.getName());
MARSHALLABLES.add(DeadlockDetectingGlobalTransaction.class.getName());
MARSHALLABLES.add(JGroupsAddress.class.getName());
MARSHALLABLES.add("org.infinispan.util.Immutables$ImmutableMapWrapper");
MARSHALLABLES.add(MarshalledValue.class.getName());
MARSHALLABLES.add(FastCopyHashMap.class.getName());
-
+
MARSHALLABLES.add("org.infinispan.transaction.TransactionLog$LogEntry");
MARSHALLABLES.add(ExtendedResponse.class.getName());
MARSHALLABLES.add(SuccessfulResponse.class.getName());
@@ -143,28 +142,32 @@
MARSHALLABLES.add(ImmortalCacheEntry.class.getName());
MARSHALLABLES.add(MortalCacheEntry.class.getName());
MARSHALLABLES.add(TransientCacheEntry.class.getName());
- MARSHALLABLES.add(TransientMortalCacheEntry.class.getName());
+ MARSHALLABLES.add(TransientMortalCacheEntry.class.getName());
MARSHALLABLES.add(ImmortalCacheValue.class.getName());
MARSHALLABLES.add(MortalCacheValue.class.getName());
MARSHALLABLES.add(TransientCacheValue.class.getName());
MARSHALLABLES.add(TransientMortalCacheValue.class.getName());
-
+
MARSHALLABLES.add(AtomicHashMap.class.getName());
MARSHALLABLES.add(Bucket.class.getName());
-
+
MARSHALLABLES.add("org.infinispan.tree.NodeKey");
MARSHALLABLES.add("org.infinispan.tree.Fqn");
}
- /** Contains mapping of classes to their corresponding Externalizer classes via ExternalizerAdapter instances. */
+ /**
+ * Contains mapping of classes to their corresponding Externalizer classes via ExternalizerAdapter instances.
+ */
private final Map<Class<?>, ExternalizerAdapter> writers = new IdentityHashMap<Class<?>, ExternalizerAdapter>();
- /** Contains mapping of ids to their corresponding Externalizer classes via ExternalizerAdapter instances. */
+ /**
+ * Contains mapping of ids to their corresponding Externalizer classes via ExternalizerAdapter instances.
+ */
private final Map<Integer, ExternalizerAdapter> readers = new HashMap<Integer, ExternalizerAdapter>();
public void start(RemoteCommandFactory cmdFactory, org.infinispan.marshall.Marshaller ispnMarshaller) {
HashSet<Integer> ids = new HashSet<Integer>();
-
+
try {
for (Map.Entry<String, String> entry : JDK_EXTERNALIZERS.entrySet()) {
try {
@@ -174,13 +177,14 @@
int id = marshallable.id();
ids.add(id);
ExternalizerAdapter adapter = new ExternalizerAdapter(id, ext);
- writers.put(clazz, adapter);
+ writers.put(clazz, adapter);
readers.put(id, adapter);
} catch (ClassNotFoundException e) {
- if (log.isDebugEnabled()) log.debug("Unable to load class (ignore if class belonging to a module not in use): {0}", e.getMessage());
+ if (log.isDebugEnabled())
+ log.debug("Unable to load class (ignore if class belonging to a module not in use): {0}", e.getMessage());
}
}
-
+
for (String marshallableClass : MARSHALLABLES) {
try {
Class clazz = Util.loadClass(marshallableClass);
@@ -188,27 +192,29 @@
if (marshallable != null && !marshallable.externalizer().equals(Externalizer.class)) {
int id = marshallable.id();
Externalizer ext = (Externalizer) Util.getInstance(marshallable.externalizer());
- if (!ids.add(id)) throw new CacheException("Duplicat id found! id=" + id + " in " + ext.getClass().getName() + " is shared by another marshallable class.");
+ if (!ids.add(id))
+ throw new CacheException("Duplicat id found! id=" + id + " in " + ext.getClass().getName() + " is shared by another marshallable class.");
if (ext instanceof ReplicableCommandExternalizer) {
((ReplicableCommandExternalizer) ext).inject(cmdFactory);
}
if (ext instanceof MarshalledValue.Externalizer) {
((MarshalledValue.Externalizer) ext).inject(ispnMarshaller);
}
-
+
ExternalizerAdapter adapter = new ExternalizerAdapter(id, ext);
writers.put(clazz, adapter);
readers.put(id, adapter);
- }
+ }
} catch (ClassNotFoundException e) {
- if (log.isDebugEnabled()) log.debug("Unable to load class (ignore if class belonging to a module not in use): {0}", e.getMessage());
+ if (log.isDebugEnabled())
+ log.debug("Unable to load class (ignore if class belonging to a module not in use): {0}", e.getMessage());
}
}
} catch (Exception e) {
throw new CacheException("Unable to instantiate Externalizer class", e);
}
-
-
+
+
}
public void stop() {
@@ -217,23 +223,23 @@
}
public Writer getObjectWriter(Object o) throws IOException {
- return writers.get(o.getClass());
+ return writers.get(o.getClass());
}
public Object readObject(Unmarshaller input) throws IOException, ClassNotFoundException {
ExternalizerAdapter adapter = (ExternalizerAdapter) readers.get(input.readUnsignedByte());
return adapter.readObject(input);
}
-
+
static class ExternalizerAdapter implements Writer {
final int id;
final Externalizer externalizer;
-
+
ExternalizerAdapter(int id, Externalizer externalizer) {
this.id = id;
this.externalizer = externalizer;
}
-
+
public Object readObject(Unmarshaller input) throws IOException, ClassNotFoundException {
return externalizer.readObject(input);
}
@@ -242,5 +248,5 @@
output.write(id);
externalizer.writeObject(output, object);
}
- }
+ }
}
More information about the infinispan-commits
mailing list