[jbosscache-commits] JBoss Cache SVN: r5544 - in core/trunk/src/main/java/org/jboss/cache: commands/cachedata and 3 other directories.

jbosscache-commits at lists.jboss.org jbosscache-commits at lists.jboss.org
Sat Apr 12 19:01:09 EDT 2008


Author: manik.surtani at jboss.com
Date: 2008-04-12 19:01:09 -0400 (Sat, 12 Apr 2008)
New Revision: 5544

Modified:
   core/trunk/src/main/java/org/jboss/cache/commands/BaseCacheCommand.java
   core/trunk/src/main/java/org/jboss/cache/commands/CommandsFactory.java
   core/trunk/src/main/java/org/jboss/cache/commands/EvictFqnCommand.java
   core/trunk/src/main/java/org/jboss/cache/commands/GravitateDataCommand.java
   core/trunk/src/main/java/org/jboss/cache/commands/InvalidateCommand.java
   core/trunk/src/main/java/org/jboss/cache/commands/cachedata/ExistsNodeCommand.java
   core/trunk/src/main/java/org/jboss/cache/commands/cachedata/GetChildrenNamesCommand.java
   core/trunk/src/main/java/org/jboss/cache/commands/cachedata/GetDataMapCommand.java
   core/trunk/src/main/java/org/jboss/cache/commands/cachedata/GetKeyValueCommand.java
   core/trunk/src/main/java/org/jboss/cache/commands/cachedata/GetKeysCommand.java
   core/trunk/src/main/java/org/jboss/cache/commands/cachedata/GetNodeCommand.java
   core/trunk/src/main/java/org/jboss/cache/commands/cachedata/MoveCommand.java
   core/trunk/src/main/java/org/jboss/cache/commands/cachedata/PutDataMapCommand.java
   core/trunk/src/main/java/org/jboss/cache/commands/cachedata/PutKeyValueCommand.java
   core/trunk/src/main/java/org/jboss/cache/commands/cachedata/RemoveDataCommand.java
   core/trunk/src/main/java/org/jboss/cache/commands/cachedata/RemoveKeyCommand.java
   core/trunk/src/main/java/org/jboss/cache/commands/cachedata/RemoveNodeCommand.java
   core/trunk/src/main/java/org/jboss/cache/commands/remote/AnnounceBuddyPoolNameCommand.java
   core/trunk/src/main/java/org/jboss/cache/commands/remote/AssignToBuddyGroupCommand.java
   core/trunk/src/main/java/org/jboss/cache/commands/remote/DataGravitationCleanupCommand.java
   core/trunk/src/main/java/org/jboss/cache/commands/remote/RemoveFromBuddyGroupCommand.java
   core/trunk/src/main/java/org/jboss/cache/commands/remote/ReplicateCommand.java
   core/trunk/src/main/java/org/jboss/cache/invocation/CacheInvocationDelegate.java
   core/trunk/src/main/java/org/jboss/cache/invocation/InterceptorChain.java
   core/trunk/src/main/java/org/jboss/cache/marshall/CacheMarshaller200.java
   core/trunk/src/main/java/org/jboss/cache/marshall/CommandAwareRpcDispatcher.java
   core/trunk/src/main/java/org/jboss/cache/marshall/InactiveRegionAwareRpcDispatcher.java
   core/trunk/src/main/java/org/jboss/cache/marshall/RegionalizedMethodCall.java
Log:
Updates to commands

Modified: core/trunk/src/main/java/org/jboss/cache/commands/BaseCacheCommand.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/commands/BaseCacheCommand.java	2008-04-12 23:00:29 UTC (rev 5543)
+++ core/trunk/src/main/java/org/jboss/cache/commands/BaseCacheCommand.java	2008-04-12 23:01:09 UTC (rev 5544)
@@ -4,6 +4,7 @@
 import org.apache.commons.logging.LogFactory;
 import org.jboss.cache.CacheSPI;
 import org.jboss.cache.config.Configuration;
+import org.jboss.cache.factories.annotations.Inject;
 import org.jboss.cache.invocation.CacheData;
 import org.jboss.cache.notifications.Notifier;
 
@@ -19,13 +20,16 @@
    protected CacheData cacheData;
    protected CacheSPI spi;
    protected Configuration configuration;
+   protected static boolean trace;
 
+   @Inject
    public void init(Notifier notifier, CacheData cacheData, CacheSPI spi, Configuration configuration)
    {
       this.notifier = notifier;
       this.cacheData = cacheData;
       this.spi = spi;
       this.configuration = configuration;
+      trace = log.isTraceEnabled();
    }
 
    public Notifier getNotifier()

Modified: core/trunk/src/main/java/org/jboss/cache/commands/CommandsFactory.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/commands/CommandsFactory.java	2008-04-12 23:00:29 UTC (rev 5543)
+++ core/trunk/src/main/java/org/jboss/cache/commands/CommandsFactory.java	2008-04-12 23:01:09 UTC (rev 5544)
@@ -20,18 +20,18 @@
 import org.jboss.cache.commands.tx.PrepareCommand;
 import org.jboss.cache.commands.tx.RollbackCommand;
 import org.jboss.cache.config.Configuration;
+import org.jboss.cache.factories.ComponentRegistry;
 import org.jboss.cache.factories.annotations.Inject;
 import org.jboss.cache.invocation.CacheData;
 import org.jboss.cache.invocation.CacheTransactionHelper;
 import org.jboss.cache.invocation.InterceptorChain;
-import org.jboss.cache.marshall.MethodCall;
 import org.jboss.cache.notifications.Notifier;
 import org.jboss.cache.transaction.GlobalTransaction;
 import org.jboss.cache.transaction.TransactionTable;
 import org.jgroups.Address;
 
 import javax.transaction.TransactionManager;
-import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
@@ -59,11 +59,12 @@
    private CacheTransactionHelper transactionHelper;
    private BuddyManager buddyManager;
    private InterceptorChain interceptorChain;
