|
GigaSpaces XAP 7.0 API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.remoting.support.RemotingSupport org.springframework.remoting.support.RemoteAccessor org.openspaces.remoting.SyncSpaceRemotingProxyFactoryBean
ExecutorSpaceRemotingProxyFactoryBean
and executor based remoting instead.
public class SyncSpaceRemotingProxyFactoryBean
A space sync remoting proxy that forward the service execution to a remote service with the space as
the transport layer. Services are remotely exported in the "server side" using the
SpaceRemotingServiceExporter
. This proxy uses the fact that the service exporter is defined as a filter
within the remote Space, causing the call to be sync. Either a takeMultiple
(in case of an
invocation with a result) or readMultiple
(in case the invocation is one way) is invoked on the
Space using a template (SyncSpaceRemotingEntry
) that actually holds the invocation
information. The service exporter traps the operation (in the "before" stage) using the filter and writes the
result to the Space which is then read by the actual readMultuple/takeMultiple.
The proxy requires a setGigaSpace(org.openspaces.core.GigaSpace)
interface to be set in
order to write execute.
Allows for one way invocations (i.e. not waiting for a response). The one way invocation can be
set globally for all of the service methods by setting setGlobalOneWay(boolean)
or can
be enabled only for methods that return void
by setting
setVoidOneWay(boolean)
. Note, if using one way invocation and an exception is raised by
the remote service, it won't be raised by this proxy.
In case of remote invocation over a partitioned space the default partitioned routing index will
be random (the hashCode of the newly created SyncSpaceRemotingEntry
class).
The proxy allows for a pluggable routing handler implementation by setting
setRemoteRoutingHandler(RemoteRoutingHandler)
.
The proxy allows to perform broadcast the remote invocation to all different cluster members (partitions
for example) by setting the broadcast
flag to true
/ In such cases,
a custom setRemoteResultReducer(RemoteResultReducer)
can be plugged to reduce the results of
all different services into a single response (assuming that the service has a return value).
The actual remote invocation can be replaced with an aspect implementing RemoteInvocationAspect
which can be set using setRemoteInvocationAspect(RemoteInvocationAspect)
. It is up the aspect to then
call the actual remote invocation.
SpaceRemotingServiceExporter
Field Summary | |
---|---|
static String |
DEFAULT_ASYNC_METHOD_PREFIX
Deprecated. |
Fields inherited from class org.springframework.remoting.support.RemotingSupport |
---|
logger |
Constructor Summary | |
---|---|
SyncSpaceRemotingProxyFactoryBean()
Deprecated. |
Method Summary | |
---|---|
void |
afterPropertiesSet()
Deprecated. |
Object |
getObject()
Deprecated. |
Class<?> |
getObjectType()
Deprecated. |
Object |
invoke(MethodInvocation methodInvocation)
Deprecated. |
Object |
invokeRemote(MethodInvocation methodInvocation)
Deprecated. This invocation will cause the actual remote invocation. |
boolean |
isSingleton()
Deprecated. |
void |
setBroadcast(boolean broadcast)
Deprecated. If set the true (defaults to false ) causes the remote invocation
to be called on all active (primary) cluster memebers. |
void |
setGigaSpace(GigaSpace gigaSpace)
Deprecated. Sets the GigaSpace interface that will be used to work with the space as the transport layer. |
void |
setGlobalOneWay(boolean globalOneWay)
Deprecated. If set to true (defaults to false ) all of the service methods
will be invoked and the proxy will not wait for a return value. |
void |
setMetaArgumentsHandler(MetaArgumentsHandler metaArgumentsHandler)
Deprecated. Allows to set a meta argument handler that will control SpaceRemotingInvocation.getMetaArguments() . |
void |
setRemoteInvocationAspect(RemoteInvocationAspect remoteInvocationAspect)
Deprecated. The actual remote invocation can be replaced with an aspect implementing RemoteInvocationAspect
which can be set using setRemoteInvocationAspect(RemoteInvocationAspect) . |
void |
setRemoteResultReducer(RemoteResultReducer remoteResultReducer)
Deprecated. When using broadcast set to true , allows to plug a custom reducer that can
reduce the array of result objects into another response object. |
void |
setRemoteRoutingHandler(RemoteRoutingHandler remoteRoutingHandler)
Deprecated. In case of remote invocation over a partitioned space the default partitioned routing index will be random (the hashCode of the newly created SyncSpaceRemotingEntry class). |
void |
setReturnFirstResult(boolean returnFirstResult)
Deprecated. When set to true (defaults to true ) will return the first result
when using broadcast. |
void |
setVoidOneWay(boolean voidOneWay)
Deprecated. If set to true (defaults to false ) service methods that return
void will be invoked and the proxy will not wait for a return value. |
Methods inherited from class org.springframework.remoting.support.RemoteAccessor |
---|
getServiceInterface, setServiceInterface |
Methods inherited from class org.springframework.remoting.support.RemotingSupport |
---|
getBeanClassLoader, overrideThreadContextClassLoader, resetThreadContextClassLoader, setBeanClassLoader |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final String DEFAULT_ASYNC_METHOD_PREFIX
Constructor Detail |
---|
public SyncSpaceRemotingProxyFactoryBean()
Method Detail |
---|
public void setGigaSpace(GigaSpace gigaSpace)
public void setRemoteRoutingHandler(RemoteRoutingHandler remoteRoutingHandler)
SyncSpaceRemotingEntry
class). This
RemoteRoutingHandler
allows for custom routing computation
(for example, based on one of the service method parameters).
public void setGlobalOneWay(boolean globalOneWay)
true
(defaults to false
) all of the service methods
will be invoked and the proxy will not wait for a return value. Note, any exception raised by
the remote service will be logged on the server side and not propagated to the client.
public void setVoidOneWay(boolean voidOneWay)
true
(defaults to false
) service methods that return
void will be invoked and the proxy will not wait for a return value. Note, any exception
raised by the remote service will be logged on the server side and not propagated to the
client.
public void setBroadcast(boolean broadcast)
true
(defaults to false
) causes the remote invocation
to be called on all active (primary) cluster memebers.
public void setRemoteResultReducer(RemoteResultReducer remoteResultReducer)
true
, allows to plug a custom reducer that can
reduce the array of result objects into another response object.
public void setMetaArgumentsHandler(MetaArgumentsHandler metaArgumentsHandler)
SpaceRemotingInvocation.getMetaArguments()
.
public void setReturnFirstResult(boolean returnFirstResult)
true
(defaults to true
) will return the first result
when using broadcast. If set to false
, an array of results will be retuned.
Note, this only applies if no reducer is provided.
public void setRemoteInvocationAspect(RemoteInvocationAspect remoteInvocationAspect)
RemoteInvocationAspect
which can be set using setRemoteInvocationAspect(RemoteInvocationAspect)
. It is up the aspect to then
call the actual remote invocation.
public void afterPropertiesSet()
afterPropertiesSet
in interface InitializingBean
public Object getObject()
getObject
in interface FactoryBean
public Class<?> getObjectType()
getObjectType
in interface FactoryBean
public boolean isSingleton()
isSingleton
in interface FactoryBean
public Object invoke(MethodInvocation methodInvocation) throws Throwable
invoke
in interface MethodInterceptor
Throwable
public Object invokeRemote(MethodInvocation methodInvocation) throws Throwable
RemotingInvoker
invokeRemote
in interface RemotingInvoker
Throwable
|
GigaSpaces XAP 7.0 API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |