Package org.frankframework.senders
Class IbisJavaSender
java.lang.Object
org.frankframework.senders.SenderBase
org.frankframework.senders.SenderWithParametersBase
org.frankframework.senders.IbisJavaSender
- All Implemented Interfaces:
HasPhysicalDestination
,IConfigurable
,IConfigurationAware
,INamedObject
,IScopeProvider
,ISender
,ISenderWithParameters
,IWithParameters
,org.springframework.beans.factory.Aware
,org.springframework.context.ApplicationContextAware
@Category("Advanced")
public class IbisJavaSender
extends SenderWithParametersBase
implements HasPhysicalDestination
Posts a message to another IBIS-adapter or application in the same JVM using IbisServiceDispatcher.
An IbisJavaSender makes a call to a Receiver with a
JavaListener
or any other application in the same JVM that has registered a RequestProcessor
with the IbisServiceDispatcher.
configuring IbisJavaSender and JavaListener
- Define a SenderPipe with an IbisJavaSender
- Set the attribute
serviceName
to yourExternalServiceName
- Define a Receiver with a JavaListener
- Set the attribute
serviceName
to yourExternalServiceName
- Since:
- 4.4.5
- Author:
- Gerrit van Brakel
- Parameters
- All parameters are copied to the PipeLineSession of the service called.
-
Field Summary
Fields inherited from class org.frankframework.senders.SenderWithParametersBase
parameterNamesMustBeUnique, paramList
Fields inherited from class org.frankframework.senders.SenderBase
log
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
configure()
is called once at startup of the framework in the configure method of the owner of this sender.boolean
boolean
Whentrue
, the result of sendMessage is the reply of the request.sendMessage
(Message message, PipeLineSession session) Send a message to some destination (as configured in the Sender object).void
setDispatchType
(String type) Set to 'DLL' to make the dispatcher communicate with a DLL set on the classpathvoid
setMultipartResponse
(boolean b) Currently used to mimic the HttpSender when it is stubbed locally.void
setReturnedSessionKeys
(String string) Comma separated list of keys of session variables that will be returned to caller, for correct results as well as for erroneous results.void
setServiceName
(String string) ServiceName of theJavaListener
that should be called.void
setServiceNameSessionKey
(String string) Key of session variable to specify ServiceName of the JavaListener that should be called.Methods inherited from class org.frankframework.senders.SenderWithParametersBase
addParameter, checkStringAttributeOrParameter, consumesSessionVariable, getParameterList, getParameterOverriddenAttributeValue, getParameterOverriddenAttributeValue, getParameterValueList
Methods inherited from class org.frankframework.senders.SenderBase
close, createBean, getApplicationContext, getConfigurationClassLoader, getLogPrefix, getName, open, setApplicationContext, setName
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.springframework.context.ApplicationContextAware
setApplicationContext
Methods inherited from interface org.frankframework.core.IConfigurationAware
getApplicationContext, getName
Methods inherited from interface org.frankframework.core.INamedObject
getName, setName
Methods inherited from interface org.frankframework.core.IScopeProvider
getConfigurationClassLoader
Methods inherited from interface org.frankframework.core.ISender
close, open, sendMessageOrThrow
-
Constructor Details
-
IbisJavaSender
public IbisJavaSender()
-
-
Method Details
-
configure
Description copied from interface:ISender
configure()
is called once at startup of the framework in the configure method of the owner of this sender. Purpose of this method is to check whether the static configuration of the sender is correct. As much as possible class-instantiating should take place in theconfigure()
oropen()
method, to improve performance.- Specified by:
configure
in interfaceIConfigurable
- Specified by:
configure
in interfaceISender
- Overrides:
configure
in classSenderWithParametersBase
- Throws:
ConfigurationException
-
getPhysicalDestinationName
- Specified by:
getPhysicalDestinationName
in interfaceHasPhysicalDestination
-
isSynchronous
public boolean isSynchronous()Description copied from interface:ISender
Whentrue
, the result of sendMessage is the reply of the request.- Specified by:
isSynchronous
in interfaceISender
-
sendMessage
public SenderResult sendMessage(Message message, PipeLineSession session) throws SenderException, TimeoutException Description copied from interface:ISender
Send a message to some destination (as configured in the Sender object). This method may only be called after theconfigure()
method is called.The following table shows the difference between synchronous and a-synchronous senders:
synchronous a-synchronous ISender.isSynchronous()
returnstrue
false
return value of sendMessage()
isthe reply-message the messageId of the message sent the correlationID specified with sendMessage()
may be ignored is sent with the message a {link TimeOutException} may be thrown if a timeout occurs waiting for a reply should not be expected Multiple objects may try to call this method at the same time, from different threads. Implementations of this method should therefore be thread-safe, or
synchronized
.- Specified by:
sendMessage
in interfaceISender
- Throws:
SenderException
TimeoutException
-
setServiceName
ServiceName of theJavaListener
that should be called. -
setServiceNameSessionKey
Key of session variable to specify ServiceName of the JavaListener that should be called. -
setReturnedSessionKeys
Comma separated list of keys of session variables that will be returned to caller, for correct results as well as for erroneous results. The set of available sessionKeys to be returned might be limited by the returnedSessionKeys attribute of the corresponding JavaListener. -
setMultipartResponse
public void setMultipartResponse(boolean b) Currently used to mimic the HttpSender when it is stubbed locally. It could be useful in other situations too although currently the response string is used which isn't streamed, it would be better to pass the multipart as an input stream in the context map in which case content type and charset could also be passed- Default value
- false
-
setDispatchType
Set to 'DLL' to make the dispatcher communicate with a DLL set on the classpath- Throws:
ConfigurationException
-
getDomain
- Specified by:
getDomain
in interfaceHasPhysicalDestination
-
getServiceName
-
getServiceNameSessionKey
-
getReturnedSessionKeys
-
isMultipartResponse
public boolean isMultipartResponse() -
getDispatchType
-