+   private ComponentRegistry registry;
 
    @Inject
    public void initialize(Notifier notifier, TransactionTable transactionTable, CacheData cacheData, CacheSPI spi,
                           Configuration configuration, TransactionManager txm, RPCManager rpc, CacheTransactionHelper txHelper,
-                          BuddyManager buddyManager, InterceptorChain interceptorChain)
+                          BuddyManager buddyManager, InterceptorChain interceptorChain, ComponentRegistry registry)
    {
       this.notifier = notifier;
       this.transactionTable = transactionTable;
@@ -75,208 +76,241 @@
       this.transactionHelper = txHelper;
       this.buddyManager = buddyManager;
       this.interceptorChain = interceptorChain;
+      this.registry = registry;
    }
 
    public PutDataMapCommand buildPutDataMapCommand(GlobalTransaction gtx, Fqn fqn, Map data, boolean createUndoOps, boolean eraseContents)
    {
-      PutDataMapCommand putDataMapCommand = new PutDataMapCommand(gtx, fqn, data, createUndoOps, eraseContents);
-      putDataMapCommand.initialize(cacheData, notifier, transactionTable);
-      return putDataMapCommand;
+      PutDataMapCommand cmd = new PutDataMapCommand(gtx, fqn, data, createUndoOps, eraseContents);
+      //putDataMapCommand.initialize(cacheData, notifier, transactionTable);
+      registry.wireDependencies(cmd);
+      return cmd;
    }
 
    public PutKeyValueCommand buildPutKeyValueCommand(GlobalTransaction gtx, Fqn fqn, Object key, Object value, boolean createUndoOps, boolean putForExternalRead)
    {
       PutKeyValueCommand command = new PutKeyValueCommand(gtx, fqn, key, value, createUndoOps, putForExternalRead);
-      command.initialize(cacheData, notifier, transactionTable);
+      //command.initialize(cacheData, notifier, transactionTable);
+      registry.wireDependencies(command);
       return command;
    }
 
