public abstract class AbstractExecutorChannel extends AbstractSubscribableChannel implements ExecutorChannelInterceptorAware
AbstractSubscribableChannel
base implementation for those inheritors
which logic may be based on the Executor
.
Utilizes common operations for the AbstractDispatcher
.
Implements the ExecutorChannelInterceptor
s logic when the message handling
is handed to the Executor.execute(Runnable)
.
ExecutorChannel
,
PublishSubscribeChannel
Modifier and Type | Class and Description |
---|---|
protected class |
AbstractExecutorChannel.MessageHandlingTask |
AbstractMessageChannel.ChannelInterceptorList
Modifier and Type | Field and Description |
---|---|
protected AbstractDispatcher |
dispatcher |
protected Executor |
executor |
protected int |
executorInterceptorsSize |
protected Integer |
maxSubscribers |
interceptors
logger
INDEFINITE_TIMEOUT
Constructor and Description |
---|
AbstractExecutorChannel(Executor executor) |
Modifier and Type | Method and Description |
---|---|
void |
addInterceptor(ChannelInterceptor interceptor)
Add a channel interceptor to the end of the list.
|
void |
addInterceptor(int index,
ChannelInterceptor interceptor)
Add a channel interceptor to the specified index of the list.
|
boolean |
hasExecutorInterceptors() |
boolean |
removeInterceptor(ChannelInterceptor interceptor)
Remove the provided
ChannelInterceptor from the target implementation. |
ChannelInterceptor |
removeInterceptor(int index)
Remove a
ChannelInterceptor from the target implementation for specific index. |
void |
setInterceptors(List<ChannelInterceptor> interceptors)
Set the list of channel interceptors.
|
void |
setMaxSubscribers(int maxSubscribers)
Specify the maximum number of subscribers supported by the
channel's dispatcher.
|
doSend, getDispatcher, subscribe, unsubscribe
configureMetrics, getChannelInterceptors, getComponentType, getErrorRate, getFullChannelName, getInterceptors, getMaxSendDuration, getMeanErrorRate, getMeanErrorRatio, getMeanSendDuration, getMeanSendRate, getMetrics, getMinSendDuration, getSendCount, getSendCountLong, getSendDuration, getSendErrorCount, getSendErrorCountLong, getSendRate, getStandardDeviationSendDuration, getTimeSinceLastSend, isCountsEnabled, isLoggingEnabled, isStatsEnabled, onInit, reset, send, send, setConversionService, setCountsEnabled, setDatatypes, setLoggingEnabled, setMessageConverter, setShouldTrack, setStatsEnabled
afterPropertiesSet, extractTypeIfPossible, getApplicationContext, getApplicationContextId, getBeanFactory, getChannelResolver, getComponentName, getConversionService, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setMessageBuilderFactory, setTaskScheduler, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getChannelInterceptors
send, send
getComponentName
protected volatile Executor executor
protected volatile AbstractDispatcher dispatcher
protected volatile Integer maxSubscribers
protected volatile int executorInterceptorsSize
public AbstractExecutorChannel(Executor executor)
public void setMaxSubscribers(int maxSubscribers)
maxSubscribers
- The maximum number of subscribers allowed.public void setInterceptors(List<ChannelInterceptor> interceptors)
AbstractMessageChannel
setInterceptors
in interface ChannelInterceptorAware
setInterceptors
in class AbstractMessageChannel
interceptors
- The list of interceptors.public void addInterceptor(ChannelInterceptor interceptor)
AbstractMessageChannel
addInterceptor
in interface ChannelInterceptorAware
addInterceptor
in class AbstractMessageChannel
interceptor
- The interceptor.public void addInterceptor(int index, ChannelInterceptor interceptor)
AbstractMessageChannel
addInterceptor
in interface ChannelInterceptorAware
addInterceptor
in class AbstractMessageChannel
index
- The index to add interceptor.interceptor
- The interceptor.public boolean removeInterceptor(ChannelInterceptor interceptor)
ChannelInterceptorAware
ChannelInterceptor
from the target implementation.removeInterceptor
in interface ChannelInterceptorAware
removeInterceptor
in class AbstractMessageChannel
interceptor
- ChannelInterceptor
to remove.boolean
if ChannelInterceptor
has been removed.public ChannelInterceptor removeInterceptor(int index)
ChannelInterceptorAware
ChannelInterceptor
from the target implementation for specific index.removeInterceptor
in interface ChannelInterceptorAware
removeInterceptor
in class AbstractMessageChannel
index
- the index for the ChannelInterceptor
to remove.boolean
if the ChannelInterceptor
has been removed.public boolean hasExecutorInterceptors()
hasExecutorInterceptors
in interface ExecutorChannelInterceptorAware