public class PublishSubscribeChannel extends AbstractSubscribableChannel
AbstractMessageChannel.ChannelInterceptorList
logger
INDEFINITE_TIMEOUT
Constructor and Description |
---|
PublishSubscribeChannel()
Create a PublishSubscribeChannel that will invoke the handlers in the
message sender's thread.
|
PublishSubscribeChannel(Executor executor)
Create a PublishSubscribeChannel that will use an
Executor
to invoke the handlers. |
Modifier and Type | Method and Description |
---|---|
String |
getComponentType()
Subclasses may implement this method to provide component type information.
|
protected BroadcastingDispatcher |
getDispatcher() |
void |
onInit()
Callback method for initialization.
|
void |
setApplySequence(boolean applySequence)
Specify whether to apply the sequence number and size headers to the
messages prior to invoking the subscribed handlers.
|
void |
setErrorHandler(ErrorHandler errorHandler)
Provide an
ErrorHandler strategy for handling Exceptions that
occur downstream from this channel. |
void |
setIgnoreFailures(boolean ignoreFailures)
Specify whether failures for one or more of the handlers should be
ignored.
|
void |
setMaxSubscribers(int maxSubscribers)
Specify the maximum number of subscribers supported by the
channel's dispatcher.
|
void |
setMinSubscribers(int minSubscribers)
If at least this number of subscribers receive the message,
AbstractMessageChannel.send(org.springframework.messaging.Message)
will return true. |
doSend, subscribe, unsubscribe
addInterceptor, addInterceptor, getChannelInterceptors, getFullChannelName, getInterceptors, send, send, setConversionService, setDatatypes, setInterceptors, setMessageConverter, setShouldTrack
afterPropertiesSet, getApplicationContextId, getBeanFactory, getComponentName, getConversionService, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, setApplicationContext, setBeanFactory, setBeanName, setComponentName, setMessageBuilderFactory, setTaskScheduler, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
send, send
getComponentName
public PublishSubscribeChannel(Executor executor)
Executor
to invoke the handlers. If this is null, each invocation will occur in
the message sender's thread.executor
- The executor.public PublishSubscribeChannel()
public String getComponentType()
IntegrationObjectSupport
getComponentType
in interface NamedComponent
getComponentType
in class AbstractMessageChannel
public void setErrorHandler(ErrorHandler errorHandler)
ErrorHandler
strategy for handling Exceptions that
occur downstream from this channel. This will only be applied if
an Executor has been configured to dispatch the Messages for this
channel. Otherwise, Exceptions will be thrown directly within the
sending Thread. If no ErrorHandler is provided, and this channel does
delegate its dispatching to an Executor, the default strategy is
a MessagePublishingErrorHandler
that sends error messages to
the failed request Message's error channel header if available or to
the default 'errorChannel' otherwise.errorHandler
- The error handler.PublishSubscribeChannel(Executor)
public void setIgnoreFailures(boolean ignoreFailures)
false
meaning that an Exception
will be thrown whenever a handler fails. To override this and suppress
Exceptions, set the value to true
.ignoreFailures
- true if failures should be ignored.public void setApplySequence(boolean applySequence)
false
meaning that sequence headers will
not be applied. If planning to use an Aggregator downstream
with the default correlation and completion strategies, you should set
this flag to true
.applySequence
- true if the sequence information should be applied.public void setMaxSubscribers(int maxSubscribers)
maxSubscribers
- The maximum number of subscribers allowed.public void setMinSubscribers(int minSubscribers)
AbstractMessageChannel.send(org.springframework.messaging.Message)
will return true. Default: 0.minSubscribers
- The minimum number of subscribers.public final void onInit()
onInit
in class AbstractMessageChannel
protected BroadcastingDispatcher getDispatcher()
getDispatcher
in class AbstractSubscribableChannel