-
    public ReplicateCommand buildReplicateCommand(MarshallableCommand command)
    {
-      return new ReplicateCommand(command);
+      ReplicateCommand cmd = new ReplicateCommand(command);
+      registry.wireDependencies(cmd);
+      return cmd;
    }
 
    public ReplicateCommand buildReplicateCommand(List<MarshallableCommand> modifications)
    {
-      return new ReplicateCommand(modifications);
+      ReplicateCommand cmd = new ReplicateCommand(modifications);
+      registry.wireDependencies(cmd);
+      return cmd;
    }
 
    public PrepareCommand buildPrepareCommand(GlobalTransaction gtx, CacheCommand command, boolean onePhaseCommit)
    {
-      Address localAddress = rpcManager.getLocalAddress();
-      List<CacheCommand> modList = new ArrayList<CacheCommand>(1);
-      modList.add(command);
-      return buildPrepareCommand(gtx, modList, localAddress, onePhaseCommit);
+      return buildPrepareCommand(gtx, Collections.singletonList(command), rpcManager.getLocalAddress(), onePhaseCommit);
    }
 
    public PrepareCommand buildPrepareCommand(GlobalTransaction gtx, List<? extends CacheCommand> modifications, Address address, boolean onePhaseCommit)
    {
-      return new PrepareCommand(gtx, modifications, address, onePhaseCommit);
+      PrepareCommand cmd = new PrepareCommand(gtx, modifications, address, onePhaseCommit);
+      registry.wireDependencies(cmd);
+      return cmd;
    }
 
    public CommitCommand buildCommitCommand(GlobalTransaction gtx)
    {
-      return new CommitCommand(gtx);
+      CommitCommand cmd = new CommitCommand(gtx);
+      registry.wireDependencies(cmd);
+      return cmd;
    }
 
    public DataGravitationCleanupCommand buildDataGravitationCleanupCommand(Fqn primaryFqn, Fqn backupFqn)
    {
       DataGravitationCleanupCommand command = new DataGravitationCleanupCommand(primaryFqn, backupFqn);
-      command.initialize(buddyManager, interceptorChain, transactionHelper, this, cacheData);
+      //command.initialize(buddyManager, interceptorChain, transactionHelper, this, cacheData);
+      registry.wireDependencies(command);
       return command;
    }
 
    public GravitateDataCommand buildGravitateDataCommand(Fqn fqn, Boolean searchSubtrees)
    {
       GravitateDataCommand command = new GravitateDataCommand(fqn, searchSubtrees);
-      command.initialize(spi, rpcManager, cacheData);
+      //command.initialize(spi, rpcManager, cacheData);
+      registry.wireDependencies(command);
       return command;
    }
 
    public RemoveNodeCommand buildRemoveNodeCommand(GlobalTransaction gtx, Fqn fqn, boolean eviction, boolean skipSendingNodeEvents, boolean createUndoOps)
    {
       RemoveNodeCommand command = new RemoveNodeCommand(gtx, fqn, createUndoOps, skipSendingNodeEvents, eviction);
-      command.initialize(cacheData, transactionTable, notifier, configuration.isNodeLockingOptimistic());
+//      command.initialize(cacheData, transactionTable, notifier, configuration.isNodeLockingOptimistic());
+      registry.wireDependencies(command);
       return command;
    }
 
    public RemoveDataCommand buildRemoveDataCommand(GlobalTransaction gtx, Fqn fqn, boolean createUndoops, boolean sendNodeEvent, boolean eviction)
    {
       RemoveDataCommand command = new RemoveDataCommand(gtx, fqn, createUndoops, sendNodeEvent, eviction);
-      command.initialize(cacheData, transactionTable, notifier);
+//      command.initialize(cacheData, transactionTable, notifier);
+      registry.wireDependencies(command);
       return command;
    }
 
    public EvictFqnCommand buildEvictFqnCommand(Fqn fqn)
    {
       EvictFqnCommand command = new EvictFqnCommand(fqn);
-      command.initialize(cacheData);
+//      command.initialize(cacheData);
+      registry.wireDependencies(command);
       return command;
    }
 
    public InvalidateCommand buildInvalidateCommand(Fqn fqn)
    {
       InvalidateCommand command = new InvalidateCommand(fqn);
-      command.initialize(cacheData, notifier, spi, tm, configuration.isNodeLockingOptimistic());
+//      command.initialize(cacheData, notifier, spi, tm, configuration.isNodeLockingOptimistic());
+      registry.wireDependencies(command);
       return command;
    }
 
    public RemoveKeyCommand buildRemoveKeyCommand(GlobalTransaction tx, Fqn<?> fqn, Object key, boolean b)
    {
       RemoveKeyCommand command = new RemoveKeyCommand(tx, fqn, key, b);
-      command.initialize(cacheData, notifier, transactionTable);
+//      command.initialize(cacheData, notifier, transactionTable);
+      registry.wireDependencies(command);
       return command;
    }
 
    public GetDataMapCommand buildGetDataMapCommand(Fqn fqn)
    {
       GetDataMapCommand command = new GetDataMapCommand(fqn);
-      command.initialize(cacheData);
+      //command.initialize(cacheData);
+      registry.wireDependencies(command);
       return command;
    }
 
    public ExistsNodeCommand buildExistsNodeCommand(Fqn fqn)
    {
       ExistsNodeCommand command = new ExistsNodeCommand(fqn);
-      command.initialize(cacheData);
+//      command.initialize(cacheData);
+      registry.wireDependencies(command);
       return command;
    }
 
    public GetKeyValueCommand buildGetKeyValueCommand(Fqn<?> fqn, Object key, boolean sendNodeEvent)
    {
       GetKeyValueCommand command = new GetKeyValueCommand(fqn, key, sendNodeEvent);
-      command.initialize(cacheData, notifier);
+//      command.initialize(cacheData, notifier);
+      registry.wireDependencies(command);
       return command;
    }
 
    public GetNodeCommand buildGetNodeCommand(Fqn fqn)
    {
       GetNodeCommand command = new GetNodeCommand(fqn);
-      command.initialize(cacheData);
+//      command.initialize(cacheData);
+      registry.wireDependencies(command);
       return command;
    }
 
    public GetKeysCommand buildGetKeysCommand(Fqn fqn)
    {
       GetKeysCommand command = new GetKeysCommand(fqn);
-      command.initialize(cacheData);
+//      command.initialize(cacheData);
+      registry.wireDependencies(command);
       return command;
    }
 
    public GetChildrenNamesCommand buildGetChildrenNamesCommand(Fqn fqn)
    {
       GetChildrenNamesCommand command = new GetChildrenNamesCommand(fqn);
-      command.initialize(cacheData);
+//      command.initialize(cacheData);
+      registry.wireDependencies(command);
       return command;
    }
 
    public MoveCommand buildMoveCommand(Fqn from, Fqn to)
    {
       MoveCommand command = new MoveCommand(from, to);
-      command.initialize(cacheData, notifier, transactionTable);
+//      command.initialize(cacheData, notifier, transactionTable);
+      registry.wireDependencies(command);
       return command;
    }
 
    public GravitateDataCommand buildGravitateDataCacheCommand(Fqn fqn, boolean searchSubtrees)
    {
       GravitateDataCommand command = new GravitateDataCommand(fqn, searchSubtrees);
-      command.initialize(spi, rpcManager, cacheData);
+//      command.initialize(spi, rpcManager, cacheData);
+      registry.wireDependencies(command);
       return command;
    }
 
    public RollbackCommand buildRollbackCommand(GlobalTransaction gtx)
    {
-      return new RollbackCommand(gtx);
+      RollbackCommand cmd = new RollbackCommand(gtx);
+      registry.wireDependencies(cmd);
+      return cmd;
    }
 
    public OptimisticPrepareCommand buildOptimisticPrepareCommand(GlobalTransaction gtx, List<? extends CacheCommand> modifications, Map data, Address address, boolean onePhaseCommit)
    {
-      return new OptimisticPrepareCommand(gtx, modifications, data, address, onePhaseCommit);
+      OptimisticPrepareCommand cmd = new OptimisticPrepareCommand(gtx, modifications, data, address, onePhaseCommit);
+      registry.wireDependencies(cmd);
+      return cmd;
    }
 
 
    public OptimisticPrepareCommand buildOptimisticPrepareCommand(GlobalTransaction gtx, CacheCommand command)
    {
-      List<CacheCommand> commandList = new ArrayList<CacheCommand>(1);
-      commandList.add(command);
-      return buildOptimisticPrepareCommand(gtx, commandList, null, null, false);
+      return buildOptimisticPrepareCommand(gtx, Collections.singletonList(command), null, null, false);
    }
 
    public AnnounceBuddyPoolNameCommand buildAnnounceBuddyPoolNameCommand(Address address, String buddyPoolName)
    {
       AnnounceBuddyPoolNameCommand command = new AnnounceBuddyPoolNameCommand(address, buddyPoolName);
-      command.initialize(buddyManager);
+//      command.initialize(buddyManager);
+      registry.wireDependencies(command);
       return command;
    }
 
    public RemoveFromBuddyGroupCommand buildRemoveFromBuddyGroupCommand(String groupName)
    {
       RemoveFromBuddyGroupCommand command = new RemoveFromBuddyGroupCommand(groupName);
-      command.initialize(buddyManager);
+//      command.initialize(buddyManager);
+      registry.wireDependencies(command);
       return command;
    }
 
    public AssignToBuddyGroupCommand buildAssignToBuddyGroupCommand(BuddyGroup group, Map<Fqn, byte[]> state)
    {
       AssignToBuddyGroupCommand command = new AssignToBuddyGroupCommand(group, state);
-      command.initialize(buddyManager);
+//      command.initialize(buddyManager);
+      registry.wireDependencies(command);
       return command;
    }
 
    public ClusteredGetCommand buildClusteredGetCommand(Boolean searchBackupSubtrees, CacheDataCommand cacheDataComand)
    {
-      return new ClusteredGetCommand(searchBackupSubtrees, cacheDataComand);
+      ClusteredGetCommand command = new ClusteredGetCommand(searchBackupSubtrees, cacheDataComand);
+      registry.wireDependencies(command);
+      return command;
    }
 
    public BlockChannelCommand buildBlockChannelCommand()
    {
-      return new BlockChannelCommand();
+      BlockChannelCommand command = new BlockChannelCommand();
+      registry.wireDependencies(command);
+      return command;
    }
 
    public UnblockChannelCommand buildUnblockChannelCommand()
    {
-      return new UnblockChannelCommand();
+      UnblockChannelCommand command = new UnblockChannelCommand();
+      registry.wireDependencies(command);
+      return command;
    }
 
    /**
@@ -370,14 +404,15 @@
       }
 
       returnValue.setState(id, parameters);
+      registry.wireDependencies(returnValue);
       return returnValue;
    }
 
-   private List<CacheCommand> toCacheCommandList(List<MethodCall> calls)
-   {
-      if (calls == null) return null;
-      List<CacheCommand> ccList = new ArrayList<CacheCommand>(calls.size());
-      for (MethodCall mc : calls) ccList.add(fromStream(mc.getMethodId(), mc.getArgs()));
-      return ccList;
-   }
+//   private List<CacheCommand> toCacheCommandList(List<MethodCall> calls)
+//   {
+//      if (calls == null) return null;
+//      List<CacheCommand> ccList = new ArrayList<CacheCommand>(calls.size());
+//      for (MethodCall mc : calls) ccList.add(fromStream(mc.getMethodId(), mc.getArgs()));
+//      return ccList;
+//   }
 }

Modified: core/trunk/src/main/java/org/jboss/cache/commands/EvictFqnCommand.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/commands/EvictFqnCommand.java	2008-04-12 23:00:29 UTC (rev 5543)
+++ core/trunk/src/main/java/org/jboss/cache/commands/EvictFqnCommand.java	2008-04-12 23:01:09 UTC (rev 5544)
@@ -2,6 +2,7 @@
 
 import org.jboss.cache.Fqn;
 import org.jboss.cache.InvocationContext;
+import org.jboss.cache.factories.annotations.Inject;
 import org.jboss.cache.invocation.CacheData;
 import org.jboss.cache.optimistic.DataVersion;
 
@@ -28,6 +29,7 @@
       this.fqn = fqn;
    }
 
+   @Inject
    public void initialize(CacheData cacheData)
    {
       this.cacheData = cacheData;

Modified: core/trunk/src/main/java/org/jboss/cache/commands/GravitateDataCommand.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/commands/GravitateDataCommand.java	2008-04-12 23:00:29 UTC (rev 5543)
+++ core/trunk/src/main/java/org/jboss/cache/commands/GravitateDataCommand.java	2008-04-12 23:01:09 UTC (rev 5544)
@@ -11,6 +11,7 @@
 import org.jboss.cache.buddyreplication.BuddyFqnTransformer;
 import org.jboss.cache.buddyreplication.BuddyManager;
 import org.jboss.cache.buddyreplication.GravitateResult;
+import org.jboss.cache.factories.annotations.Inject;
 import org.jboss.cache.invocation.CacheData;
 import org.jboss.cache.marshall.NodeData;
 
@@ -45,11 +46,12 @@
       this.searchSubtrees = searchSubtrees;
    }
 
+   @Inject
    public void initialize(CacheSPI spi, RPCManager manager, CacheData cacheData)
    {
       this.spi = spi;
       this.rpcManager = manager;
-      rpcManager = manager;
+      this.cacheData = cacheData;
    }
 
    public Object perform(InvocationContext ctx)

Modified: core/trunk/src/main/java/org/jboss/cache/commands/InvalidateCommand.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/commands/InvalidateCommand.java	2008-04-12 23:00:29 UTC (rev 5543)
+++ core/trunk/src/main/java/org/jboss/cache/commands/InvalidateCommand.java	2008-04-12 23:01:09 UTC (rev 5544)
@@ -2,8 +2,14 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jboss.cache.*;
+import org.jboss.cache.CacheException;
+import org.jboss.cache.CacheSPI;
+import org.jboss.cache.Fqn;
+import org.jboss.cache.InvocationContext;
+import org.jboss.cache.Node;
+import org.jboss.cache.NodeSPI;
 import org.jboss.cache.config.Option;
+import org.jboss.cache.factories.annotations.Inject;
 import org.jboss.cache.invocation.CacheData;
 import org.jboss.cache.marshall.MethodCall;
 import org.jboss.cache.notifications.Notifier;
@@ -42,6 +48,7 @@
       super(fqn);
    }
 
+   @Inject
    public void initialize(CacheData cacheData, Notifier notifier, CacheSPI cacheSPI, TransactionManager txManager, boolean isOptimisticLocking)
    {
       super.initialize(cacheData);

Modified: core/trunk/src/main/java/org/jboss/cache/commands/cachedata/ExistsNodeCommand.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/commands/cachedata/ExistsNodeCommand.java	2008-04-12 23:00:29 UTC (rev 5543)
+++ core/trunk/src/main/java/org/jboss/cache/commands/cachedata/ExistsNodeCommand.java	2008-04-12 23:01:09 UTC (rev 5544)
@@ -5,6 +5,7 @@
 import org.jboss.cache.Node;
 import org.jboss.cache.commands.BaseCacheCommand;
 import org.jboss.cache.commands.CacheCommandsVisitor;
+import org.jboss.cache.factories.annotations.Inject;
 import org.jboss.cache.invocation.CacheData;
 
 /**
@@ -33,6 +34,7 @@
       this.fqn = fqn;
    }
 
+   @Inject
    public void initialize(CacheData cacheData)
    {
       this.cacheData = cacheData;

Modified: core/trunk/src/main/java/org/jboss/cache/commands/cachedata/GetChildrenNamesCommand.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/commands/cachedata/GetChildrenNamesCommand.java	2008-04-12 23:00:29 UTC (rev 5543)
+++ core/trunk/src/main/java/org/jboss/cache/commands/cachedata/GetChildrenNamesCommand.java	2008-04-12 23:01:09 UTC (rev 5544)
@@ -5,6 +5,7 @@
 import org.jboss.cache.NodeSPI;
 import org.jboss.cache.commands.BaseCacheCommand;
 import org.jboss.cache.commands.CacheCommandsVisitor;
+import org.jboss.cache.factories.annotations.Inject;
 import org.jboss.cache.invocation.CacheData;
 
 import java.util.Collection;
@@ -34,6 +35,7 @@
       this.fqn = fqn;
    }
 
+   @Inject
    public void initialize(CacheData cacheData)
    {
       this.cacheData = cacheData;

Modified: core/trunk/src/main/java/org/jboss/cache/commands/cachedata/GetDataMapCommand.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/commands/cachedata/GetDataMapCommand.java	2008-04-12 23:00:29 UTC (rev 5543)
+++ core/trunk/src/main/java/org/jboss/cache/commands/cachedata/GetDataMapCommand.java	2008-04-12 23:01:09 UTC (rev 5544)
@@ -5,6 +5,7 @@
 import org.jboss.cache.NodeSPI;
 import org.jboss.cache.commands.BaseCacheCommand;
 import org.jboss.cache.commands.CacheCommandsVisitor;
+import org.jboss.cache.factories.annotations.Inject;
 import org.jboss.cache.invocation.CacheData;
 
 /**
@@ -30,6 +31,7 @@
       this.fqn = fqn;
    }
 
+   @Inject
    public void initialize(CacheData cacheData)
    {
       this.cacheData = cacheData;

Modified: core/trunk/src/main/java/org/jboss/cache/commands/cachedata/GetKeyValueCommand.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/commands/cachedata/GetKeyValueCommand.java	2008-04-12 23:00:29 UTC (rev 5543)
+++ core/trunk/src/main/java/org/jboss/cache/commands/cachedata/GetKeyValueCommand.java	2008-04-12 23:01:09 UTC (rev 5544)
@@ -7,6 +7,7 @@
 import org.jboss.cache.NodeSPI;
 import org.jboss.cache.commands.BaseCacheCommand;
 import org.jboss.cache.commands.CacheCommandsVisitor;
+import org.jboss.cache.factories.annotations.Inject;
 import org.jboss.cache.invocation.CacheData;
 import org.jboss.cache.notifications.Notifier;
 
@@ -42,6 +43,7 @@
       this.sendNodeEvent = sendNodeEvent;
    }
 
+   @Inject
    public void initialize(CacheData cacheData, Notifier notifier)
    {
       this.cacheData = cacheData;

Modified: core/trunk/src/main/java/org/jboss/cache/commands/cachedata/GetKeysCommand.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/commands/cachedata/GetKeysCommand.java	2008-04-12 23:00:29 UTC (rev 5543)
+++ core/trunk/src/main/java/org/jboss/cache/commands/cachedata/GetKeysCommand.java	2008-04-12 23:01:09 UTC (rev 5544)
@@ -5,6 +5,7 @@
 import org.jboss.cache.NodeSPI;
 import org.jboss.cache.commands.BaseCacheCommand;
 import org.jboss.cache.commands.CacheCommandsVisitor;
+import org.jboss.cache.factories.annotations.Inject;
 import org.jboss.cache.invocation.CacheData;
 
 import java.util.HashSet;
@@ -33,6 +34,7 @@
       this.fqn = fqn;
    }
 
+   @Inject
    public void initialize(CacheData cacheData)
    {
       this.cacheData = cacheData;

Modified: core/trunk/src/main/java/org/jboss/cache/commands/cachedata/GetNodeCommand.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/commands/cachedata/GetNodeCommand.java	2008-04-12 23:00:29 UTC (rev 5543)
+++ core/trunk/src/main/java/org/jboss/cache/commands/cachedata/GetNodeCommand.java	2008-04-12 23:01:09 UTC (rev 5544)
@@ -4,6 +4,7 @@
 import org.jboss.cache.InvocationContext;
 import org.jboss.cache.commands.BaseCacheCommand;
 import org.jboss.cache.commands.CacheCommandsVisitor;
+import org.jboss.cache.factories.annotations.Inject;
 import org.jboss.cache.invocation.CacheData;
 
 /**
@@ -29,6 +30,7 @@
       this.fqn = fqn;
    }
 
+   @Inject
    public void initialize(CacheData cacheData)
    {
       this.cacheData = cacheData;

Modified: core/trunk/src/main/java/org/jboss/cache/commands/cachedata/MoveCommand.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/commands/cachedata/MoveCommand.java	2008-04-12 23:00:29 UTC (rev 5543)
+++ core/trunk/src/main/java/org/jboss/cache/commands/cachedata/MoveCommand.java	2008-04-12 23:01:09 UTC (rev 5544)
@@ -7,6 +7,7 @@
 import org.jboss.cache.commands.BaseCacheCommand;
 import org.jboss.cache.commands.CacheCommandsVisitor;
 import org.jboss.cache.commands.TxCacheCommand;
+import org.jboss.cache.factories.annotations.Inject;
 import org.jboss.cache.invocation.CacheData;
 import org.jboss.cache.notifications.Notifier;
 import org.jboss.cache.transaction.TransactionTable;
@@ -40,6 +41,7 @@
       this.to = to;
    }
 
+   @Inject
    public void initialize(CacheData cacheData, Notifier notifier, TransactionTable txTable)
    {
       this.cacheData = cacheData;

Modified: core/trunk/src/main/java/org/jboss/cache/commands/cachedata/PutDataMapCommand.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/commands/cachedata/PutDataMapCommand.java	2008-04-12 23:00:29 UTC (rev 5543)
+++ core/trunk/src/main/java/org/jboss/cache/commands/cachedata/PutDataMapCommand.java	2008-04-12 23:01:09 UTC (rev 5544)
@@ -10,6 +10,7 @@
 import org.jboss.cache.commands.DataVersionCommand;
 import org.jboss.cache.commands.GlobalTransactionCommand;
 import org.jboss.cache.commands.TxCacheCommand;
+import org.jboss.cache.factories.annotations.Inject;
 import org.jboss.cache.invocation.CacheData;
 import org.jboss.cache.notifications.Notifier;
 import org.jboss.cache.notifications.event.NodeModifiedEvent;
@@ -63,6 +64,7 @@
       this.eraseContents = eraseContents;
    }
 
+   @Inject
    public void initialize(CacheData cacheData, Notifier notifier, TransactionTable txTable)
    {
       this.cacheData = cacheData;

Modified: core/trunk/src/main/java/org/jboss/cache/commands/cachedata/PutKeyValueCommand.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/commands/cachedata/PutKeyValueCommand.java	2008-04-12 23:00:29 UTC (rev 5543)
+++ core/trunk/src/main/java/org/jboss/cache/commands/cachedata/PutKeyValueCommand.java	2008-04-12 23:01:09 UTC (rev 5544)
@@ -10,6 +10,7 @@
 import org.jboss.cache.commands.DataVersionCommand;
 import org.jboss.cache.commands.GlobalTransactionCommand;
 import org.jboss.cache.commands.TxCacheCommand;
+import org.jboss.cache.factories.annotations.Inject;
 import org.jboss.cache.invocation.CacheData;
 import org.jboss.cache.notifications.Notifier;
 import org.jboss.cache.notifications.event.NodeModifiedEvent;
@@ -65,6 +66,7 @@
       this.isPutForExternalRead = isPutForExternalRead;
    }
 
+   @Inject
    public void initialize(CacheData cacheData, Notifier notifier, TransactionTable transactionTable)
    {
       this.transactionTable = transactionTable;

Modified: core/trunk/src/main/java/org/jboss/cache/commands/cachedata/RemoveDataCommand.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/commands/cachedata/RemoveDataCommand.java	2008-04-12 23:00:29 UTC (rev 5543)
+++ core/trunk/src/main/java/org/jboss/cache/commands/cachedata/RemoveDataCommand.java	2008-04-12 23:01:09 UTC (rev 5544)
@@ -10,6 +10,7 @@
 import org.jboss.cache.commands.DataVersionCommand;
 import org.jboss.cache.commands.GlobalTransactionCommand;
 import org.jboss.cache.commands.TxCacheCommand;
+import org.jboss.cache.factories.annotations.Inject;
 import org.jboss.cache.invocation.CacheData;
 import org.jboss.cache.notifications.Notifier;
 import org.jboss.cache.notifications.event.NodeModifiedEvent;
@@ -55,6 +56,7 @@
    {
    }
 
+   @Inject
    public void initialize(CacheData cacheData, TransactionTable transactionTable, Notifier notifier)
    {
       this.cacheData = cacheData;

Modified: core/trunk/src/main/java/org/jboss/cache/commands/cachedata/RemoveKeyCommand.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/commands/cachedata/RemoveKeyCommand.java	2008-04-12 23:00:29 UTC (rev 5543)
+++ core/trunk/src/main/java/org/jboss/cache/commands/cachedata/RemoveKeyCommand.java	2008-04-12 23:01:09 UTC (rev 5544)
@@ -10,6 +10,7 @@
 import org.jboss.cache.commands.DataVersionCommand;
 import org.jboss.cache.commands.GlobalTransactionCommand;
 import org.jboss.cache.commands.TxCacheCommand;
+import org.jboss.cache.factories.annotations.Inject;
 import org.jboss.cache.invocation.CacheData;
 import org.jboss.cache.notifications.Notifier;
 import org.jboss.cache.notifications.event.NodeModifiedEvent;
@@ -62,6 +63,7 @@
       this.createUndoOps = createUndoOps;
    }
 
+   @Inject
    public void initialize(CacheData cacheData, Notifier notifier, TransactionTable transactionTable)
    {
       this.cacheData = cacheData;

Modified: core/trunk/src/main/java/org/jboss/cache/commands/cachedata/RemoveNodeCommand.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/commands/cachedata/RemoveNodeCommand.java	2008-04-12 23:00:29 UTC (rev 5543)
+++ core/trunk/src/main/java/org/jboss/cache/commands/cachedata/RemoveNodeCommand.java	2008-04-12 23:01:09 UTC (rev 5544)
@@ -10,6 +10,7 @@
 import org.jboss.cache.commands.DataVersionCommand;
 import org.jboss.cache.commands.GlobalTransactionCommand;
 import org.jboss.cache.commands.TxCacheCommand;
+import org.jboss.cache.factories.annotations.Inject;
 import org.jboss.cache.invocation.CacheData;
 import org.jboss.cache.notifications.Notifier;
 import org.jboss.cache.optimistic.DataVersion;
@@ -60,6 +61,7 @@
       this.eviction = eviction;
    }
 
+   @Inject
    public void initialize(CacheData cacheData, TransactionTable txTable, Notifier notifier, boolean isOptimisticLocking)
    {
       this.cacheData = cacheData;

Modified: core/trunk/src/main/java/org/jboss/cache/commands/remote/AnnounceBuddyPoolNameCommand.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/commands/remote/AnnounceBuddyPoolNameCommand.java	2008-04-12 23:00:29 UTC (rev 5543)
+++ core/trunk/src/main/java/org/jboss/cache/commands/remote/AnnounceBuddyPoolNameCommand.java	2008-04-12 23:01:09 UTC (rev 5544)
@@ -7,6 +7,7 @@
 import org.jboss.cache.commands.BaseCacheCommand;
 import org.jboss.cache.commands.CacheCommand;
 import org.jboss.cache.commands.CacheCommandsVisitor;
+import org.jboss.cache.factories.annotations.Inject;
 import org.jgroups.Address;
 
 /**
@@ -35,6 +36,7 @@
       this.buddyPoolName = buddyPoolName;
    }
 
+   @Inject
    public void initialize(BuddyManager buddyManager)
    {
       this.buddyManager = buddyManager;

Modified: core/trunk/src/main/java/org/jboss/cache/commands/remote/AssignToBuddyGroupCommand.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/commands/remote/AssignToBuddyGroupCommand.java	2008-04-12 23:00:29 UTC (rev 5543)
+++ core/trunk/src/main/java/org/jboss/cache/commands/remote/AssignToBuddyGroupCommand.java	2008-04-12 23:01:09 UTC (rev 5544)
@@ -9,6 +9,7 @@
 import org.jboss.cache.commands.BaseCacheCommand;
 import org.jboss.cache.commands.CacheCommand;
 import org.jboss.cache.commands.CacheCommandsVisitor;
+import org.jboss.cache.factories.annotations.Inject;
 
 import java.util.Map;
 
@@ -37,6 +38,7 @@
       this.state = state;
    }
 
+   @Inject
    public void initialize(BuddyManager manager)
    {
       this.buddyManager = manager;

Modified: core/trunk/src/main/java/org/jboss/cache/commands/remote/DataGravitationCleanupCommand.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/commands/remote/DataGravitationCleanupCommand.java	2008-04-12 23:00:29 UTC (rev 5543)
+++ core/trunk/src/main/java/org/jboss/cache/commands/remote/DataGravitationCleanupCommand.java	2008-04-12 23:01:09 UTC (rev 5544)
@@ -13,6 +13,7 @@
 import org.jboss.cache.commands.GlobalTransactionCommand;
 import org.jboss.cache.commands.TxCacheCommand;
 import org.jboss.cache.commands.cachedata.RemoveNodeCommand;
+import org.jboss.cache.factories.annotations.Inject;
 import org.jboss.cache.invocation.CacheData;
 import org.jboss.cache.invocation.CacheTransactionHelper;
 import org.jboss.cache.invocation.InterceptorChain;
@@ -55,6 +56,7 @@
       this.backup = backup;
    }
 
+   @Inject
    public void initialize(BuddyManager buddyManager, InterceptorChain invoker, CacheTransactionHelper transactionHelper,
                           CommandsFactory commandsFactory, CacheData cacheData)
    {

Modified: core/trunk/src/main/java/org/jboss/cache/commands/remote/RemoveFromBuddyGroupCommand.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/commands/remote/RemoveFromBuddyGroupCommand.java	2008-04-12 23:00:29 UTC (rev 5543)
+++ core/trunk/src/main/java/org/jboss/cache/commands/remote/RemoveFromBuddyGroupCommand.java	2008-04-12 23:01:09 UTC (rev 5544)
@@ -7,6 +7,7 @@
 import org.jboss.cache.commands.BaseCacheCommand;
 import org.jboss.cache.commands.CacheCommand;
 import org.jboss.cache.commands.CacheCommandsVisitor;
+import org.jboss.cache.factories.annotations.Inject;
 
 /**
  * @author Mircea.Markus at jboss.com
@@ -30,6 +31,7 @@
       this.groupName = groupName;
    }
 
+   @Inject
    public void initialize(BuddyManager buddyManager)
    {
       this.buddyManager = buddyManager;

Modified: core/trunk/src/main/java/org/jboss/cache/commands/remote/ReplicateCommand.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/commands/remote/ReplicateCommand.java	2008-04-12 23:00:29 UTC (rev 5543)
+++ core/trunk/src/main/java/org/jboss/cache/commands/remote/ReplicateCommand.java	2008-04-12 23:01:09 UTC (rev 5544)
@@ -7,6 +7,7 @@
 import org.jboss.cache.commands.GravitateDataCommand;
 import org.jboss.cache.commands.MarshallableCommand;
 import org.jboss.cache.commands.cachedata.PutKeyValueCommand;
+import org.jboss.cache.factories.annotations.Inject;
 import org.jboss.cache.invocation.InterceptorChain;
 import org.jboss.cache.marshall.MethodCallWrapper;
 
@@ -25,25 +26,17 @@
    public static final int MULTIPLE_METHOD_ID = 14;
 
    private InterceptorChain invoker;
-   private List<MarshallableCommand> modifications;
-
    /**
-    * optimiscation - rather than constructing a new list each for scenarios where a single modification needs
-    * to be replicated rather use this insance.
+    * optimisation - rather than constructing a new list each for scenarios where a single modification needs
+    * to be replicated rather use this instance.
     */
    private MarshallableCommand singleModification;
