| 
 | GigaSpaces XAP 7.0 API | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.openspaces.remoting.SpaceRemotingServiceExporter
public class SpaceRemotingServiceExporter
Exports a list of services (beans) as remote services with the Space as the transport layer. All
 the interfaces each service implements are registered as lookup names (matching
 SpaceRemotingInvocation.getLookupName() which are then used to lookup the actual service
 when a remote invocation is received. The correct service and its method are then executed and a
 SpaceRemotingResult is written back to the space. The remote result
 can either hold the return value (or null in case of void return value) or an
 exception that was thrown by the service.
 
The exporter implements SpaceDataEventListener which means that it
 acts as a listener to data events and should be used with the different event containers such as
 SimplePollingEventListenerContainer. This method of execution
 is called event driven remote execution (EventDrivenSpaceRemotingProxyFactoryBean).
 
It also implements EventTemplateProvider which means that within
 the event container configuration there is no need to configure the template, as it uses the one
 provided by this exported.
 
The exporter also implements FilterProviderFactory and
 allows to execute services in a sync manner (SyncSpaceRemotingProxyFactoryBean).
 
Last, the exporter provides services to executor based remoting (ExecutorSpaceRemotingProxyFactoryBean).
 
By default, the exporter will also autowire and post process all the arguments passed, allowing
 to inject them with "server" side beans using Spring Autowired
 annotation for example. Note, this variables must be defined as transient so they won't be
 passed back to the client. This can be disabled by setting setDisableAutowiredArguements(boolean)
 to true.
SimplePollingEventListenerContainer, 
EventDrivenSpaceRemotingEntry, 
EventDrivenSpaceRemotingProxyFactoryBean| Field Summary | |
|---|---|
| static String | DEFAULT_ASYNC_INTERFACE_SUFFIX | 
| Constructor Summary | |
|---|---|
| SpaceRemotingServiceExporter() | |
| Method Summary | |
|---|---|
|  void | addService(String beanId,
           Object service) | 
|  void | afterPropertiesSet() | 
|  com.j_spaces.core.filters.FilterProvider | getFilterProvider()Returns an instance of SpaceRemotingServiceExporter.RemotingServiceInvokerfilter for sync remote service execution. | 
|  ServiceDetails[] | getServicesDetails()Retruns one or more service details that the service exposes. | 
|  ServiceMonitors[] | getServicesMonitors()Retruns one or more service details that the service exposes. | 
|  Object | getTemplate()The template used for receiving events. | 
|  Object | invokeExecutor(ExecutorRemotingTask task) | 
|  void | onApplicationEvent(ApplicationEvent applicationEvent) | 
|  void | onEvent(EventDrivenSpaceRemotingEntry remotingEntry,
        GigaSpace gigaSpace,
        TransactionStatus txStatus,
        Object source)Receives a EventDrivenSpaceRemotingEntrywhich holds all the relevant
 invocation information. | 
|  void | setApplicationContext(ApplicationContext applicationContext)Application context injected by Spring | 
|  void | setAsyncInterfaceSuffix(String asyncInterfaceSuffix)For async based execution of remote services, this is one of the options to enable this by using two different interfaces. | 
|  void | setBeanName(String name) | 
|  void | setClusterInfo(ClusterInfo clusterInfo)Cluster Info injected | 
|  void | setDisableAutowiredArguements(boolean disableAutowiredArguements)Allows to disable (by default it is enabled) the autowiring of method arguments with beans that exists within the server side context. | 
|  void | setFifo(boolean fifo)Sets the template used to read async invocation (the EventDrivenSpaceRemotingEntry)
 to be fifo. | 
|  void | setServiceExecutionAspect(ServiceExecutionAspect serviceExecutionAspect)Allows to inject a service execution callback. | 
|  void | setServices(List<Object> services)Sets the list of services that will be exported as remote services. | 
|  void | setSyncEntryWriteLease(long syncEntryWriteLease)Sets the sync entry write lease. | 
|  void | setTemplateLookupName(String templateLookupName)Allows to narrow down the async polling container to perform a lookup only on specific lookup name (which is usually the interface that will be used to proxy it on the client side). | 
| 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_INTERFACE_SUFFIX
| Constructor Detail | 
|---|
public SpaceRemotingServiceExporter()
| Method Detail | 
|---|
public void setServices(List<Object> services)
EventDrivenSpaceRemotingEntry.getLookupName() which will then be used to invoke the correct
 service.
public void setAsyncInterfaceSuffix(String asyncInterfaceSuffix)
This setter allows to set the async suffix which by default is Async.
public void setFifo(boolean fifo)
EventDrivenSpaceRemotingEntry)
 to be fifo. Works in with setting the EventDrivenSpaceRemotingProxyFactoryBean
 fifo flag to true and allows for remoting to work in fifo mode without needing to set the whole
 Space to work in fifo mode.
public void setDisableAutowiredArguements(boolean disableAutowiredArguements)
public void setServiceExecutionAspect(ServiceExecutionAspect serviceExecutionAspect)
public void setSyncEntryWriteLease(long syncEntryWriteLease)
Lease.FOREVER.
public void setTemplateLookupName(String templateLookupName)
This option allows to create several polling container, each for different service that will perform the actual invocation.
public void setApplicationContext(ApplicationContext applicationContext)
setApplicationContext in interface ApplicationContextAwarepublic void setBeanName(String name)
setBeanName in interface BeanNameAwarepublic void setClusterInfo(ClusterInfo clusterInfo)
setClusterInfo in interface ClusterInfoAwareclusterInfo - The cluster information to be injected
public void addService(String beanId,
                       Object service)
                throws IllegalStateException
IllegalStateException
public void afterPropertiesSet()
                        throws Exception
afterPropertiesSet in interface InitializingBeanExceptionpublic void onApplicationEvent(ApplicationEvent applicationEvent)
onApplicationEvent in interface ApplicationListenerpublic Object getTemplate()
EventDrivenSpaceRemotingEntry.
getTemplate in interface EventTemplateProviderpublic ServiceDetails[] getServicesDetails()
ServiceDetailsProvider
getServicesDetails in interface ServiceDetailsProviderpublic ServiceMonitors[] getServicesMonitors()
ServiceMonitorsProvider
getServicesMonitors in interface ServiceMonitorsProvider
public void onEvent(EventDrivenSpaceRemotingEntry remotingEntry,
                    GigaSpace gigaSpace,
                    TransactionStatus txStatus,
                    Object source)
             throws RemoteAccessException
EventDrivenSpaceRemotingEntry which holds all the relevant
 invocation information. Looks up (based on EventDrivenSpaceRemotingEntry.getLookupName()
 the interface the service is registered against (which is the interface the service
 implements) and then invokes the relevant method within it using the provided method name and
 arguments. Write the result value or invocation exception back to the space using
 EventDrivenSpaceRemotingEntry.
onEvent in interface SpaceDataEventListener<EventDrivenSpaceRemotingEntry>remotingEntry - The remote entry objectgigaSpace - The GigaSpace interfacetxStatus - A transactional statussource - An optional source event information
RemoteAccessException
public Object invokeExecutor(ExecutorRemotingTask task)
                      throws Throwable
Throwablepublic com.j_spaces.core.filters.FilterProvider getFilterProvider()
SpaceRemotingServiceExporter.RemotingServiceInvoker
 filter for sync remote service execution.
getFilterProvider in interface FilterProviderFactory| 
 | GigaSpaces XAP 7.0 API | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||