org.ofbiz.service
Class ServiceDispatcher

java.lang.Object
  extended by org.ofbiz.service.ServiceDispatcher

public class ServiceDispatcher
extends java.lang.Object

Global Service Dispatcher


Field Summary
protected  java.util.Map<java.lang.String,java.util.List<GenericServiceCallback>> callbacks
           
protected  GenericDelegator delegator
           
protected static java.util.Map<java.lang.String,ServiceDispatcher> dispatchers
           
protected static boolean enableJM
           
protected static boolean enableJMS
           
protected static boolean enableSvcs
           
protected  GenericEngineFactory factory
           
protected  JmsListenerFactory jlf
           
protected  JobManager jm
           
protected  java.util.Map<java.lang.String,DispatchContext> localContext
           
static int LOCK_RETRIES
           
static int lruLogSize
           
static java.lang.String module
           
protected static java.util.Map<RunningService,ServiceDispatcher> runLog
           
protected  Security security
           
 
Constructor Summary
protected ServiceDispatcher(GenericDelegator delegator)
           
protected ServiceDispatcher(GenericDelegator delegator, boolean enableJM, boolean enableJMS, boolean enableSvcs)
           
 
Method Summary
 boolean containsContext(java.lang.String name)
          Test if this dispatcher instance contains the local context.
 void deregister(LocalDispatcher local)
          De-Registers the loader with this ServiceDispatcher
static void enableJM(boolean enable)
          Enabled/Disables the Job Manager/Scheduler globally (this will not effect any dispatchers already running)
static void enableJMS(boolean enable)
          Enabled/Disables the JMS listeners globally (this will not effect any dispatchers already running)
static void enableSvcs(boolean enable)
          Enabled/Disables the startup services globally (this will not effect any dispatchers already running)
 java.util.List<GenericServiceCallback> getCallbacks(java.lang.String serviceName)
           
 GenericDelegator getDelegator()
          Gets the GenericDelegator associated with this dispatcher
 GenericEngine getGenericEngine(java.lang.String engineName)
          Gets the GenericEngine instance that corresponds to the given name
static ServiceDispatcher getInstance(java.lang.String name, DispatchContext context, GenericDelegator delegator)
          Returns an instance of the ServiceDispatcher associated with this delegator and registers the loader.
static ServiceDispatcher getInstance(java.lang.String name, GenericDelegator delegator)
          Returns a pre-registered instance of the ServiceDispatcher associated with this delegator.
 JmsListenerFactory getJMSListenerFactory()
          Gets the JmsListenerFactory which holds the message listeners.
 JobManager getJobManager()
          Gets the JobManager associated with this dispatcher
 DispatchContext getLocalContext(java.lang.String name)
          Gets the local context from a name
 LocalDispatcher getLocalDispatcher(java.lang.String name)
          Gets the local dispatcher from a name
 Security getSecurity()
          Gets the Security object associated with this dispatcher
static java.util.Map<RunningService,ServiceDispatcher> getServiceLogMap()
           
 void register(java.lang.String name, DispatchContext context)
          Registers the loader with this ServiceDispatcher
 void registerCallback(java.lang.String serviceName, GenericServiceCallback cb)
           
 void runAsync(java.lang.String localName, ModelService service, java.util.Map<java.lang.String,? extends java.lang.Object> context, boolean persist)
          Run the service asynchronously and IGNORE the result.
 void runAsync(java.lang.String localName, ModelService service, java.util.Map<java.lang.String,? extends java.lang.Object> params, GenericRequester requester, boolean persist)
          Run the service asynchronously, passing an instance of GenericRequester that will receive the result.
 java.util.Map<java.lang.String,java.lang.Object> runSync(java.lang.String localName, ModelService service, java.util.Map<java.lang.String,? extends java.lang.Object> context)
          Run the service synchronously and return the result.
 java.util.Map<java.lang.String,java.lang.Object> runSync(java.lang.String localName, ModelService modelService, java.util.Map<java.lang.String,? extends java.lang.Object> params, boolean validateOut)
          Run the service synchronously and return the result.
 void runSyncIgnore(java.lang.String localName, ModelService service, java.util.Map<java.lang.String,? extends java.lang.Object> context)
          Run the service synchronously and IGNORE the result.
