public class MessageFilter extends AbstractReplyProducingPostProcessingMessageHandler
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.AbstractReplyProducingMessageHandler.RequestHandler
logger
Constructor and Description |
---|
MessageFilter(MessageSelector selector)
Create a MessageFilter that will delegate to the given
MessageSelector . |
Modifier and Type | Method and Description |
---|---|
protected java.lang.Object |
doHandleRequestMessage(Message<?> message) |
protected void |
doInit() |
java.lang.String |
getComponentType()
Subclasses may implement this method to provide component type information.
|
java.lang.Object |
postProcess(Message<?> message,
java.lang.Object result)
Take some further action on the result and/or message.
|
void |
setDiscardChannel(MessageChannel discardChannel)
Specify a channel where rejected Messages should be sent.
|
void |
setDiscardWithinAdvice(boolean discardWithinAdvice)
Set to 'true' if you wish the discard processing to occur within any
request handler advice applied to this filter.
|
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.
|
doInvokeAdvisedRequestHandler, handleRequestMessage, setPostProcessWithinAdvice
getMessagingTemplate, handleMessageInternal, hasAdviceChain, onInit, setAdviceChain, setBeanClassLoader, setChannelResolver, setOutputChannel, setRequiresReply, setSendTimeout
getOrder, handleMessage, setOrder, setShouldTrack
afterPropertiesSet, getApplicationContextId, getBeanFactory, getComponentName, getConversionService, getIntegrationProperties, getIntegrationProperty, getTaskScheduler, setApplicationContext, setBeanFactory, setBeanName, setComponentName, setConversionService, setTaskScheduler, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getComponentName
public MessageFilter(MessageSelector selector)
MessageSelector
.public void setThrowExceptionOnRejection(boolean throwExceptionOnRejection)
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).setDiscardChannel(MessageChannel)
public void setDiscardChannel(MessageChannel discardChannel)
public void setDiscardWithinAdvice(boolean discardWithinAdvice)
public java.lang.String getComponentType()
IntegrationObjectSupport
getComponentType
in interface NamedComponent
getComponentType
in class AbstractMessageHandler
protected void doInit()
doInit
in class AbstractReplyProducingMessageHandler
protected java.lang.Object doHandleRequestMessage(Message<?> message)
doHandleRequestMessage
in class AbstractReplyProducingPostProcessingMessageHandler
public java.lang.Object postProcess(Message<?> message, java.lang.Object result)
PostProcessingMessageHandler
message
- The message.result
- The result from AbstractMessageHandler.handleMessageInternal(Message)
.protected boolean shouldCopyRequestHeaders()
AbstractReplyProducingMessageHandler
shouldCopyRequestHeaders
in class AbstractReplyProducingMessageHandler