org.springframework.integration.dispatcher
Class UnicastingDispatcher
java.lang.Object
org.springframework.integration.dispatcher.AbstractDispatcher
org.springframework.integration.dispatcher.UnicastingDispatcher
- All Implemented Interfaces:
- MessageDispatcher
public class UnicastingDispatcher
- extends AbstractDispatcher
Implementation of MessageDispatcher
that will attempt to send a
Message
to at most one of its handlers. The handlers will be tried
as determined by the LoadBalancingStrategy
if one is configured. As
soon as one of the handlers accepts the Message, the dispatcher will
return true
and ignore the rest of its handlers.
If the dispatcher has no handlers, a MessageDeliveryException
will be
thrown. If all handlers throw Exceptions, the dispatcher will throw an
AggregateMessageDeliveryException
.
A load-balancing strategy may be provided to this class to control the order in
which the handlers will be tried.
- Since:
- 1.0.2
- Author:
- Iwein Fuld, Mark Fisher, Gary Russell, Oleg Zhurakousky
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
UnicastingDispatcher
public UnicastingDispatcher()
UnicastingDispatcher
public UnicastingDispatcher(java.util.concurrent.Executor executor)
setFailover
public void setFailover(boolean failover)
- Specify whether this dispatcher should failover when a single
MessageHandler
throws an Exception. The default value is
true
.
setLoadBalancingStrategy
public void setLoadBalancingStrategy(LoadBalancingStrategy loadBalancingStrategy)
- Provide a
LoadBalancingStrategy
for this dispatcher.
dispatch
public final boolean dispatch(Message<?> message)