+   private List<MarshallableCommand> modifications;
 
    public ReplicateCommand()
    {
    }
 
-   public ReplicateCommand(MarshallableCommand toReplicate, InterceptorChain invoker)
-   {
-      this.modifications = new ArrayList<MarshallableCommand>();
-      modifications.add(toReplicate);
-      this.invoker = invoker;
-   }
-
    public ReplicateCommand(List<MarshallableCommand> modifications)
    {
       this.modifications = modifications;
@@ -54,16 +47,18 @@
       this.singleModification = command;
    }
 
+   @Inject
+   public void initialize(InterceptorChain invoker)
+   {
+      this.invoker = invoker;
+   }
+
    public Object perform(InvocationContext ctx) throws Throwable
    {
-      if (singleModification != null)
-      {
-         return processSingleCommand(modifications.get(0));
-      }
-      for (MarshallableCommand command : modifications)
-      {
-         processSingleCommand(command);
-      }
+      if (singleModification != null) return processSingleCommand(singleModification);
+
+      for (MarshallableCommand command : modifications) processSingleCommand(command);
+
       return null;
    }
 
@@ -73,7 +68,9 @@
       Object result;
       try
       {
-         Object retVal = invoker.invoke(cacheCommand);
+         if (trace) log.trace("Invoking command " + cacheCommand + ", with originLocal flag set to false.");
+
+         Object retVal = invoker.invoke(cacheCommand, false);
          // we only need to return values for a set of remote calls; not every call.
          if (returnValueForRemoteCall(cacheCommand))
          {
@@ -86,16 +83,21 @@
       }
       catch (Throwable ex)
       {
-         if (isForExternalMethod(cacheCommand))
+         if (!isPutForExternalRead(cacheCommand))
          {
             throw ex;
          }
-         else result = null;
+         else
+         {
+            if (trace)
+               log.trace("Caught an exception, but since this is a putForExternalRead() call, suppressing the exception.  Exception is:", ex);
+            result = null;
+         }
       }
       return result;
    }
 
