org.springframework.integration.filter
Class MessageFilter

java.lang.Object
  extended by org.springframework.integration.context.IntegrationObjectSupport
      extended by org.springframework.integration.handler.AbstractMessageHandler
          extended by org.springframework.integration.handler.AbstractReplyProducingMessageHandler
              extended by org.springframework.integration.filter.MessageFilter
All Implemented Interfaces:
BeanFactoryAware, BeanNameAware, InitializingBean, Ordered, NamedComponent, Orderable, MessageHandler, MessageProducer, TrackableComponent

public class MessageFilter
extends AbstractReplyProducingMessageHandler

Message Handler that delegates to a MessageSelector. If and only if the selector accepts the Message, it will be passed to this filter's output channel. Otherwise the message will either be silently dropped (the default) or will trigger the throwing of a MessageRejectedException depending on the value of its throwExceptionOnRejection property. If a discard channel is provided, the rejected Messages will be sent to that channel.


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
MessageFilter(MessageSelector selector)
          Create a MessageFilter that will delegate to the given MessageSelector.
 
Method Summary
 java.lang.String getComponentType()
          Subclasses may implement this method to provide component type information.
protected  java.lang.Object handleRequestMessage(Message<?> message)
          Subclasses must implement this method to handle the request Message.
 void onInit()
          Subclasses may implement this for initialization logic.
 void setDiscardChannel(MessageChannel discardChannel)
          Specify a channel where rejected Messages should be sent.
 void setThrowExceptionOnRejection(boolean throwExceptionOnRejection)
          Specify whether this filter should throw a MessageRejectedException when its selector does not accept a Message.
protected  boolean shouldCopyRequestHeaders()
          Subclasses may override this.
 
Methods inherited from class org.springframework.integration.handler.AbstractReplyProducingMessageHandler
getMessagingTemplate, handleMessageInternal, setChannelResolver, setOutputChannel, setRequiresReply, setSendTimeout
 
Methods inherited from class org.springframework.integration.handler.AbstractMessageHandler
getOrder, handleMessage, setOrder, setShouldTrack
 
Methods inherited from class org.springframework.integration.context.IntegrationObjectSupport
afterPropertiesSet, getBeanFactory, getComponentName, getConversionService, getTaskScheduler, setBeanFactory, setBeanName, setComponentName, setConversionService, setTaskScheduler, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.springframework.integration.context.NamedComponent
getComponentName
 

Constructor Detail

MessageFilter

public MessageFilter(MessageSelector selector)
Create a MessageFilter that will delegate to the given MessageSelector.

Method Detail

setThrowExceptionOnRejection

public void setThrowExceptionOnRejection(boolean throwExceptionOnRejection)
Specify whether this filter should throw a MessageRejectedException when its selector does not accept a Message. The default value is false meaning that rejected Messages will be quietly dropped or sent to the discard channel if available. Typically this value would not be true when a discard channel is provided, but if so, it will still apply (in such a case, the Message will be sent to the discard channel, and then the exception will be thrown).

See Also:
setDiscardChannel(MessageChannel)

setDiscardChannel

public void setDiscardChannel(MessageChannel discardChannel)
Specify a channel where rejected Messages should be sent. If the discard channel is null (the default), rejected Messages will be dropped. However, the 'throwExceptionOnRejection' flag determines whether rejected Messages trigger an exception. That value is evaluated regardless of the presence of a discard channel.

See Also:
setThrowExceptionOnRejection(boolean)

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

public final void onInit()
Description copied from class: IntegrationObjectSupport
Subclasses may implement this for initialization logic.

Overrides:
onInit in class AbstractReplyProducingMessageHandler

handleRequestMessage

protected java.lang.Object handleRequestMessage(Message<?> message)
Description copied from class: AbstractReplyProducingMessageHandler
Subclasses must implement this method to handle the request Message. The return value may be a Message, a MessageBuilder, or any plain Object. The base class will handle the final creation of a reply Message from any of those starting points. If the return value is null, the Message flow will end here.

Specified by:
handleRequestMessage in class AbstractReplyProducingMessageHandler

shouldCopyRequestHeaders

protected boolean shouldCopyRequestHeaders()
Description copied from class: AbstractReplyProducingMessageHandler
Subclasses may override this. True by default.

Overrides:
shouldCopyRequestHeaders in class AbstractReplyProducingMessageHandler