[infinispan-dev] StateTransferControlCommand initialisation?

Manik Surtani manik at jboss.org
Thu Mar 26 05:39:38 EDT 2009


On 25 Mar 2009, at 19:23, Galder Zamarreno wrote:

> Hi,
>
> I'm looking at RemoteCommandFactory in Infinispan as part as mapping  
> the marshalling stuff to JBoss Marshalling and here's something that  
> has confused me:
>
> fromStream() method says:
>
> * 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/>
>
> And then you do the following:
>
>         case StateTransferControlCommand.METHOD_ID:
>            command = new StateTransferControlCommand();
>            ((StateTransferControlCommand) command).init(rpcManager);
>            break;
>
> Shouldn't ((StateTransferControlCommand) command).init(rpcManager)  
> go into  
> org 
> .infinispan 
> .commands 
> .CommandsFactory#initializeReplicableCommand(ReplicableCommand).
>
> initializeReplicableCommand() javadoc says:
>
> * Initializes a {@link org.infinispan.commands.ReplicableCommand} read  
> from * a data stream with components specific to the target cache  
> instance.
>
> The rpcManager seems to be one those components?

No.  The RPCManager is scoped as GLOBAL:

	https://svn.jboss.org/repos/infinispan/trunk/src/main/java/org/infinispan/remoting/RPCManager.java

Refer to the @Scope annotation on the interface.

But I understand your confusion here.  We should either:

1.  Change the Javadocs on fromStream() to be more explicit, i.e.,  
only dependent components of GLOBAL scope are injected.  NAMED_CACHE  
scope components are only injected later with  
CommandsFactory.initializeReplicableCommand().
2.  Remove the injection in fromStream(); have  
CommandsFactory.initializeReplicableCommand() handle all of the  
injection, of GLOBAL and NAMED_CACHE scoped components.

I have no problem with 2, if it makes your integration easier.  In  
fact, I actually think 2 is probably cleaner.

Cheers
--
Manik Surtani
Lead, JBoss Cache
http://www.jbosscache.org
manik at jboss.org




-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/infinispan-dev/attachments/20090326/86b0c10c/attachment-0001.html 


More information about the infinispan-dev mailing list