public class ExecutorRemotingTask<T extends Serializable> extends Object implements DistributedTask<ExecutorRemotingTask.InternalExecutorResult<T>,List<AsyncResult<ExecutorRemotingTask.InternalExecutorResult<T>>>>, org.springframework.context.ApplicationContextAware, ClusterInfoAware, TaskRoutingProvider, SpaceRemotingInvocation, Externalizable
Task
that can be used to simulate remote invocation with
SpaceRemotingServiceExporter
. When executed, the task searches
for a service exporter (first under the hardwired name serviceExporter
, then any
bean that define this class), and based on parameters passed on the task itself (such as method
name, lookup name and arguments) invokes service methods that are registered with the service
exporter.Modifier and Type | Class and Description |
---|---|
static class |
ExecutorRemotingTask.InternalExecutorException
A wrapper executor exception that holds more information on the exception, such as the
instance id.
|
static class |
ExecutorRemotingTask.InternalExecutorResult<T extends Serializable>
A wrapper executor result that holds more information on the exception, such as the instance
id.
|
Constructor and Description |
---|
ExecutorRemotingTask()
Should not be used.
|
ExecutorRemotingTask(String lookupName,
String methodName,
RemotingUtils.MethodHash methodHash,
Object[] arguments) |
Modifier and Type | Method and Description |
---|---|
ExecutorRemotingTask.InternalExecutorResult<T> |
execute()
Computes a result, or throws an exception if unable to do so.
|
Object[] |
getArguments()
The arguments for the service method execution.
|
String |
getLookupName()
The lookup name of the service.
|
Object[] |
getMetaArguments()
Meta arguments that can be passed as part of the invocation.
|
RemotingUtils.MethodHash |
getMethodHash() |
String |
getMethodName()
The method name of the service that will be executed.
|
Object |
getRouting()
Returns the routing of the task.
|
static SpaceRemotingServiceExporter |
getServiceExporter(org.springframework.context.ApplicationContext applicationContext) |
void |
readExternal(ObjectInput in) |
List<AsyncResult<ExecutorRemotingTask.InternalExecutorResult<T>>> |
reduce(List<AsyncResult<ExecutorRemotingTask.InternalExecutorResult<T>>> results) |
void |
setApplicationContext(org.springframework.context.ApplicationContext applicationContext) |
void |
setClusterInfo(ClusterInfo clusterInfo)
Sets the cluster information.
|
void |
setServiceExporter(SpaceRemotingServiceExporter serviceExporter) |
void |
writeExternal(ObjectOutput out) |
public ExecutorRemotingTask()
public ExecutorRemotingTask(String lookupName, String methodName, RemotingUtils.MethodHash methodHash, Object[] arguments)
public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
setApplicationContext
in interface org.springframework.context.ApplicationContextAware
public void setClusterInfo(ClusterInfo clusterInfo)
ClusterInfoAware
Note, the cluster information is obtained externally from the application context which
means that this feature need to be supported by specific containers (and is not supported by
plain Spring application context). This means that beans that implement ClusterInfoAware
should take into account the fact that the cluster info provided might be
null.
setClusterInfo
in interface ClusterInfoAware
clusterInfo
- The cluster information to be injectedpublic void setServiceExporter(SpaceRemotingServiceExporter serviceExporter)
public ExecutorRemotingTask.InternalExecutorResult<T> execute() throws Exception
Task
execute
in interface Task<ExecutorRemotingTask.InternalExecutorResult<T extends Serializable>>
Exception
- if unable to compute a resultpublic static SpaceRemotingServiceExporter getServiceExporter(org.springframework.context.ApplicationContext applicationContext)
public List<AsyncResult<ExecutorRemotingTask.InternalExecutorResult<T>>> reduce(List<AsyncResult<ExecutorRemotingTask.InternalExecutorResult<T>>> results) throws Exception
reduce
in interface AsyncResultsReducer<ExecutorRemotingTask.InternalExecutorResult<T extends Serializable>,List<AsyncResult<ExecutorRemotingTask.InternalExecutorResult<T extends Serializable>>>>
Exception
public Object getRouting()
TaskRoutingProvider
getRouting
in interface TaskRoutingProvider
getRouting
in interface SpaceRemotingInvocation
public String getLookupName()
SpaceRemotingInvocation
getLookupName
in interface SpaceRemotingInvocation
public String getMethodName()
SpaceRemotingInvocation
getMethodName
in interface SpaceRemotingInvocation
public RemotingUtils.MethodHash getMethodHash()
public Object[] getArguments()
SpaceRemotingInvocation
getArguments
in interface SpaceRemotingInvocation
public Object[] getMetaArguments()
SpaceRemotingInvocation
getMetaArguments
in interface SpaceRemotingInvocation
public void writeExternal(ObjectOutput out) throws IOException
writeExternal
in interface Externalizable
IOException
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
readExternal
in interface Externalizable
IOException
ClassNotFoundException
Copyright © GigaSpaces.