-   private boolean isForExternalMethod(CacheCommand cacheCommand)
+   private boolean isPutForExternalRead(CacheCommand cacheCommand)
    {
       if (!(cacheCommand instanceof PutKeyValueCommand)) return false;
       PutKeyValueCommand pkvCommand = (PutKeyValueCommand) cacheCommand;
@@ -130,6 +132,7 @@
          return new Object[]{new MethodCallWrapper(singleModification)};
    }
 
+   @SuppressWarnings("unchecked")
    public void setState(int commandId, Object[] args)
    {
       if (commandId == SINGLE_METHOD_ID)
@@ -148,4 +151,12 @@
       for (MarshallableCommand cc : modifications) l.add(new MethodCallWrapper(cc));
       return l;
    }
+
+   @Override
+   public String toString()
+   {
+      return "ReplicateCommand{" +
+            "modifications=" + (modifications == null ? singleModification : modifications) +
+            '}';
+   }
 }
\ No newline at end of file

Modified: core/trunk/src/main/java/org/jboss/cache/invocation/CacheInvocationDelegate.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/invocation/CacheInvocationDelegate.java	2008-04-12 23:00:29 UTC (rev 5543)
+++ core/trunk/src/main/java/org/jboss/cache/invocation/CacheInvocationDelegate.java	2008-04-12 23:01:09 UTC (rev 5544)
@@ -73,6 +73,7 @@
 //      this.transactionHelper = transactionHelper;
 
    //   }
