ibis-servicedispatcher
The IbisServiceDispatcher can be used to communicate between applications that reside in the same JVM. It was developed to provide a means of communication in native Java between the Everest Knowledge Framework (EKF) and the adapters build using the Ibis Framework.
usage
To use the IbisServiceDispatcher, an instance of the DispatcherManager must be obtained by calling the static method getDispatcherManager() on DispatcherManagerFactory. Then:- to call a service, call processRequest(String clientName, String correlationId, String message, HashMap requestContext) on the DispatcherManager
- to provide a service, register a RequestProcessor using register(RequestProcessor)
ibis-configuration
Use the following code in an Ibis-configuration to provide a service using the service dispatcher:(Any parameter passed in the requestContext is made available to the Adapter as a PipeLineSession-variable)
<receiver name="JavaListener" returnIfStopped="Service not available"> <listener className="nl.nn.adapterframework.receivers.JavaListener" serviceName="ibis4xxx-myadapter" /> </receiver>
To call a service provided by the service dispatcher from within a Ibis-configuration, use the JavaSender, like this:
(Any parameter defined with the sender is passed on to the processing service in the requestContext)
<pipe name="PipeCallingService"> <sender className="nl.nn.adapterframework.pipes.IbisJavaSender" serviceName="nameOfService" > <param name="param1" value="valueOfThisParameter"/> <sender> <forward name="success" path="READY"/> </pipe>