Spring Integration

org.springframework.integration.router
Class AbstractMessageRouter

java.lang.Object
  extended by org.springframework.integration.context.IntegrationObjectSupport
      extended by org.springframework.integration.handler.AbstractMessageHandler
          extended by org.springframework.integration.router.AbstractMessageRouter
All Implemented Interfaces:
BeanFactoryAware, BeanNameAware, InitializingBean, Ordered, MessageHandler, NamedComponent
Direct Known Subclasses:
AbstractChannelNameResolvingMessageRouter, AbstractSingleChannelRouter, RecipientListRouter

public abstract class AbstractMessageRouter
extends AbstractMessageHandler

Base class for Message Routers.

Author:
Mark Fisher

Field Summary
 
Fields inherited from class org.springframework.integration.handler.AbstractMessageHandler
logger
 
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
 
Constructor Summary
AbstractMessageRouter()
           
 
Method Summary
protected abstract  Collection<MessageChannel> determineTargetChannels(Message<?> message)
          Subclasses must implement this method to return the target channels for a given Message.
 String getComponentType()
          Subclasses may implement this method to provide component type information.
protected  void handleMessageInternal(Message<?> message)
           
 void setApplySequence(boolean applySequence)
          Specify whether to apply the sequence number and size headers to the messages prior to sending to the recipient channels.
 void setDefaultOutputChannel(MessageChannel defaultOutputChannel)
          Set the default channel where Messages should be sent if channel resolution fails to return any channels.
 void setIgnoreSendFailures(boolean ignoreSendFailures)
          Specify whether send failures for one or more of the recipients should be ignored.
 void setResolutionRequired(boolean resolutionRequired)
          Set whether this router should always be required to resolve at least one channel.
 void setTimeout(long timeout)
          Set the timeout for sending a message to the resolved channel.
 
Methods inherited from class org.springframework.integration.handler.AbstractMessageHandler
getOrder, handleMessage, resolveReplyChannel, setOrder
 
Methods inherited from class org.springframework.integration.context.IntegrationObjectSupport
afterPropertiesSet, getBeanFactory, getChannelResolver, getComponentName, getConversionService, getTaskScheduler, onInit, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setConversionService, setTaskScheduler, toString, writeMessageHistory
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

AbstractMessageRouter

public AbstractMessageRouter()
Method Detail

setDefaultOutputChannel

public void setDefaultOutputChannel(MessageChannel defaultOutputChannel)
Set the default channel where Messages should be sent if channel resolution fails to return any channels. If no default channel is provided, the router will either drop the Message or throw an Exception depending on the value of resolutionRequired.


setTimeout

public void setTimeout(long timeout)
Set the timeout for sending a message to the resolved channel. By default, there is no timeout, meaning the send will block indefinitely.


setResolutionRequired

public void setResolutionRequired(boolean resolutionRequired)
Set whether this router should always be required to resolve at least one channel. The default is 'false'. To trigger an exception whenever the resolver returns null or an empty channel list, and this endpoint has no 'defaultOutputChannel' configured, set this value to 'true'.


setIgnoreSendFailures

public void setIgnoreSendFailures(boolean ignoreSendFailures)
Specify whether send failures for one or more of the recipients should be ignored. By default this is false meaning that an Exception will be thrown whenever a send fails. To override this and suppress Exceptions, set the value to true.


setApplySequence

public void setApplySequence(boolean applySequence)
Specify whether to apply the sequence number and size headers to the messages prior to sending to the recipient channels. By default, this value is false meaning that sequence headers will not be applied. If planning to use an Aggregator downstream with the default correlation and completion strategies, you should set this flag to true.


getComponentType

public 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

handleMessageInternal

protected void handleMessageInternal(Message<?> message)
Specified by:
handleMessageInternal in class AbstractMessageHandler

determineTargetChannels

protected abstract Collection<MessageChannel> determineTargetChannels(Message<?> message)
Subclasses must implement this method to return the target channels for a given Message.


Spring Integration

Copyright © 2010. All Rights Reserved.