Package org.frankframework.senders
Class AbstractSenderWrapper
java.lang.Object
org.frankframework.senders.AbstractSender
org.frankframework.senders.AbstractSenderWithParameters
org.frankframework.senders.AbstractSenderWrapper
- All Implemented Interfaces:
ICacheEnabled<String,,String> FrankElement,HasApplicationContext,HasName,IConfigurable,IScopeProvider,ISender,ISenderWithParameters,IWithParameters,NameAware,org.springframework.beans.factory.Aware,org.springframework.context.ApplicationContextAware,org.springframework.context.Lifecycle
- Direct Known Subclasses:
ReconnectSenderWrapper,SenderSeries,SenderWrapper
public abstract class AbstractSenderWrapper
extends AbstractSenderWithParameters
implements ICacheEnabled<String,String>
Baseclass for Wrappers for senders, that allows to get input from a session variable, and to store output in a session variable.
- Since:
- 4.9
- Author:
- Gerrit van Brakel
-
Field Summary
FieldsFields inherited from class org.frankframework.senders.AbstractSenderWithParameters
parameterNamesMustBeUnique, paramListFields inherited from class org.frankframework.senders.AbstractSender
log -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidConfigure this component.abstract SenderResultdoSendMessage(Message message, PipeLineSession session) protected abstract booleansendMessage(Message message, PipeLineSession session) Send a message to some destination (as configured in the Sender object).voidsetGetInputFromFixedValue(String string) If set, this fixed value is taken as input, instead of regular inputvoidsetGetInputFromSessionKey(String string) If set, input is taken from this session key, instead of regular inputvoidname of the sendervoidsetPreserveInput(boolean preserveInput) Iftrue, the input of a pipe is restored before processing the next onevoidsetStoreInputInSessionKey(String string) If set, the input is stored under this session keyvoidsetStoreResultInSessionKey(String string) If set, the result is stored under this session keyvoidstart()This method will be called to start the sender.voidstop()Stop/close the sender and deallocate resources.Methods inherited from class org.frankframework.senders.AbstractSenderWithParameters
addParameter, checkStringAttributeOrParameter, consumesSessionVariable, getParameterList, getParameterOverriddenAttributeValue, getParameterOverriddenAttributeValue, getParameterValueListMethods inherited from class org.frankframework.senders.AbstractSender
createBean, getLogPrefix, getName, isRunning, setApplicationContextMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.context.ApplicationContextAware
setApplicationContextMethods inherited from interface org.frankframework.core.FrankElement
addConfigWarningMethods inherited from interface org.frankframework.core.HasApplicationContext
getApplicationContext, getConfigurationClassLoaderMethods inherited from interface org.frankframework.cache.ICacheEnabled
getCache, setCacheMethods inherited from interface org.frankframework.core.ISender
isSynchronous, sendMessageOrThrow
-
Field Details
-
configurationMetrics
-
senderWrapperProcessor
-
-
Constructor Details
-
AbstractSenderWrapper
public AbstractSenderWrapper()
-
-
Method Details
-
configure
Description copied from interface:IConfigurableConfigure this component.configure()is called once at startup of the framework in the configure method of the owner of thisIConfigurable. Purpose of this method is to check whether the static configuration of the object is correct. As much as possible class-instantiating should take place in theconfigure(), to improve performance.In the case of a container, this will propagate the configure signal to all components that apply.
- Specified by:
configurein interfaceIConfigurable- Overrides:
configurein classAbstractSenderWithParameters- Throws:
ConfigurationException- in case it was not able to configure the component.
-
start
public void start()Description copied from interface:ISenderThis method will be called to start the sender. After this method is called the sendMessage method may be called. Purpose of this method is to reduce creating connections to databases etc. in thesendMessage()method.- Specified by:
startin interfaceISender- Specified by:
startin interfaceorg.springframework.context.Lifecycle- Overrides:
startin classAbstractSender
-
stop
public void stop()Description copied from interface:ISenderStop/close the sender and deallocate resources.- Specified by:
stopin interfaceISender- Specified by:
stopin interfaceorg.springframework.context.Lifecycle- Overrides:
stopin classAbstractSender
-
setName
Description copied from class:AbstractSendername of the sender- Specified by:
setNamein interfaceNameAware- Overrides:
setNamein classAbstractSender
-
isSenderConfigured
protected abstract boolean isSenderConfigured() -
doSendMessage
public abstract SenderResult doSendMessage(@Nonnull Message message, @Nonnull PipeLineSession session) throws SenderException, TimeoutException - Throws:
SenderExceptionTimeoutException
-
sendMessage
@Nonnull public SenderResult sendMessage(@Nonnull Message message, @Nonnull PipeLineSession session) throws SenderException, TimeoutException Description copied from interface:ISenderSend 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()returnstruefalsereturn 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:
sendMessagein interfaceISender- Throws:
SenderExceptionTimeoutException
-
setGetInputFromSessionKey
If set, input is taken from this session key, instead of regular input -
setGetInputFromFixedValue
If set, this fixed value is taken as input, instead of regular input -
setPreserveInput
public void setPreserveInput(boolean preserveInput) Iftrue, the input of a pipe is restored before processing the next one- Default value
- false
-
setStoreResultInSessionKey
If set, the result is stored under this session key -
setStoreInputInSessionKey
If set, the input is stored under this session key
-