protected  void shutdown()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

module

public static final java.lang.String module

lruLogSize

public static final int lruLogSize
See Also:
Constant Field Values

LOCK_RETRIES

public static final int LOCK_RETRIES
See Also:
Constant Field Values

runLog

protected static final java.util.Map<RunningService,ServiceDispatcher> runLog

dispatchers

protected static java.util.Map<java.lang.String,ServiceDispatcher> dispatchers

enableJM

protected static boolean enableJM

enableJMS

protected static boolean enableJMS

enableSvcs

protected static boolean enableSvcs

delegator

protected GenericDelegator delegator

factory

protected GenericEngineFactory factory

security

protected Security security

localContext

protected java.util.Map<java.lang.String,DispatchContext> localContext

callbacks

protected java.util.Map<java.lang.String,java.util.List<GenericServiceCallback>> callbacks

jm

protected JobManager jm

jlf

protected JmsListenerFactory jlf
Constructor Detail

ServiceDispatcher

protected ServiceDispatcher(GenericDelegator delegator,
                            boolean enableJM,
                            boolean enableJMS,
                            boolean enableSvcs)

ServiceDispatcher

protected ServiceDispatcher(GenericDelegator delegator)
Method Detail

getInstance

public static ServiceDispatcher getInstance(java.lang.String name,
                                            GenericDelegator delegator)
Returns a pre-registered instance of the ServiceDispatcher associated with this delegator.

Parameters:
delegator - the local delegator
Returns:
A reference to this global ServiceDispatcher

getInstance

public static ServiceDispatcher getInstance(java.lang.String name,
                                            DispatchContext context,
                                            GenericDelegator delegator)
Returns an instance of the ServiceDispatcher associated with this delegator and registers the loader.

Parameters:
name - the local dispatcher
context - the context of the local dispatcher
delegator - the local delegator
Returns:
A reference to this global ServiceDispatcher

register

public void register(java.lang.String name,
                     DispatchContext context)
Registers the loader with this ServiceDispatcher

Parameters:
name - the local dispatcher
context - the context of the local dispatcher

deregister

public void deregister(LocalDispatcher local)
De-Registers the loader with this ServiceDispatcher

Parameters:
local - the LocalDispatcher to de-register

registerCallback

public void registerCallback(java.lang.String serviceName,
                             GenericServiceCallback cb)

getCallbacks

public java.util.List<GenericServiceCallback> getCallbacks(java.lang.String serviceName)

runSync

public java.util.Map<java.lang.String,java.lang.Object> runSync(java.lang.String localName,
                                                                ModelService service,
                                                                java.util.Map<java.lang.String,? extends java.lang.Object> context)
                                                         throws ServiceAuthException,
                                                                ServiceValidationException,
                                                                GenericServiceException
Run the service synchronously and return the result.

Parameters:
localName - Name of the context to use.
service - Service model object.
context - Map of name, value pairs composing the context.
Returns:
Map of name, value pairs composing the result.
Throws:
ServiceAuthException
ServiceValidationException
GenericServiceException

runSyncIgnore

public void runSyncIgnore(java.lang.String localName,
                          ModelService service,
                          java.util.Map<java.lang.String,? extends java.lang.Object> context)
                   throws ServiceAuthException,
                          ServiceValidationException,
                          GenericServiceException
Run the service synchronously and IGNORE the result.

Parameters:
localName - Name of the context to use.
service - Service model object.
context - Map of name, value pairs composing the context.
Throws:
ServiceAuthException
ServiceValidationException
GenericServiceException

runSync

