Spring Integration

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, MessageHandler, MessageProducer, NamedComponent

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.

Author:
Mark Fisher, Oleg Zhurakousky

Field Summary
 
Fields inherited from class org.springframework.integration.handler.AbstractReplyProducingMessageHandler
DEFAULT_SEND_TIMEOUT
 
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
 String getComponentType()
          Subclasses may implement this method to provide component type information.
protected  Object handleRequestMessage(Message<?> message)
          Subclasses must implement this method to handle the request Message.
protected  void handleResult(Object replyMessage, MessageHeaders requestHeaders, MessageChannel replyChannel)
           
 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.
 
Methods inherited from class org.springframework.integration.handler.AbstractReplyProducingMessageHandler
getOutputChannel, handleMessageInternal, sendReplyMessage, setChannelResolver, setOutputChannel, setRequiresReply, setSendTimeout
 
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, setBeanFactory, setBeanName, setComponentName, setConversionService, setTaskScheduler, toString, writeMessageHistory
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

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 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 IntegrationObjectSupport

handleRequestMessage

protected 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

handleResult

protected void handleResult(Object replyMessage,
                            MessageHeaders requestHeaders,
                            MessageChannel replyChannel)
Overrides:
handleResult in class AbstractReplyProducingMessageHandler

Spring Integration

Copyright © 2010. All Rights Reserved.