+
    @Inject
    public void initialize(StateTransferManager stateTransferManager, CacheLoaderManager cacheLoaderManager, Notifier notifier,
                           TransactionManager transactionManager, BuddyManager buddyManager, TransactionTable transactionTable,
@@ -464,7 +465,7 @@
    public V put(Fqn<?> fqn, K key, V value)
    {
       GlobalTransaction tx = transactionHelper.getCurrentTransaction();
-      PutKeyValueCommand command = commandsFactory.buildPutKeyValueCommand(tx, fqn, key, value, false, true);
+      PutKeyValueCommand command = commandsFactory.buildPutKeyValueCommand(tx, fqn, key, value, false, false);
       return (V) invoke(command);
    }
 

Modified: core/trunk/src/main/java/org/jboss/cache/invocation/InterceptorChain.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/invocation/InterceptorChain.java	2008-04-12 23:00:29 UTC (rev 5543)
+++ core/trunk/src/main/java/org/jboss/cache/invocation/InterceptorChain.java	2008-04-12 23:01:09 UTC (rev 5544)
@@ -221,6 +221,17 @@
     * Similar to {@link #invoke(org.jboss.cache.InvocationContext, org.jboss.cache.commands.CacheCommand)}, but
     * constructs a invocation context on the fly, using {@link InvocationContextContainer#get()}
     */
+   public Object invoke(CacheCommand cacheCommand, boolean isOriginLocal) throws Throwable
+   {
+      InvocationContext ctxt = invocationContextContainer.get();
+      ctxt.setOriginLocal(isOriginLocal);
+      return cacheCommand.accept(ctxt, firstInChain);
+   }
+
+   /**
+    * Similar to {@link #invoke(org.jboss.cache.InvocationContext, org.jboss.cache.commands.CacheCommand)}, but
+    * constructs a invocation context on the fly, using {@link InvocationContextContainer#get()} and setting the origin local flag to it's default value.
+    */
    public Object invoke(CacheCommand cacheCommand) throws Throwable
    {
       InvocationContext ctxt = invocationContextContainer.get();

Modified: core/trunk/src/main/java/org/jboss/cache/marshall/CacheMarshaller200.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/marshall/CacheMarshaller200.java	2008-04-12 23:00:29 UTC (rev 5543)
+++ core/trunk/src/main/java/org/jboss/cache/marshall/CacheMarshaller200.java	2008-04-12 23:01:09 UTC (rev 5544)
@@ -115,7 +115,7 @@
       // parse the stream as per normal.
       Object[] retVal = objectFromObjectStreamRegionBased(in);
       RegionalizedMethodCall rmc = new RegionalizedMethodCall();
-      rmc.call = (MethodCall) retVal[0];
+      rmc.command = (CacheCommand) retVal[0];
       rmc.region = (Fqn) retVal[1];
       return rmc;
    }

Modified: core/trunk/src/main/java/org/jboss/cache/marshall/CommandAwareRpcDispatcher.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/marshall/CommandAwareRpcDispatcher.java	2008-04-12 23:00:29 UTC (rev 5543)
+++ core/trunk/src/main/java/org/jboss/cache/marshall/CommandAwareRpcDispatcher.java	2008-04-12 23:01:09 UTC (rev 5544)
@@ -26,35 +26,48 @@
       trace = log.isTraceEnabled();
    }
 
-   /**
-    * Message contains a Command. Execute it against *this* object and return result.
-    */
-   @Override
-   public Object handle(Message req)
+   protected boolean isValid(Message req)
    {
       if (server_obj == null)
       {
-         if (log.isErrorEnabled()) log.error("no method handler is registered. Discarding request.");
-         return null;
+         log.error("no method handler is registered. Discarding request.");
+         return false;
       }
 
       if (req == null || req.getLength() == 0)
       {
-         if (log.isErrorEnabled()) log.error("message or message buffer is null");
-         return null;
+         log.error("message or message buffer is null");
+         return false;
       }
 
-      try
+      return true;
+   }
+
+   /**
+    * Message contains a Command. Execute it against *this* object and return result.
+    */
+   @Override
+   public Object handle(Message req)
+   {
+      if (isValid(req))
       {
-         CacheCommand cmd = (CacheCommand) req_marshaller.objectFromByteBuffer(req.getBuffer());
+         try
+         {
+            CacheCommand cmd = (CacheCommand) req_marshaller.objectFromByteBuffer(req.getBuffer());
 
-         if (trace) log.trace("[sender=" + req.getSrc() + "], command: " + cmd);
+            if (trace) log.trace("[sender=" + req.getSrc() + "], command: " + cmd);
 
-         return cid.invoke(cmd);
+            return cid.invoke(cmd);
+         }
+         catch (Throwable x)
+         {
+            if (trace) log.trace("Problems invoking command", x);
+            return x;
+         }
       }
-      catch (Throwable x)
+      else
       {
-         return x;
+         return null;
       }
    }
 

Modified: core/trunk/src/main/java/org/jboss/cache/marshall/InactiveRegionAwareRpcDispatcher.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/marshall/InactiveRegionAwareRpcDispatcher.java	2008-04-12 23:00:29 UTC (rev 5543)
+++ core/trunk/src/main/java/org/jboss/cache/marshall/InactiveRegionAwareRpcDispatcher.java	2008-04-12 23:01:09 UTC (rev 5544)
@@ -1,5 +1,6 @@
 package org.jboss.cache.marshall;
 
+import org.jboss.cache.commands.CacheCommand;
 import org.jgroups.Channel;
 import org.jgroups.MembershipListener;
 import org.jgroups.Message;
@@ -39,57 +40,45 @@
    @Override
    public Object handle(Message req)
    {
-      org.jgroups.blocks.MethodCall method_call;
-
-      if (server_obj == null)
+      if (isValid(req))
       {
-         if (log.isErrorEnabled()) log.error("no method handler is registered. Discarding request.");
-         return null;
-      }
+         RegionalizedMethodCall rmc;
+         CacheCommand command;
 
-      if (req == null || req.getLength() == 0)
-      {
-         if (log.isErrorEnabled()) log.error("message or message buffer is null");
-         return null;
-      }
-
-      RegionalizedMethodCall rmc;
-
-      try
-      {
-         // we will ALWAYS be using the marshaller to unmarshall requests.
-         rmc = requestMarshaller.regionalizedMethodCallFromByteBuffer(req.getBuffer());
-         method_call = rmc.call;
-      }
-      catch (Throwable e)
-      {
-         if (e instanceof InactiveRegionException)
+         try
          {
-            if (log.isTraceEnabled()) log.trace("Exception from marshaller: " + e.getMessage());
-            return null;
+            // we will ALWAYS be using the marshaller to unmarshall requests.
+            rmc = requestMarshaller.regionalizedMethodCallFromByteBuffer(req.getBuffer());
+            command = rmc.command;
          }
+         catch (Throwable e)
+         {
+            if (e instanceof InactiveRegionException)
+            {
+               if (trace) log.trace("Exception from marshaller: " + e.getMessage());
+               return null;
+            }
 
-         if (log.isErrorEnabled()) log.error("exception unmarshalling object", e);
-         return e;
-      }
+            if (trace) log.error("exception unmarshalling object", e);
+            return e;
+         }
 
-      try
-      {
-         if (log.isTraceEnabled())
-            log.trace("[sender=" + req.getSrc() + "], method_call: " + method_call);
+         try
+         {
+            if (trace) log.trace("[sender=" + req.getSrc() + "], method_call: " + command);
 
-         Object retVal = method_call.invoke(server_obj);
-         return new RegionalizedReturnValue(retVal, rmc);
+            Object retVal = cid.invoke(command);
+            return new RegionalizedReturnValue(retVal, rmc);
+         }
+         catch (Throwable x)
+         {
+            if (trace) log.trace("Problems invoking command", x);
+            return x;
+         }
       }
-      catch (Throwable x)
+      else
       {
-         return x;
+         return null;
       }
    }
-
-   @Override
-   public String toString()
-   {
-      return getClass().getSimpleName() + "[Outgoing marshaller: " + req_marshaller + "; incoming marshaller: " + rsp_marshaller + "]";
-   }
 }

Modified: core/trunk/src/main/java/org/jboss/cache/marshall/RegionalizedMethodCall.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/marshall/RegionalizedMethodCall.java	2008-04-12 23:00:29 UTC (rev 5543)
+++ core/trunk/src/main/java/org/jboss/cache/marshall/RegionalizedMethodCall.java	2008-04-12 23:01:09 UTC (rev 5544)
@@ -1,6 +1,7 @@
 package org.jboss.cache.marshall;
 
 import org.jboss.cache.Fqn;
+import org.jboss.cache.commands.CacheCommand;
 
 /**
  * A regionalized MethodCall object, created when {@link Marshaller#regionalizedMethodCallFromByteBuffer(byte[])} or
@@ -15,6 +16,6 @@
  */
 class RegionalizedMethodCall
 {
-   MethodCall call;
+   CacheCommand command;
    Fqn region;
 }




More information about the jbosscache-commits mailing list