Spring Integration

org.springframework.integration.dispatcher
Class BroadcastingDispatcher

java.lang.Object
  extended by org.springframework.integration.dispatcher.AbstractDispatcher
      extended by org.springframework.integration.dispatcher.BroadcastingDispatcher
All Implemented Interfaces:
MessageDispatcher

public class BroadcastingDispatcher
extends AbstractDispatcher

A broadcasting dispatcher implementation. If the 'ignoreFailures' property is set to false (the default), it will fail fast such that any Exception thrown by a MessageHandler may prevent subsequent handlers from receiving the Message. However, when an Executor is provided, the Messages may be dispatched in separate Threads so that other handlers are invoked even when the 'ignoreFailures' flag is false.

If the 'ignoreFailures' flag is set to true on the other hand, it will make a best effort to send the message to each of its handlers. In other words, when 'ignoreFailures' is true, if it fails to send to any one handler, it will simply log a warn-level message but continue to send the Message to any other handlers.

Author:
Mark Fisher, Iwein Fuld, Gary Russell, Oleg Zhurakousky

Field Summary
 
Fields inherited from class org.springframework.integration.dispatcher.AbstractDispatcher
logger
 
Constructor Summary
BroadcastingDispatcher()
           
BroadcastingDispatcher(boolean requireSubscribers)
           
BroadcastingDispatcher(java.util.concurrent.Executor executor)
           
BroadcastingDispatcher(java.util.concurrent.Executor executor, boolean requireSubscribers)
           
 
Method Summary
 boolean dispatch(Message<?> message)
           
 void setApplySequence(boolean applySequence)
          Specify whether to apply sequence numbers to the messages prior to sending to the handlers.
 void setIgnoreFailures(boolean ignoreFailures)
          Specify whether failures for one or more of the handlers should be ignored.
 
Methods inherited from class org.springframework.integration.dispatcher.AbstractDispatcher
addHandler, getHandlerCount, getHandlers, removeHandler, setMaxSubscribers, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

BroadcastingDispatcher

public BroadcastingDispatcher()

BroadcastingDispatcher

public BroadcastingDispatcher(java.util.concurrent.Executor executor)

BroadcastingDispatcher

public BroadcastingDispatcher(boolean requireSubscribers)

BroadcastingDispatcher

public BroadcastingDispatcher(java.util.concurrent.Executor executor,
                              boolean requireSubscribers)
Method Detail

setIgnoreFailures

public void setIgnoreFailures(boolean ignoreFailures)
Specify whether failures for one or more of the handlers should be ignored. By default this is false meaning that an Exception will be thrown when a handler fails. To override this and suppress Exceptions, set the value to true.

Keep in mind that when using an Executor, even without ignoring the failures, other handlers may be invoked after one throws an Exception. Since the Executor is most likely using a different thread, this flag would only affect whether an error Message is sent to the error channel or not in the case that such an Executor has been configured.


setApplySequence

public void setApplySequence(boolean applySequence)
Specify whether to apply sequence numbers to the messages prior to sending to the handlers. By default, sequence numbers will not be applied


dispatch

public boolean dispatch(Message<?> message)

Spring Integration