org.springframework.integration.handler
Class MessageHandlerChain
java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.handler.AbstractMessageHandler
org.springframework.integration.handler.MessageHandlerChain
- All Implemented Interfaces:
- org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.InitializingBean, org.springframework.core.Ordered, NamedComponent, Orderable, MessageHandler, MessageProducer, TrackableComponent
public class MessageHandlerChain
- extends AbstractMessageHandler
- implements MessageProducer, org.springframework.core.Ordered
A composite MessageHandler
implementation that invokes a chain of
MessageHandler instances in order.
Each of the handlers except for the last one must implement the
MessageProducer
interface. The last handler must also if
the chain itself has an output channel configured. No other assumptions
are made about the type of handler.
It is expected that each handler will produce reply messages and send them to
its output channel, although this is not enforced. It is possible to filter
messages in the middle of the chain, for example using a
MessageFilter
. A MessageHandler
returning null will have the
same effect, although this option is less expressive.
This component can be used from the namespace to improve the readability of
the configuration by removing channels that can be created implicitly.
<chain>
<filter ref="someFilter"/>
<bean class="SomeMessageHandlerImplementation"/>
<transformer ref="someTransformer"/>
<aggregator ... />
</chain>
- Author:
- Mark Fisher, Iwein Fuld, Gary Russell
Fields inherited from interface org.springframework.core.Ordered |
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
MessageHandlerChain
public MessageHandlerChain()
setHandlers
public void setHandlers(java.util.List<MessageHandler> handlers)
setOutputChannel
public void setOutputChannel(MessageChannel outputChannel)
- Description copied from interface:
MessageProducer
- Specify the MessageChannel to which produced Messages should be sent.
- Specified by:
setOutputChannel
in interface MessageProducer
setSendTimeout
public void setSendTimeout(long sendTimeout)
setOrder
public void setOrder(int order)
- Description copied from interface:
Orderable
- Set the order for this component.
- Specified by:
setOrder
in interface Orderable
- Overrides:
setOrder
in class AbstractMessageHandler
getOrder
public int getOrder()
- Specified by:
getOrder
in interface org.springframework.core.Ordered
- Overrides:
getOrder
in class AbstractMessageHandler
getComponentType
public java.lang.String getComponentType()
- Description copied from class:
IntegrationObjectSupport
- Subclasses may implement this method to provide component type information.
- Specified by:
getComponentType
in interface NamedComponent
- Overrides:
getComponentType
in class AbstractMessageHandler
onInit
protected void onInit()
throws java.lang.Exception
- Description copied from class:
IntegrationObjectSupport
- Subclasses may implement this for initialization logic.
- Overrides:
onInit
in class IntegrationObjectSupport
- Throws:
java.lang.Exception
handleMessageInternal
protected void handleMessageInternal(Message<?> message)
throws java.lang.Exception
- Specified by:
handleMessageInternal
in class AbstractMessageHandler
- Throws:
java.lang.Exception
setComponentName
public void setComponentName(java.lang.String componentName)
- Description copied from class:
IntegrationObjectSupport
- Sets the name of this component.
- Overrides:
setComponentName
in class IntegrationObjectSupport