public java.util.Map<java.lang.String,java.lang.Object> runSync(java.lang.String localName,
                                                                ModelService modelService,
                                                                java.util.Map<java.lang.String,? extends java.lang.Object> params,
                                                                boolean validateOut)
                                                         throws ServiceAuthException,
                                                                ServiceValidationException,
                                                                GenericServiceException
Run the service synchronously and return the result.

Parameters:
localName - Name of the context to use.
modelService - Service model object.
context - Map of name, value pairs composing the context.
validateOut - Validate OUT parameters
Returns:
Map of name, value pairs composing the result.
Throws:
ServiceAuthException
ServiceValidationException
GenericServiceException

runAsync

public void runAsync(java.lang.String localName,
                     ModelService service,
                     java.util.Map<java.lang.String,? extends java.lang.Object> params,
                     GenericRequester requester,
                     boolean persist)
              throws ServiceAuthException,
                     ServiceValidationException,
                     GenericServiceException
Run the service asynchronously, passing an instance of GenericRequester that will receive the result.

Parameters:
localName - Name of the context to use.
service - Service model object.
context - Map of name, value pairs composing the context.
requester - Object implementing GenericRequester interface which will receive the result.
persist - True for store/run; False for run.
Throws:
ServiceAuthException
ServiceValidationException
GenericServiceException

runAsync

public void runAsync(java.lang.String localName,
                     ModelService service,
                     java.util.Map<java.lang.String,? extends java.lang.Object> context,
                     boolean persist)
              throws ServiceAuthException,
                     ServiceValidationException,
                     GenericServiceException
Run the service asynchronously and IGNORE the result.

Parameters:
localName - Name of the context to use.
service - Service model object.
context - Map of name, value pairs composing the context.
persist - True for store/run; False for run.
Throws:
ServiceAuthException
ServiceValidationException
GenericServiceException

getGenericEngine

public GenericEngine getGenericEngine(java.lang.String engineName)
                               throws GenericServiceException
Gets the GenericEngine instance that corresponds to the given name

Parameters:
engineName - Name of the engine
Returns:
GenericEngine instance that corresponds to the engineName
Throws:
GenericServiceException

getJobManager

public JobManager getJobManager()
Gets the JobManager associated with this dispatcher

Returns:
JobManager that is associated with this dispatcher

getJMSListenerFactory

public JmsListenerFactory getJMSListenerFactory()
Gets the JmsListenerFactory which holds the message listeners.

Returns:
JmsListenerFactory

getDelegator

public GenericDelegator getDelegator()
Gets the GenericDelegator associated with this dispatcher

Returns:
GenericDelegator associated with this dispatcher

getSecurity

public Security getSecurity()
Gets the Security object associated with this dispatcher

Returns:
Security object associated with this dispatcher

getLocalContext

public DispatchContext getLocalContext(java.lang.String name)
Gets the local context from a name

Parameters:
name - of the context to find.

getLocalDispatcher

public LocalDispatcher getLocalDispatcher(java.lang.String name)
Gets the local dispatcher from a name

Parameters:
name - of the LocalDispatcher to find.
Returns:
LocalDispatcher matching the loader name

containsContext

public boolean containsContext(java.lang.String name)
Test if this dispatcher instance contains the local context.

Parameters:
name - of the local context
Returns:
true if the local context is found in this dispatcher.

shutdown

protected void shutdown()
                 throws GenericServiceException
Throws:
GenericServiceException

enableJM

public static void enableJM(boolean enable)
Enabled/Disables the Job Manager/Scheduler globally (this will not effect any dispatchers already running)

Parameters:
enable -

enableJMS

public static void enableJMS(boolean enable)
Enabled/Disables the JMS listeners globally (this will not effect any dispatchers already running)

Parameters:
enable -

enableSvcs

public static void enableSvcs(boolean enable)
Enabled/Disables the startup services globally (this will not effect any dispatchers already running)

Parameters:
enable -

getServiceLogMap

public static java.util.Map<RunningService,ServiceDispatcher> getServiceLogMap()