[infinispan-commits] Infinispan SVN: r1148 - in trunk: cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/binary and 16 other directories.
infinispan-commits at lists.jboss.org
infinispan-commits at lists.jboss.org
Thu Nov 12 07:50:16 EST 2009
Author: manik.surtani at jboss.com
Date: 2009-11-12 07:50:15 -0500 (Thu, 12 Nov 2009)
New Revision: 1148
Added:
trunk/core/src/main/java/org/infinispan/commands/RemoteCommandsFactory.java
Removed:
trunk/core/src/main/java/org/infinispan/commands/RemoteCommandFactory.java
Modified:
trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/BdbjeCacheStoreIntegrationVamTest.java
trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/binary/JdbcBinaryCacheStore.java
trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/binary/JdbcBinaryCacheStoreVamTest.java
trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStoreVamTest.java
trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStoreVamTest2.java
trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStoreVamTest.java
trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStoreVamTest2.java
trunk/cachestore/jdbm/src/test/java/org/infinispan/loaders/jdbm/JdbmCacheStoreVamTest.java
trunk/cachestore/s3/src/test/java/org/infinispan/loaders/s3/S3CacheStoreIntegrationVamTest.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/control/RehashControlCommand.java
trunk/core/src/main/java/org/infinispan/commands/package-info.java
trunk/core/src/main/java/org/infinispan/container/package-info.java
trunk/core/src/main/java/org/infinispan/distribution/AbstractConsistentHash.java
trunk/core/src/main/java/org/infinispan/distribution/DistributionManager.java
trunk/core/src/main/java/org/infinispan/distribution/LeaveTask.java
trunk/core/src/main/java/org/infinispan/distribution/TransactionLogger.java
trunk/core/src/main/java/org/infinispan/distribution/TransactionLoggerImpl.java
trunk/core/src/main/java/org/infinispan/factories/EmptyConstructorFactory.java
trunk/core/src/main/java/org/infinispan/marshall/VersionAwareMarshaller.java
trunk/core/src/main/java/org/infinispan/marshall/exts/ReplicableCommandExternalizer.java
trunk/core/src/main/java/org/infinispan/marshall/jboss/ConstantObjectTable.java
trunk/core/src/main/java/org/infinispan/marshall/jboss/JBossMarshaller.java
trunk/core/src/test/java/org/infinispan/loaders/file/FileCacheStoreVamTest.java
trunk/core/src/test/java/org/infinispan/marshall/VersionAwareMarshallerTest.java
trunk/core/src/test/java/org/infinispan/marshall/jboss/JBossMarshallerTest.java
Log:
Better javadocs and class naming
Modified: trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/BdbjeCacheStoreIntegrationVamTest.java
===================================================================
--- trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/BdbjeCacheStoreIntegrationVamTest.java 2009-11-12 12:37:01 UTC (rev 1147)
+++ trunk/cachestore/bdbje/src/test/java/org/infinispan/loaders/bdbje/BdbjeCacheStoreIntegrationVamTest.java 2009-11-12 12:50:15 UTC (rev 1148)
@@ -21,7 +21,7 @@
*/
package org.infinispan.loaders.bdbje;
-import org.infinispan.commands.RemoteCommandFactory;
+import org.infinispan.commands.RemoteCommandsFactory;
import org.infinispan.marshall.Marshaller;
import org.infinispan.marshall.VersionAwareMarshaller;
import org.testng.annotations.Test;
@@ -37,7 +37,7 @@
@Override
protected Marshaller getMarshaller() {
VersionAwareMarshaller marshaller = new VersionAwareMarshaller();
- marshaller.inject(Thread.currentThread().getContextClassLoader(), new RemoteCommandFactory());
+ marshaller.inject(Thread.currentThread().getContextClassLoader(), new RemoteCommandsFactory());
marshaller.start();
return marshaller;
}
Modified: trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/binary/JdbcBinaryCacheStore.java
===================================================================
--- trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/binary/JdbcBinaryCacheStore.java 2009-11-12 12:37:01 UTC (rev 1147)
+++ trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/binary/JdbcBinaryCacheStore.java 2009-11-12 12:50:15 UTC (rev 1148)
@@ -46,7 +46,6 @@
private static final Log log = LogFactory.getLog(JdbcBinaryCacheStore.class);
- // TODO shouldn't we move this delimiter to a superclass, if it is the same and needs to be shared between this class and JdbcStringBasedCacheStore ?
private final static byte BINARY_STREAM_DELIMITER = 100;
private JdbcBinaryCacheStoreConfig config;
Modified: trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/binary/JdbcBinaryCacheStoreVamTest.java
===================================================================
--- trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/binary/JdbcBinaryCacheStoreVamTest.java 2009-11-12 12:37:01 UTC (rev 1147)
+++ trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/binary/JdbcBinaryCacheStoreVamTest.java 2009-11-12 12:50:15 UTC (rev 1148)
@@ -21,7 +21,7 @@
*/
package org.infinispan.loaders.jdbc.binary;
-import org.infinispan.commands.RemoteCommandFactory;
+import org.infinispan.commands.RemoteCommandsFactory;
import org.infinispan.marshall.Marshaller;
import org.infinispan.marshall.VersionAwareMarshaller;
import org.testng.annotations.Test;
@@ -37,7 +37,7 @@
@Override
protected Marshaller getMarshaller() {
VersionAwareMarshaller marshaller = new VersionAwareMarshaller();
- marshaller.inject(Thread.currentThread().getContextClassLoader(), new RemoteCommandFactory());
+ marshaller.inject(Thread.currentThread().getContextClassLoader(), new RemoteCommandsFactory());
marshaller.start();
return marshaller;
}
Modified: trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStoreVamTest.java
===================================================================
--- trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStoreVamTest.java 2009-11-12 12:37:01 UTC (rev 1147)
+++ trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStoreVamTest.java 2009-11-12 12:50:15 UTC (rev 1148)
@@ -21,7 +21,7 @@
*/
package org.infinispan.loaders.jdbc.mixed;
-import org.infinispan.commands.RemoteCommandFactory;
+import org.infinispan.commands.RemoteCommandsFactory;
import org.infinispan.marshall.Marshaller;
import org.infinispan.marshall.VersionAwareMarshaller;
import org.testng.annotations.Test;
@@ -37,7 +37,7 @@
@Override
protected Marshaller getMarshaller() {
VersionAwareMarshaller marshaller = new VersionAwareMarshaller();
- marshaller.inject(Thread.currentThread().getContextClassLoader(), new RemoteCommandFactory());
+ marshaller.inject(Thread.currentThread().getContextClassLoader(), new RemoteCommandsFactory());
marshaller.start();
return marshaller;
}
Modified: trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStoreVamTest2.java
===================================================================
--- trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStoreVamTest2.java 2009-11-12 12:37:01 UTC (rev 1147)
+++ trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStoreVamTest2.java 2009-11-12 12:50:15 UTC (rev 1148)
@@ -21,7 +21,7 @@
*/
package org.infinispan.loaders.jdbc.mixed;
-import org.infinispan.commands.RemoteCommandFactory;
+import org.infinispan.commands.RemoteCommandsFactory;
import org.infinispan.marshall.Marshaller;
import org.infinispan.marshall.VersionAwareMarshaller;
import org.testng.annotations.Test;
@@ -37,7 +37,7 @@
@Override
protected Marshaller getMarshaller() {
VersionAwareMarshaller marshaller = new VersionAwareMarshaller();
- marshaller.inject(Thread.currentThread().getContextClassLoader(), new RemoteCommandFactory());
+ marshaller.inject(Thread.currentThread().getContextClassLoader(), new RemoteCommandsFactory());
marshaller.start();
return marshaller;
}
Modified: trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStoreVamTest.java
===================================================================
--- trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStoreVamTest.java 2009-11-12 12:37:01 UTC (rev 1147)
+++ trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStoreVamTest.java 2009-11-12 12:50:15 UTC (rev 1148)
@@ -21,7 +21,7 @@
*/
package org.infinispan.loaders.jdbc.stringbased;
-import org.infinispan.commands.RemoteCommandFactory;
+import org.infinispan.commands.RemoteCommandsFactory;
import org.infinispan.marshall.Marshaller;
import org.infinispan.marshall.VersionAwareMarshaller;
import org.testng.annotations.Test;
@@ -37,7 +37,7 @@
@Override
protected Marshaller getMarshaller() {
VersionAwareMarshaller marshaller = new VersionAwareMarshaller();
- marshaller.inject(Thread.currentThread().getContextClassLoader(), new RemoteCommandFactory());
+ marshaller.inject(Thread.currentThread().getContextClassLoader(), new RemoteCommandsFactory());
marshaller.start();
return marshaller;
}
Modified: trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStoreVamTest2.java
===================================================================
--- trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStoreVamTest2.java 2009-11-12 12:37:01 UTC (rev 1147)
+++ trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStoreVamTest2.java 2009-11-12 12:50:15 UTC (rev 1148)
@@ -21,7 +21,7 @@
*/
package org.infinispan.loaders.jdbc.stringbased;
-import org.infinispan.commands.RemoteCommandFactory;
+import org.infinispan.commands.RemoteCommandsFactory;
import org.infinispan.marshall.Marshaller;
import org.infinispan.marshall.VersionAwareMarshaller;
import org.testng.annotations.Test;
@@ -37,7 +37,7 @@
@Override
protected Marshaller getMarshaller() {
VersionAwareMarshaller marshaller = new VersionAwareMarshaller();
- marshaller.inject(Thread.currentThread().getContextClassLoader(), new RemoteCommandFactory());
+ marshaller.inject(Thread.currentThread().getContextClassLoader(), new RemoteCommandsFactory());
marshaller.start();
return marshaller;
}
Modified: trunk/cachestore/jdbm/src/test/java/org/infinispan/loaders/jdbm/JdbmCacheStoreVamTest.java
===================================================================
--- trunk/cachestore/jdbm/src/test/java/org/infinispan/loaders/jdbm/JdbmCacheStoreVamTest.java 2009-11-12 12:37:01 UTC (rev 1147)
+++ trunk/cachestore/jdbm/src/test/java/org/infinispan/loaders/jdbm/JdbmCacheStoreVamTest.java 2009-11-12 12:50:15 UTC (rev 1148)
@@ -21,7 +21,7 @@
*/
package org.infinispan.loaders.jdbm;
-import org.infinispan.commands.RemoteCommandFactory;
+import org.infinispan.commands.RemoteCommandsFactory;
import org.infinispan.marshall.Marshaller;
import org.infinispan.marshall.VersionAwareMarshaller;
import org.testng.annotations.Test;
@@ -37,7 +37,7 @@
@Override
protected Marshaller getMarshaller() {
VersionAwareMarshaller marshaller = new VersionAwareMarshaller();
- marshaller.inject(Thread.currentThread().getContextClassLoader(), new RemoteCommandFactory());
+ marshaller.inject(Thread.currentThread().getContextClassLoader(), new RemoteCommandsFactory());
marshaller.start();
return marshaller;
}
Modified: trunk/cachestore/s3/src/test/java/org/infinispan/loaders/s3/S3CacheStoreIntegrationVamTest.java
===================================================================
--- trunk/cachestore/s3/src/test/java/org/infinispan/loaders/s3/S3CacheStoreIntegrationVamTest.java 2009-11-12 12:37:01 UTC (rev 1147)
+++ trunk/cachestore/s3/src/test/java/org/infinispan/loaders/s3/S3CacheStoreIntegrationVamTest.java 2009-11-12 12:50:15 UTC (rev 1148)
@@ -21,7 +21,7 @@
*/
package org.infinispan.loaders.s3;
-import org.infinispan.commands.RemoteCommandFactory;
+import org.infinispan.commands.RemoteCommandsFactory;
import org.infinispan.marshall.Marshaller;
import org.infinispan.marshall.VersionAwareMarshaller;
import org.testng.annotations.Test;
@@ -37,7 +37,7 @@
@Override
protected Marshaller getMarshaller() {
VersionAwareMarshaller marshaller = new VersionAwareMarshaller();
- marshaller.inject(Thread.currentThread().getContextClassLoader(), new RemoteCommandFactory());
+ marshaller.inject(Thread.currentThread().getContextClassLoader(), new RemoteCommandsFactory());
marshaller.start();
return marshaller;
}
Modified: trunk/core/src/main/java/org/infinispan/commands/CommandsFactory.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/CommandsFactory.java 2009-11-12 12:37:01 UTC (rev 1147)
+++ trunk/core/src/main/java/org/infinispan/commands/CommandsFactory.java 2009-11-12 12:50:15 UTC (rev 1148)
@@ -55,6 +55,11 @@
import java.util.Map;
/**
+ * A factory to build commands, initializing and injecting dependencies accordingly. Commands built for a specific,
+ * named cache instance cannot be reused on a different cache instance since most commands contain the cache name it
+ * was built for along with references to other named-cache scoped components.
+ *
+ * @author Manik Surtani
* @author Mircea.Markus at jboss.com
* @author Galder Zamarreño
* @since 4.0
@@ -62,36 +67,123 @@
@Scope(Scopes.NAMED_CACHE)
public interface CommandsFactory {
+ /**
+ * Builds a PutKeyValueCommand
+ * @param key key to put
+ * @param value value to put
+ * @param lifespanMillis lifespan in milliseconds. -1 if lifespan is not used.
+ * @param maxIdleTimeMillis max idle time in milliseconds. -1 if maxIdle is not used.
+ * @return a PutKeyValueCommand
+ */
PutKeyValueCommand buildPutKeyValueCommand(Object key, Object value, long lifespanMillis, long maxIdleTimeMillis);
+ /**
+ * Builds a RemoveCommand
+ * @param key key to remove
+ * @param value value to check for ina conditional remove, or null for an unconditional remove.
+ * @return a RemoveCommand
+ */
RemoveCommand buildRemoveCommand(Object key, Object value);
+ /**
+ * Builds an InvalidateCommand
+ * @param keys keys to invalidate
+ * @return an InvalidateCommand
+ */
InvalidateCommand buildInvalidateCommand(Object... keys);
+ /**
+ * Builds an InvalidateFromL1Command
+ * @param keys keys to invalidate
+ * @return an InvalidateFromL1Command
+ */
InvalidateCommand buildInvalidateFromL1Command(Object... keys);
+ /**
+ * Builds a ReplaceCommand
+ * @param key key to replace
+ * @param oldValue existing value to check for if conditional, null if unconditional.
+ * @param newValue value to replace with
+ * @param lifespanMillis lifespan in milliseconds. -1 if lifespan is not used.
+ * @param maxIdleTimeMillis max idle time in milliseconds. -1 if maxIdle is not used.
+ * @return a ReplaceCommand
+ */
ReplaceCommand buildReplaceCommand(Object key, Object oldValue, Object newValue, long lifespanMillis, long maxIdleTimeMillis);
+ /**
+ * Builds a SizeCommand
+ * @return a SizeCommand
+ */
SizeCommand buildSizeCommand();
+ /**
+ * Builds a GetKeyValueCommand
+ * @param key key to get
+ * @return a GetKeyValueCommand
+ */
GetKeyValueCommand buildGetKeyValueCommand(Object key);
+ /**
+ * Builds a KeySetCommand
+ * @return a KeySetCommand
+ */
KeySetCommand buildKeySetCommand();
+ /**
+ * Builds a ValuesCommand
+ * @return a ValuesCommand
+ */
ValuesCommand buildValuesCommand();
+ /**
+ * Builds a EntrySetCommand
+ * @return a EntrySetCommand
+ */
EntrySetCommand buildEntrySetCommand();
+ /**
+ * Builds a PutMapCommand
+ * @param map map containing key/value entries to put
+ * @param lifespanMillis lifespan in milliseconds. -1 if lifespan is not used.
+ * @param maxIdleTimeMillis max idle time in milliseconds. -1 if maxIdle is not used.
+ * @return a PutMapCommand
+ */
PutMapCommand buildPutMapCommand(Map map, long lifespanMillis, long maxIdleTimeMillis);
+ /**
+ * Builds a ClearCommand
+ * @return a ClearCommand
+ */
ClearCommand buildClearCommand();
+ /**
+ * Builds an EvictCommand
+ * @param key key to evict
+ * @return an EvictCommand
+ */
EvictCommand buildEvictCommand(Object key);
+ /**
+ * Builds a PrepareCommand
+ * @param gtx global transaction associated with the prepare
+ * @param modifications list of modifications
+ * @param onePhaseCommit is this a one-phase or two-phase transaction?
+ * @return a PrepareCommand
+ */
PrepareCommand buildPrepareCommand(GlobalTransaction gtx, List<WriteCommand> modifications, boolean onePhaseCommit);
+ /**
+ * Builds a CommitCommand
+ * @param gtx global transaction associated with the commit
+ * @return a CommitCommand
+ */
CommitCommand buildCommitCommand(GlobalTransaction gtx);
+ /**
+ * Builds a RollbackCommand
+ * @param gtx global transaction associated with the rollback
+ * @return a RollbackCommand
+ */
RollbackCommand buildRollbackCommand(GlobalTransaction gtx);
/**
@@ -106,23 +198,94 @@
*/
void initializeReplicableCommand(ReplicableCommand command);
+ /**
+ * Builds an RpcCommand "envelope" containing multiple ReplicableCommands
+ * @param toReplicate ReplicableCommands to include in the envelope
+ * @return a MultipleRpcCommand
+ */
MultipleRpcCommand buildReplicateCommand(List<ReplicableCommand> toReplicate);
+ /**
+ * Builds a SingleRpcCommand "envelope" containing a single ReplicableCommand
+ * @param call ReplicableCommand to include in the envelope
+ * @return a SingleRpcCommand
+ */
SingleRpcCommand buildSingleRpcCommand(ReplicableCommand call);
+ /**
+ * Builds a StateTransferControlCommand
+ * @param block whether to start blocking or not
+ * @return a StateTransferControlCommand
+ */
StateTransferControlCommand buildStateTransferControlCommand(boolean block);
+ /**
+ * Builds a ClusteredGetCommand, which is a remote lookup command
+ * @param key key to look up
+ * @return a ClusteredGetCommand
+ */
ClusteredGetCommand buildClusteredGetCommand(Object key);
+ /**
+ * Builds a LockControlCommand to control exilicit remote locking
+ * @param keys keys to lock
+ * @param implicit whether the lock command was implicit (triggered internally) or explicit (triggered by an API call)
+ * @return a LockControlCommand
+ */
LockControlCommand buildLockControlCommand(Collection keys, boolean implicit);
+ /**
+ * Builds a RehashControlCommand for coordinating a rehash event. This version of this factory method creates a simple
+ * control command with just a command type and sender.
+ * @param subtype type of RehashControlCommand
+ * @param sender sender's Address
+ * @return a RehashControlCommand
+ */
RehashControlCommand buildRehashControlCommand(RehashControlCommand.Type subtype, Address sender);
- RehashControlCommand buildRehashControlCommand(RehashControlCommand.Type subtype, Address sender, Map<Object, InternalCacheValue> state);
+ /**
+ * Builds a RehashControlCommand for coordinating a rehash event. This version of this factory method creates a
+ * control command with a sender and a payload - a map of state to be pushed to the recipient. The {@link org.infinispan.commands.control.RehashControlCommand.Type}
+ * of this command is {@link org.infinispan.commands.control.RehashControlCommand.Type#PUSH_STATE}.
+ *
+ * @param sender sender's Address
+ * @param state state map to be pushed to the recipient of this command
+ * @return a RehashControlCommand
+ */
+ RehashControlCommand buildRehashControlCommand(Address sender, Map<Object, InternalCacheValue> state);
+ /**
+ * Builds a RehashControlCommand for coordinating a rehash event. This version of this factory method creates a
+ * control command with a sender and a payload - a transaction log of writes that occured during the generation and
+ * delivery of state. The {@link org.infinispan.commands.control.RehashControlCommand.Type}
+ * of this command is {@link org.infinispan.commands.control.RehashControlCommand.Type#DRAIN_TX}.
+ *
+ * @param sender sender's Address
+ * @param state list of writes
+ * @return a RehashControlCommand
+ */
RehashControlCommand buildRehashControlCommandTxLog(Address sender, List<WriteCommand> state);
+ /**
+ * Builds a RehashControlCommand for coordinating a rehash event. This version of this factory method creates a
+ * control command with a sender and a payload - a transaction log of pending prepares that occured during the generation
+ * and delivery of state. The {@link org.infinispan.commands.control.RehashControlCommand.Type}
+ * of this command is {@link org.infinispan.commands.control.RehashControlCommand.Type#DRAIN_TX_PREPARES}.
+ *
+ * @param sender sender's Address
+ * @param state list of pending prepares
+ * @return a RehashControlCommand
+ */
RehashControlCommand buildRehashControlCommandTxLogPendingPrepares(Address sender, List<PrepareCommand> state);
+ /**
+ * A more generic version of this factory method that allows the setting of various fields.
+ *
+ * @param subtype type of RehashControlCommand
+ * @param sender sender's Address
+ * @param state state to push
+ * @param consistentHash consistent hash to deliver
+ * @return a RehashControlCommand
+ */
RehashControlCommand buildRehashControlCommand(RehashControlCommand.Type subtype, Address sender, Map<Object, InternalCacheValue> state, ConsistentHash consistentHash);
}
Modified: trunk/core/src/main/java/org/infinispan/commands/CommandsFactoryImpl.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/CommandsFactoryImpl.java 2009-11-12 12:37:01 UTC (rev 1147)
+++ trunk/core/src/main/java/org/infinispan/commands/CommandsFactoryImpl.java 2009-11-12 12:50:15 UTC (rev 1148)
@@ -27,6 +27,7 @@
import org.infinispan.commands.control.StateTransferControlCommand;
import static org.infinispan.commands.control.RehashControlCommand.Type.DRAIN_TX_PREPARES;
import static org.infinispan.commands.control.RehashControlCommand.Type.DRAIN_TX;
+import static org.infinispan.commands.control.RehashControlCommand.Type.PUSH_STATE;
import org.infinispan.commands.read.EntrySetCommand;
import org.infinispan.commands.read.GetKeyValueCommand;
import org.infinispan.commands.read.KeySetCommand;
@@ -293,8 +294,8 @@
return buildRehashControlCommand(type, sender, null, null);
}
- public RehashControlCommand buildRehashControlCommand(RehashControlCommand.Type type, Address sender, Map<Object, InternalCacheValue> state) {
- return buildRehashControlCommand(type, sender, state, null);
+ public RehashControlCommand buildRehashControlCommand(Address sender, Map<Object, InternalCacheValue> state) {
+ return buildRehashControlCommand(PUSH_STATE, sender, state, null);
}
public RehashControlCommand buildRehashControlCommandTxLog(Address sender, List<WriteCommand> commands) {
Deleted: trunk/core/src/main/java/org/infinispan/commands/RemoteCommandFactory.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/RemoteCommandFactory.java 2009-11-12 12:37:01 UTC (rev 1147)
+++ trunk/core/src/main/java/org/infinispan/commands/RemoteCommandFactory.java 2009-11-12 12:50:15 UTC (rev 1148)
@@ -1,113 +0,0 @@
-package org.infinispan.commands;
-
-import org.infinispan.CacheException;
-import org.infinispan.commands.control.LockControlCommand;
-import org.infinispan.commands.control.RehashControlCommand;
-import org.infinispan.commands.control.StateTransferControlCommand;
-import org.infinispan.commands.read.GetKeyValueCommand;
-import org.infinispan.commands.remote.ClusteredGetCommand;
-import org.infinispan.commands.remote.MultipleRpcCommand;
-import org.infinispan.commands.remote.SingleRpcCommand;
-import org.infinispan.commands.tx.CommitCommand;
-import org.infinispan.commands.tx.PrepareCommand;
-import org.infinispan.commands.tx.RollbackCommand;
-import org.infinispan.commands.write.ClearCommand;
-import org.infinispan.commands.write.InvalidateCommand;
-import org.infinispan.commands.write.InvalidateL1Command;
-import org.infinispan.commands.write.PutKeyValueCommand;
-import org.infinispan.commands.write.PutMapCommand;
-import org.infinispan.commands.write.RemoveCommand;
-import org.infinispan.commands.write.ReplaceCommand;
-import org.infinispan.factories.annotations.Inject;
-import org.infinispan.factories.scopes.Scope;
-import org.infinispan.factories.scopes.Scopes;
-import org.infinispan.remoting.transport.Transport;
-
-/**
- * Specifically used to create un-initialized {@link org.infinispan.commands.ReplicableCommand}s from a byte stream.
- *
- * @author Manik Surtani
- * @since 4.0
- */
- at Scope(Scopes.GLOBAL)
-public class RemoteCommandFactory {
- Transport transport;
-
- @Inject
- public void inject(Transport transport) {
- this.transport = transport;
- }
-
- /**
- * Creates an un-initialized command. Un-initialized in the sense that parameters will be set, but any components
- * specific to the cache in question will not be set.
- * <p/>
- * You would typically set these parameters using {@link org.infinispan.commands.CommandsFactory#initializeReplicableCommand(ReplicableCommand)}
- * <p/>
- *
- * @param id id of the command
- * @param parameters parameters to set
- * @return a replicable command
- */
- public ReplicableCommand fromStream(byte id, Object[] parameters) {
- ReplicableCommand command;
- switch (id) {
- case PutKeyValueCommand.COMMAND_ID:
- command = new PutKeyValueCommand();
- break;
- case LockControlCommand.COMMAND_ID:
- command = new LockControlCommand();
- break;
- case PutMapCommand.COMMAND_ID:
- command = new PutMapCommand();
- break;
- case RemoveCommand.COMMAND_ID:
- command = new RemoveCommand();
- break;
- case ReplaceCommand.COMMAND_ID:
- command = new ReplaceCommand();
- break;
- case GetKeyValueCommand.COMMAND_ID:
- command = new GetKeyValueCommand();
- break;
- case ClearCommand.COMMAND_ID:
- command = new ClearCommand();
- break;
- case PrepareCommand.COMMAND_ID:
- command = new PrepareCommand();
- break;
- case CommitCommand.COMMAND_ID:
- command = new CommitCommand();
- break;
- case RollbackCommand.COMMAND_ID:
- command = new RollbackCommand();
- break;
- case MultipleRpcCommand.COMMAND_ID:
- command = new MultipleRpcCommand();
- break;
- case SingleRpcCommand.COMMAND_ID:
- command = new SingleRpcCommand();
- break;
- case InvalidateCommand.COMMAND_ID:
- command = new InvalidateCommand();
- break;
- case InvalidateL1Command.COMMAND_ID:
- command = new InvalidateL1Command();
- break;
- case StateTransferControlCommand.COMMAND_ID:
- command = new StateTransferControlCommand();
- ((StateTransferControlCommand) command).init(transport);
- break;
- case ClusteredGetCommand.COMMAND_ID:
- command = new ClusteredGetCommand();
- break;
- case RehashControlCommand.COMMAND_ID:
- command = new RehashControlCommand(transport);
- break;
- default:
- throw new CacheException("Unknown command id " + id + "!");
- }
- command.setParameters(id, parameters);
- return command;
- }
-}
Copied: trunk/core/src/main/java/org/infinispan/commands/RemoteCommandsFactory.java (from rev 1146, trunk/core/src/main/java/org/infinispan/commands/RemoteCommandFactory.java)
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/RemoteCommandsFactory.java (rev 0)
+++ trunk/core/src/main/java/org/infinispan/commands/RemoteCommandsFactory.java 2009-11-12 12:50:15 UTC (rev 1148)
@@ -0,0 +1,119 @@
+package org.infinispan.commands;
+
+import org.infinispan.CacheException;
+import org.infinispan.commands.control.LockControlCommand;
+import org.infinispan.commands.control.RehashControlCommand;
+import org.infinispan.commands.control.StateTransferControlCommand;
+import org.infinispan.commands.read.GetKeyValueCommand;
+import org.infinispan.commands.remote.ClusteredGetCommand;
+import org.infinispan.commands.remote.MultipleRpcCommand;
+import org.infinispan.commands.remote.SingleRpcCommand;
+import org.infinispan.commands.tx.CommitCommand;
+import org.infinispan.commands.tx.PrepareCommand;
+import org.infinispan.commands.tx.RollbackCommand;
+import org.infinispan.commands.write.ClearCommand;
+import org.infinispan.commands.write.InvalidateCommand;
+import org.infinispan.commands.write.InvalidateL1Command;
+import org.infinispan.commands.write.PutKeyValueCommand;
+import org.infinispan.commands.write.PutMapCommand;
+import org.infinispan.commands.write.RemoveCommand;
+import org.infinispan.commands.write.ReplaceCommand;
+import org.infinispan.factories.annotations.Inject;
+import org.infinispan.factories.scopes.Scope;
+import org.infinispan.factories.scopes.Scopes;
+import org.infinispan.remoting.transport.Transport;
+
+/**
+ * Specifically used to create un-initialized {@link org.infinispan.commands.ReplicableCommand}s from a byte stream.
+ * This is a {@link Scopes#GLOBAL} component and doesn't have knowledge of initializing a command by injecting
+ * cache-specific components into it.
+ * <p />
+ * Usually a second step to unmarshalling a command from a byte stream (after
+ * creating an un-initialized version using this factory) is to pass the command though {@link org.infinispan.commands.CommandsFactory#initializeReplicableCommand(ReplicableCommand)}.
+ *
+ * @see org.infinispan.commands.CommandsFactory#initializeReplicableCommand(ReplicableCommand)
+ * @author Manik Surtani
+ * @since 4.0
+ */
+ at Scope(Scopes.GLOBAL)
+public class RemoteCommandsFactory {
+ Transport transport;
+
+ @Inject
+ public void inject(Transport transport) {
+ this.transport = transport;
+ }
+
+ /**
+ * Creates an un-initialized command. Un-initialized in the sense that parameters will be set, but any components
+ * specific to the cache in question will not be set.
+ * <p/>
+ * You would typically set these parameters using {@link org.infinispan.commands.CommandsFactory#initializeReplicableCommand(ReplicableCommand)}
+ * <p/>
+ *
+ * @param id id of the command
+ * @param parameters parameters to set
+ * @return a replicable command
+ */
+ public ReplicableCommand fromStream(byte id, Object[] parameters) {
+ ReplicableCommand command;
+ switch (id) {
+ case PutKeyValueCommand.COMMAND_ID:
+ command = new PutKeyValueCommand();
+ break;
+ case LockControlCommand.COMMAND_ID:
+ command = new LockControlCommand();
+ break;
+ case PutMapCommand.COMMAND_ID:
+ command = new PutMapCommand();
+ break;
+ case RemoveCommand.COMMAND_ID:
+ command = new RemoveCommand();
+ break;
+ case ReplaceCommand.COMMAND_ID:
+ command = new ReplaceCommand();
+ break;
+ case GetKeyValueCommand.COMMAND_ID:
+ command = new GetKeyValueCommand();
+ break;
+ case ClearCommand.COMMAND_ID:
+ command = new ClearCommand();
+ break;
+ case PrepareCommand.COMMAND_ID:
+ command = new PrepareCommand();
+ break;
+ case CommitCommand.COMMAND_ID:
+ command = new CommitCommand();
+ break;
+ case RollbackCommand.COMMAND_ID:
+ command = new RollbackCommand();
+ break;
+ case MultipleRpcCommand.COMMAND_ID:
+ command = new MultipleRpcCommand();
+ break;
+ case SingleRpcCommand.COMMAND_ID:
+ command = new SingleRpcCommand();
+ break;
+ case InvalidateCommand.COMMAND_ID:
+ command = new InvalidateCommand();
+ break;
+ case InvalidateL1Command.COMMAND_ID:
+ command = new InvalidateL1Command();
+ break;
+ case StateTransferControlCommand.COMMAND_ID:
+ command = new StateTransferControlCommand();
+ ((StateTransferControlCommand) command).init(transport);
+ break;
+ case ClusteredGetCommand.COMMAND_ID:
+ command = new ClusteredGetCommand();
+ break;
+ case RehashControlCommand.COMMAND_ID:
+ command = new RehashControlCommand(transport);
+ break;
+ default:
+ throw new CacheException("Unknown command id " + id + "!");
+ }
+ command.setParameters(id, parameters);
+ return command;
+ }
+}
Property changes on: trunk/core/src/main/java/org/infinispan/commands/RemoteCommandsFactory.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: trunk/core/src/main/java/org/infinispan/commands/control/RehashControlCommand.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/control/RehashControlCommand.java 2009-11-12 12:37:01 UTC (rev 1147)
+++ trunk/core/src/main/java/org/infinispan/commands/control/RehashControlCommand.java 2009-11-12 12:50:15 UTC (rev 1148)
@@ -28,7 +28,10 @@
/**
* A control command to coordinate rehashes that may occur when nodes join or leave a cluster, when DIST is used as a
- * cache mode.
+ * cache mode. This complex command coordinates the various phases of a rehash event when a joiner joins or a leaver
+ * leaves a cluster running in "distribution" mode.
+ * <p />
+ * It may break up into several commands in future.
*
* @author Manik Surtani
* @since 4.0
Modified: trunk/core/src/main/java/org/infinispan/commands/package-info.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/package-info.java 2009-11-12 12:37:01 UTC (rev 1147)
+++ trunk/core/src/main/java/org/infinispan/commands/package-info.java 2009-11-12 12:50:15 UTC (rev 1148)
@@ -1,4 +1,17 @@
/**
- * Commands that operate on the cache, either locally or remotely.
+ * Commands that operate on the cache, either locally or remotely. This package contains the entire command object
+ * model including interfaces and abstract classes. Your starting point is probably {@link ReplicableCommand}, which
+ * represents a command that can be used in RPC calls.
+ * <p />
+ * A sub-interface, {@link VisitableCommand}, represents commands that can be visited using the <a href="http://en.wikipedia.org/wiki/Visitor_pattern">visitor pattern</a>.
+ * Most commands that relate to public {@link Cache} API methods tend to be {@link VisitableCommand}s, and hence the
+ * importance of this interface.
+ * <p />
+ * The {@link Visitor} interface is capable of visiting {@link VisitableCommand}s, and a useful abstract implementation
+ * of {@link Visitor} is {@link org.infinispan.interceptors.base.CommandInterceptor}, which allows you to create
+ * interceptors that intercept command invocations adding aspects of behavior to a given invocation.
+ *
+ * @author Manik Surtani
+ * @since 4.0
*/
package org.infinispan.commands;
\ No newline at end of file
Modified: trunk/core/src/main/java/org/infinispan/container/package-info.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/container/package-info.java 2009-11-12 12:37:01 UTC (rev 1147)
+++ trunk/core/src/main/java/org/infinispan/container/package-info.java 2009-11-12 12:50:15 UTC (rev 1148)
@@ -2,5 +2,8 @@
* Data containers which store cache entries. This package contains different implementations of
* containers based on their performance and ordering characteristics, as well as the entries
* that live in the containers.
+ * <p />
+ * This package also contains the factory for creating entries, and is typically used by the {@link LockingInterceptor}
+ * to wrap an entry and put it in a thread's {@link InvocationContext}
*/
package org.infinispan.container;
\ No newline at end of file
Modified: trunk/core/src/main/java/org/infinispan/distribution/AbstractConsistentHash.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/distribution/AbstractConsistentHash.java 2009-11-12 12:37:01 UTC (rev 1147)
+++ trunk/core/src/main/java/org/infinispan/distribution/AbstractConsistentHash.java 2009-11-12 12:50:15 UTC (rev 1148)
@@ -8,8 +8,13 @@
import java.util.Map;
/**
- * An abstract consistent hash implementation that handles common implementations of certain methods.
- *
+ * An abstract consistent hash implementation that handles common implementations of certain methods. In particular,
+ * default implementations of {@link #locateAll(java.util.Collection, int)} and {@link #isKeyLocalToAddress(org.infinispan.remoting.transport.Address, Object, int)}.
+ * <p />
+ * The versions provided here are relatively inefficient in that they call {@link #locate(Object, int)} first (and
+ * sometimes in a loop). Depending on the algorithm used, there may be more efficient ways to achieve the same results
+ * and in such cases the methods provided here should be overridden.
+ * <p />
* @author Manik Surtani
* @since 4.0
*/
Modified: trunk/core/src/main/java/org/infinispan/distribution/DistributionManager.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/distribution/DistributionManager.java 2009-11-12 12:37:01 UTC (rev 1147)
+++ trunk/core/src/main/java/org/infinispan/distribution/DistributionManager.java 2009-11-12 12:50:15 UTC (rev 1148)
@@ -46,32 +46,52 @@
Map<Object, List<Address>> locateAll(Collection<Object> keys);
/**
- * Transforms a cache entry so it is marked for L1 rather than the primary cache data structure.
+ * Transforms a cache entry so it is marked for L1 rather than the primary cache data structure. This should be done
+ * if it is deemed that the entry is targeted for L1 storage rather than storage in the primary data container.
*
* @param entry entry to transform
*/
void transformForL1(CacheEntry entry);
/**
- * Retrieves a cache entry from a remote source
+ * Retrieves a cache entry from a remote source. Would typically involve an RPC call using a {@link org.infinispan.commands.remote.ClusteredGetCommand}
+ * and some form of quorum of responses if the responses returned are inconsistent - often the case if there is a
+ * rehash in progress, involving nodes that the key maps to.
*
* @param key key to look up
* @return an internal cache entry, or null if it cannot be located
+ * @throws Exception if something bad happens
*/
InternalCacheEntry retrieveFromRemoteSource(Object key) throws Exception;
+ /**
+ * Retrieves the consistent hash instance currently in use, which may be an instance of the configured ConsistentHash
+ * instance (which defaults to {@link org.infinispan.distribution.DefaultConsistentHash}, or an instance of
+ * {@link org.infinispan.distribution.UnionConsistentHash} if a rehash is in progress.
+ *
+ * @return a ConsistentHash instance
+ */
ConsistentHash getConsistentHash();
+ /**
+ * Sets the consistent hash implementation in use.
+ * @param consistentHash consistent hash to set to
+ */
void setConsistentHash(ConsistentHash consistentHash);
/**
- * Tests whether a given key is affected by a rehash that may be in progress.
+ * Tests whether a given key is affected by a rehash that may be in progress. If no rehash is in progress, this method
+ * returns false. Helps determine whether additional steps are necessary in handling an operation with a given key.
*
* @param key key to test
* @return whether a key is affected by a rehash
*/
boolean isAffectedByRehash(Object key);
+ /**
+ * Retrieves the transaction logger instance associated with this DistributionManager
+ * @return a TransactionLogger
+ */
TransactionLogger getTransactionLogger();
/**
@@ -91,10 +111,11 @@
void notifyJoinComplete(Address joiner);
/**
- * This will cause all nodes to add the joiner to their UnionCH
+ * This will cause all nodes to add the joiner to their consistent hash instance (usually by creating a {@link org.infinispan.distribution.UnionConsistentHash}
*
- * @param joiner
- * @param starting
+ * @param joiner address of joiner
+ * @param starting if true, the joiner is reporting that it is starting the join process. If false, the joiner is
+ * reporting that it has completed the join process.
*/
void informRehashOnJoin(Address joiner, boolean starting);
@@ -105,14 +126,38 @@
*/
CacheStore getCacheStoreForRehashing();
+ /**
+ * Tests whether a rehash is in progress
+ * @return true if a rehash is in progress, false otherwise
+ */
boolean isRehashInProgress();
+ /**
+ * Tests whether the current instance has completed joining the cluster
+ * @return true if join is in progress, false otherwise
+ */
boolean isJoinComplete();
+ /**
+ * Applies a state map received via a RehashControlCommand. Usually this means state has been pushed to the
+ * current node probably due to another node leaving the cluster.
+ * @param state state to apply
+ */
void applyReceivedState(Map<Object, InternalCacheValue> state);
-
+
+ /**
+ * A helper method that retrieves a list of nodes affected by operations on a set of keys. This helper will in turn
+ * call {@link #locateAll(java.util.Collection)} and then combine the result addresses.
+ * @param affectedKeys keys to locate
+ * @return a list of addresses which represent a combined set of all addresses affected by the set of keys.
+ */
List<Address> getAffectedNodes(Set<Object> affectedKeys);
- void applyRemoteTxLog(List<WriteCommand> txLogCommands);
+ /**
+ * Applies an ordered list of modifications to the current node. Typically used when state is pushed to the node
+ * (i.e., anotehr node leaves the cluster) and the transaction log needs to be flushed after pushing state.
+ * @param modifications ordered list of mods
+ */
+ void applyRemoteTxLog(List<WriteCommand> modifications);
}
Modified: trunk/core/src/main/java/org/infinispan/distribution/LeaveTask.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/distribution/LeaveTask.java 2009-11-12 12:37:01 UTC (rev 1147)
+++ trunk/core/src/main/java/org/infinispan/distribution/LeaveTask.java 2009-11-12 12:50:15 UTC (rev 1148)
@@ -78,7 +78,7 @@
Set<Future<Object>> pushFutures = new HashSet<Future<Object>>();
for (Map.Entry<Address, Map<Object, InternalCacheValue>> entry : statemap.getState().entrySet()) {
if (log.isDebugEnabled()) log.debug("Pushing {0} entries to {1}", entry.getValue().size(), entry.getKey());
- RehashControlCommand push = cf.buildRehashControlCommand(RehashControlCommand.Type.PUSH_STATE, self, entry.getValue());
+ RehashControlCommand push = cf.buildRehashControlCommand(self, entry.getValue());
NotifyingNotifiableFuture<Object> f = new NotifyingFutureImpl(null);
pushFutures.add(f);
rpcManager.invokeRemotelyInFuture(Collections.singleton(entry.getKey()), push, true, f, configuration.getRehashRpcTimeout());
Modified: trunk/core/src/main/java/org/infinispan/distribution/TransactionLogger.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/distribution/TransactionLogger.java 2009-11-12 12:37:01 UTC (rev 1147)
+++ trunk/core/src/main/java/org/infinispan/distribution/TransactionLogger.java 2009-11-12 12:50:15 UTC (rev 1148)
@@ -11,18 +11,39 @@
/**
* Typically adding a command, the following pattern would be used:
* <p/>
- * <code> if (txLogger.logIfNeeded(cmd)) { // do NOT proceed with executing this command! } else { // proceed with
- * executing this command as per normal! } </code>
+ * <code>
+ *
+ * if (txLogger.logIfNeeded(cmd)) {
+ * // do NOT proceed with executing this command!
+ * } else {
+ * // proceed with executing this command as per normal!
+ * }
+ *
+ * </code>
* <p/>
* When draining, the following pattern should be used:
* <p/>
- * <code> List<WriteCommand> c = null; while (txLogger.size() > THRESHOLD) { c = txLogger.drain(); applyCommands(c); } c
- * = txLogger.drainAndLock(); applyCommands(c); txLogger.unlockAndDisable(); </code>
+ * <code>
*
+ * List<WriteCommand> c = null;
+ * while (txLogger.shouldDrainWithoutLock()) {
+ * c = txLogger.drain();
+ * applyCommands(c);
+ * }
+ *
+ * c = txLogger.drainAndLock();
+ * applyCommands(c);
+ * applyPendingPrepares(txLogger.getPendingPrepares());
+ * txLogger.unlockAndDisable();
+ * </code>
+ *
* @author Manik Surtani
* @since 4.0
*/
public interface TransactionLogger {
+ /**
+ * Enables transaction logging
+ */
void enable();
/**
@@ -40,6 +61,9 @@
*/
List<WriteCommand> drainAndLock();
+ /**
+ * Unlocks and disables the transaction logger. Should <i>only</i> be called after {@link #drainAndLock()}.
+ */
void unlockAndDisable();
/**
@@ -50,10 +74,22 @@
*/
boolean logIfNeeded(WriteCommand command);
+ /**
+ * Logs a PrepareCommand if needed.
+ * @param command PrepoareCommand to log
+ */
void logIfNeeded(PrepareCommand command);
+ /**
+ * Logs a CommitCommand if needed.
+ * @param command CommitCommand to log
+ */
void logIfNeeded(CommitCommand command);
+ /**
+ * Logs a RollbackCommand if needed.
+ * @param command RollbackCommand to log
+ */
void logIfNeeded(RollbackCommand command);
/**
@@ -64,8 +100,10 @@
*/
boolean logIfNeeded(Collection<WriteCommand> commands);
- int size();
-
+ /**
+ * Checks whether transaction logging is enabled
+ * @return true if enabled, false otherwise.
+ */
boolean isEnabled();
/**
Modified: trunk/core/src/main/java/org/infinispan/distribution/TransactionLoggerImpl.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/distribution/TransactionLoggerImpl.java 2009-11-12 12:37:01 UTC (rev 1147)
+++ trunk/core/src/main/java/org/infinispan/distribution/TransactionLoggerImpl.java 2009-11-12 12:50:15 UTC (rev 1148)
@@ -148,7 +148,7 @@
return false;
}
- public int size() {
+ private int size() {
return enabled ? 0 : commandQueue.size();
}
Modified: trunk/core/src/main/java/org/infinispan/factories/EmptyConstructorFactory.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/factories/EmptyConstructorFactory.java 2009-11-12 12:37:01 UTC (rev 1147)
+++ trunk/core/src/main/java/org/infinispan/factories/EmptyConstructorFactory.java 2009-11-12 12:50:15 UTC (rev 1148)
@@ -1,6 +1,6 @@
package org.infinispan.factories;
-import org.infinispan.commands.RemoteCommandFactory;
+import org.infinispan.commands.RemoteCommandsFactory;
import org.infinispan.config.ConfigurationException;
import org.infinispan.factories.annotations.DefaultFactoryFor;
import org.infinispan.factories.scopes.Scope;
@@ -18,7 +18,7 @@
* @author <a href="mailto:galder.zamarreno at jboss.com">Galder Zamarreno</a>
* @since 4.0
*/
- at DefaultFactoryFor(classes = {InboundInvocationHandler.class, CacheManagerNotifier.class, RemoteCommandFactory.class, TransactionTable.class, GlobalTransactionFactory.class})
+ at DefaultFactoryFor(classes = {InboundInvocationHandler.class, CacheManagerNotifier.class, RemoteCommandsFactory.class, TransactionTable.class, GlobalTransactionFactory.class})
@Scope(Scopes.GLOBAL)
public class EmptyConstructorFactory extends AbstractComponentFactory implements AutoInstantiableFactory {
public <T> T construct(Class<T> componentType) {
Modified: trunk/core/src/main/java/org/infinispan/marshall/VersionAwareMarshaller.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/marshall/VersionAwareMarshaller.java 2009-11-12 12:37:01 UTC (rev 1147)
+++ trunk/core/src/main/java/org/infinispan/marshall/VersionAwareMarshaller.java 2009-11-12 12:50:15 UTC (rev 1148)
@@ -21,7 +21,7 @@
*/
package org.infinispan.marshall;
-import org.infinispan.commands.RemoteCommandFactory;
+import org.infinispan.commands.RemoteCommandsFactory;
import org.infinispan.factories.annotations.Inject;
import org.infinispan.factories.annotations.Start;
import org.infinispan.factories.annotations.Stop;
@@ -57,22 +57,22 @@
private final JBossMarshaller defaultMarshaller;
private ClassLoader loader;
- private RemoteCommandFactory remoteCommandFactory;
+ private RemoteCommandsFactory remoteCommandsFactory;
public VersionAwareMarshaller() {
defaultMarshaller = new JBossMarshaller();
}
@Inject
- public void inject(ClassLoader loader, RemoteCommandFactory remoteCommandFactory) {
+ public void inject(ClassLoader loader, RemoteCommandsFactory remoteCommandsFactory) {
this.loader = loader;
- this.remoteCommandFactory = remoteCommandFactory;
+ this.remoteCommandsFactory = remoteCommandsFactory;
}
@Start(priority = 9)
// should start before Transport component
public void start() {
- defaultMarshaller.start(loader, remoteCommandFactory, this);
+ defaultMarshaller.start(loader, remoteCommandsFactory, this);
}
@Stop
Modified: trunk/core/src/main/java/org/infinispan/marshall/exts/ReplicableCommandExternalizer.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/marshall/exts/ReplicableCommandExternalizer.java 2009-11-12 12:37:01 UTC (rev 1147)
+++ trunk/core/src/main/java/org/infinispan/marshall/exts/ReplicableCommandExternalizer.java 2009-11-12 12:50:15 UTC (rev 1148)
@@ -21,7 +21,7 @@
*/
package org.infinispan.marshall.exts;
-import org.infinispan.commands.RemoteCommandFactory;
+import org.infinispan.commands.RemoteCommandsFactory;
import org.infinispan.commands.ReplicableCommand;
import org.infinispan.marshall.Externalizer;
import org.infinispan.io.UnsignedNumeric;
@@ -37,9 +37,9 @@
* @since 4.0
*/
public class ReplicableCommandExternalizer implements Externalizer {
- private RemoteCommandFactory cmdFactory;
+ private RemoteCommandsFactory cmdFactory;
- public void inject(RemoteCommandFactory cmdFactory) {
+ public void inject(RemoteCommandsFactory cmdFactory) {
this.cmdFactory = cmdFactory;
}
Modified: trunk/core/src/main/java/org/infinispan/marshall/jboss/ConstantObjectTable.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/marshall/jboss/ConstantObjectTable.java 2009-11-12 12:37:01 UTC (rev 1147)
+++ trunk/core/src/main/java/org/infinispan/marshall/jboss/ConstantObjectTable.java 2009-11-12 12:50:15 UTC (rev 1148)
@@ -27,7 +27,7 @@
import org.infinispan.atomic.ClearOperation;
import org.infinispan.atomic.PutOperation;
import org.infinispan.atomic.RemoveOperation;
-import org.infinispan.commands.RemoteCommandFactory;
+import org.infinispan.commands.RemoteCommandsFactory;
import org.infinispan.commands.control.LockControlCommand;
import org.infinispan.commands.control.RehashControlCommand;
import org.infinispan.commands.control.StateTransferControlCommand;
@@ -178,7 +178,7 @@
*/
private final Map<Integer, ExternalizerAdapter> readers = new HashMap<Integer, ExternalizerAdapter>();
- public void start(RemoteCommandFactory cmdFactory, org.infinispan.marshall.Marshaller ispnMarshaller) {
+ public void start(RemoteCommandsFactory cmdFactory, org.infinispan.marshall.Marshaller ispnMarshaller) {
HashSet<Integer> ids = new HashSet<Integer>();
for (Map.Entry<String, String> entry : JDK_EXTERNALIZERS.entrySet()) {
Modified: trunk/core/src/main/java/org/infinispan/marshall/jboss/JBossMarshaller.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/marshall/jboss/JBossMarshaller.java 2009-11-12 12:37:01 UTC (rev 1147)
+++ trunk/core/src/main/java/org/infinispan/marshall/jboss/JBossMarshaller.java 2009-11-12 12:50:15 UTC (rev 1148)
@@ -22,7 +22,7 @@
package org.infinispan.marshall.jboss;
import org.infinispan.CacheException;
-import org.infinispan.commands.RemoteCommandFactory;
+import org.infinispan.commands.RemoteCommandsFactory;
import org.infinispan.io.ByteBuffer;
import org.infinispan.io.ExposedByteArrayOutputStream;
import org.infinispan.marshall.AbstractMarshaller;
@@ -93,7 +93,7 @@
}
};
- public void start(ClassLoader defaultCl, RemoteCommandFactory cmdFactory, org.infinispan.marshall.Marshaller ispnMarshaller) {
+ public void start(ClassLoader defaultCl, RemoteCommandsFactory cmdFactory, org.infinispan.marshall.Marshaller ispnMarshaller) {
if (log.isDebugEnabled()) log.debug("Using JBoss Marshalling");
this.defaultCl = defaultCl;
try {
@@ -207,7 +207,7 @@
return in.readObject();
}
- private ConstantObjectTable createCustomObjectTable(RemoteCommandFactory cmdFactory, org.infinispan.marshall.Marshaller ispnMarshaller) {
+ private ConstantObjectTable createCustomObjectTable(RemoteCommandsFactory cmdFactory, org.infinispan.marshall.Marshaller ispnMarshaller) {
ConstantObjectTable objectTable = new ConstantObjectTable();
objectTable.start(cmdFactory, ispnMarshaller);
return objectTable;
Modified: trunk/core/src/test/java/org/infinispan/loaders/file/FileCacheStoreVamTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/loaders/file/FileCacheStoreVamTest.java 2009-11-12 12:37:01 UTC (rev 1147)
+++ trunk/core/src/test/java/org/infinispan/loaders/file/FileCacheStoreVamTest.java 2009-11-12 12:50:15 UTC (rev 1148)
@@ -21,7 +21,7 @@
*/
package org.infinispan.loaders.file;
-import org.infinispan.commands.RemoteCommandFactory;
+import org.infinispan.commands.RemoteCommandsFactory;
import org.infinispan.marshall.Marshaller;
import org.infinispan.marshall.VersionAwareMarshaller;
import org.testng.annotations.Test;
@@ -37,7 +37,7 @@
@Override
protected Marshaller getMarshaller() {
VersionAwareMarshaller marshaller = new VersionAwareMarshaller();
- marshaller.inject(Thread.currentThread().getContextClassLoader(), new RemoteCommandFactory());
+ marshaller.inject(Thread.currentThread().getContextClassLoader(), new RemoteCommandsFactory());
marshaller.start();
return marshaller;
}
Modified: trunk/core/src/test/java/org/infinispan/marshall/VersionAwareMarshallerTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/marshall/VersionAwareMarshallerTest.java 2009-11-12 12:37:01 UTC (rev 1147)
+++ trunk/core/src/test/java/org/infinispan/marshall/VersionAwareMarshallerTest.java 2009-11-12 12:50:15 UTC (rev 1148)
@@ -25,7 +25,7 @@
import org.infinispan.atomic.AtomicHashMap;
import org.infinispan.atomic.AtomicHashMapDelta;
import org.infinispan.atomic.NullDelta;
-import org.infinispan.commands.RemoteCommandFactory;
+import org.infinispan.commands.RemoteCommandsFactory;
import org.infinispan.commands.ReplicableCommand;
import org.infinispan.commands.control.StateTransferControlCommand;
import org.infinispan.commands.read.GetKeyValueCommand;
@@ -95,7 +95,7 @@
@BeforeTest
public void setUp() {
- marshaller.inject(Thread.currentThread().getContextClassLoader(), new RemoteCommandFactory());
+ marshaller.inject(Thread.currentThread().getContextClassLoader(), new RemoteCommandsFactory());
marshaller.start();
}
Modified: trunk/core/src/test/java/org/infinispan/marshall/jboss/JBossMarshallerTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/marshall/jboss/JBossMarshallerTest.java 2009-11-12 12:37:01 UTC (rev 1147)
+++ trunk/core/src/test/java/org/infinispan/marshall/jboss/JBossMarshallerTest.java 2009-11-12 12:50:15 UTC (rev 1148)
@@ -22,12 +22,8 @@
*/
package org.infinispan.marshall.jboss;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-
import org.infinispan.CacheException;
-import org.infinispan.commands.RemoteCommandFactory;
+import org.infinispan.commands.RemoteCommandsFactory;
import org.infinispan.marshall.Ids;
import org.infinispan.marshall.Marshallable;
import org.infinispan.marshall.Marshaller;
@@ -37,6 +33,10 @@
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
/**
* Test the behaivour of JBoss Marshalling based {@link Marshaller} implementation
* which is {@link JBossMarshaller}}. This class should contain methods that exercise
@@ -50,7 +50,7 @@
@BeforeTest
public void setUp() {
- marshaller.inject(Thread.currentThread().getContextClassLoader(), new RemoteCommandFactory());
+ marshaller.inject(Thread.currentThread().getContextClassLoader(), new RemoteCommandsFactory());
marshaller.start();
}
@@ -63,7 +63,7 @@
JBossMarshaller jbmarshaller = new JBossMarshaller();
ConstantObjectTable.MARSHALLABLES.add(DuplicateIdClass.class.getName());
try {
- jbmarshaller.start(Thread.currentThread().getContextClassLoader(), new RemoteCommandFactory(), marshaller);
+ jbmarshaller.start(Thread.currentThread().getContextClassLoader(), new RemoteCommandsFactory(), marshaller);
assert false : "Should have thrown a CacheException reporting the duplicate id";
} catch (CacheException ce) {
} finally {
More information about the infinispan-commits
mailing list