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:
- BeanFactoryAware, BeanNameAware, InitializingBean, Ordered, NamedComponent, Orderable, MessageHandler, MessageProducer, TrackableComponent
public class MessageHandlerChain
- extends AbstractMessageHandler
- implements MessageProducer, 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>
| 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 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