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.RequestHandlerlogger| 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(org.springframework.messaging.Message<?> message) |
protected void |
doInit() |
java.lang.String |
getComponentType()
Subclasses may implement this method to provide component type information.
|
java.lang.Object |
postProcess(org.springframework.messaging.Message<?> message,
java.lang.Object result)
Take some further action on the result and/or message.
|
void |
setDiscardChannel(org.springframework.messaging.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, setPostProcessWithinAdvicegetMessagingTemplate, handleMessageInternal, hasAdviceChain, onInit, setAdviceChain, setBeanClassLoader, setChannelResolver, setOutputChannel, setRequiresReply, setSendTimeoutgetOrder, handleMessage, setOrder, setShouldTrackafterPropertiesSet, getApplicationContextId, getBeanFactory, getComponentName, getConversionService, getIntegrationProperties, getIntegrationProperty, getTaskScheduler, setApplicationContext, setBeanFactory, setBeanName, setComponentName, setConversionService, setTaskScheduler, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetComponentNamepublic 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(org.springframework.messaging.MessageChannel discardChannel)
public void setDiscardWithinAdvice(boolean discardWithinAdvice)
public java.lang.String getComponentType()
IntegrationObjectSupportgetComponentType in interface NamedComponentgetComponentType in class AbstractMessageHandlerprotected void doInit()
doInit in class AbstractReplyProducingMessageHandlerprotected java.lang.Object doHandleRequestMessage(org.springframework.messaging.Message<?> message)
doHandleRequestMessage in class AbstractReplyProducingPostProcessingMessageHandlerpublic java.lang.Object postProcess(org.springframework.messaging.Message<?> message,
java.lang.Object result)
PostProcessingMessageHandlermessage - The message.result - The result from AbstractMessageHandler.handleMessageInternal(Message).protected boolean shouldCopyRequestHeaders()
AbstractReplyProducingMessageHandlershouldCopyRequestHeaders in class AbstractReplyProducingMessageHandler