@ManagedResource public class WireTap extends Object implements ChannelInterceptor, Lifecycle, VetoCapableInterceptor, BeanFactoryAware
ChannelInterceptor that publishes a copy of the intercepted message
to a secondary target while still sending the original message to the main channel.| Constructor and Description |
|---|
WireTap(MessageChannel channel)
Create a new wire tap with no
MessageSelector. |
WireTap(MessageChannel channel,
MessageSelector selector)
Create a new wire tap with the provided
MessageSelector. |
WireTap(String channelName)
Create a new wire tap based on the MessageChannel name and
with no
MessageSelector. |
WireTap(String channelName,
MessageSelector selector)
Create a new wire tap with the provided
MessageSelector. |
| Modifier and Type | Method and Description |
|---|---|
boolean |
isRunning()
Check whether the wire tap is currently running.
|
Message<?> |
preSend(Message<?> message,
MessageChannel channel)
Intercept the Message and, if accepted by the
MessageSelector,
send it to the secondary target. |
void |
setBeanFactory(BeanFactory beanFactory) |
void |
setTimeout(long timeout)
Specify the timeout value for sending to the intercepting target.
|
boolean |
shouldIntercept(String beanName,
InterceptableChannel channel) |
void |
start()
Restart the wire tap if it has been stopped.
|
void |
stop()
Stop the wire tap.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitafterReceiveCompletion, afterSendCompletion, postReceive, postSend, preReceivepublic WireTap(MessageChannel channel)
MessageSelector.channel - the MessageChannel to which intercepted messages will be sentpublic WireTap(MessageChannel channel, MessageSelector selector)
MessageSelector.channel - the channel to which intercepted messages will be sentselector - the selector that must accept a message for it to be
sent to the intercepting channelpublic WireTap(String channelName)
MessageSelector.channelName - the name of the target MessageChannel
to which intercepted messages will be sentpublic WireTap(String channelName, MessageSelector selector)
MessageSelector.channelName - the name of the target MessageChannel
to which intercepted messages will be sent.selector - the selector that must accept a message for it to be
sent to the intercepting channelpublic void setTimeout(long timeout)
timeout - the timeout in millisecondspublic void setBeanFactory(BeanFactory beanFactory) throws BeansException
setBeanFactory in interface BeanFactoryAwareBeansException@ManagedAttribute public boolean isRunning()
@ManagedOperation public void start()
@ManagedOperation public void stop()
start().public Message<?> preSend(Message<?> message, MessageChannel channel)
MessageSelector,
send it to the secondary target. If this wire tap's MessageSelector is
null, it will accept all messages.preSend in interface ChannelInterceptorpublic boolean shouldIntercept(String beanName, InterceptableChannel channel)
shouldIntercept in interface VetoCapableInterceptorbeanName - The channel name.channel - The channel that is about to be intercepted.