public abstract class AbstractMessageProducingHandler extends AbstractMessageHandler implements MessageProducer, HeaderPropagationAware
AbstractMessageHandler
implementation for the MessageProducer
.IntegrationManagement.ManagementOverrides
Modifier and Type | Field and Description |
---|---|
protected MessagingTemplate |
messagingTemplate |
EXPRESSION_PARSER, logger
Constructor and Description |
---|
AbstractMessageProducingHandler() |
Modifier and Type | Method and Description |
---|---|
void |
addNotPropagatedHeaders(java.lang.String... headers)
Add headers that will NOT be copied from the inbound message if
shouldCopyRequestHeaders() is true, instead of overwriting the existing
set. |
protected org.springframework.messaging.Message<?> |
createOutputMessage(java.lang.Object output,
org.springframework.messaging.MessageHeaders requestHeaders) |
java.util.Collection<java.lang.String> |
getNotPropagatedHeaders()
Get the header names this handler doesn't propagate.
|
org.springframework.messaging.MessageChannel |
getOutputChannel()
Return the the output channel.
|
protected boolean |
isAsync() |
protected void |
onInit()
Subclasses may implement this for initialization logic.
|
protected void |
produceOutput(java.lang.Object reply,
org.springframework.messaging.Message<?> requestMessage) |
protected java.lang.Object |
resolveErrorChannel(org.springframework.messaging.MessageHeaders requestHeaders) |
protected void |
sendErrorMessage(org.springframework.messaging.Message<?> requestMessage,
java.lang.Throwable ex) |
protected void |
sendOutput(java.lang.Object output,
java.lang.Object replyChannel,
boolean useArgChannel)
Send an output Message.
|
protected void |
sendOutputs(java.lang.Object result,
org.springframework.messaging.Message<?> requestMessage) |
void |
setAsync(boolean async)
Allow async replies.
|
void |
setNotPropagatedHeaders(java.lang.String... headers)
Set headers that will NOT be copied from the inbound message if
shouldCopyRequestHeaaders is true. |
void |
setOutputChannel(org.springframework.messaging.MessageChannel outputChannel)
Specify the MessageChannel to which produced Messages should be sent.
|
void |
setOutputChannelName(java.lang.String outputChannelName) |
void |
setSendTimeout(long sendTimeout)
Set the timeout for sending reply Messages.
|
protected boolean |
shouldCopyRequestHeaders()
Subclasses may override this.
|
protected boolean |
shouldSplitOutput(java.lang.Iterable<?> reply) |
configureMetrics, getActiveCount, getActiveCountLong, getComponentType, getDuration, getErrorCount, getErrorCountLong, getHandleCount, getHandleCountLong, getManagedName, getManagedType, getMaxDuration, getMeanDuration, getMinDuration, getOrder, getOverrides, getStandardDeviationDuration, handleMessage, handleMessageInternal, isCountsEnabled, isLoggingEnabled, isStatsEnabled, onComplete, onError, onNext, onSubscribe, reset, setCountsEnabled, setLoggingEnabled, setManagedName, setManagedType, setOrder, setShouldTrack, setStatsEnabled
afterPropertiesSet, extractTypeIfPossible, getApplicationContext, getApplicationContextId, getBeanFactory, getChannelResolver, getComponentName, getConversionService, getExpression, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getComponentName
protected final MessagingTemplate messagingTemplate
public void setSendTimeout(long sendTimeout)
sendTimeout
- The send timeout.public void setOutputChannel(org.springframework.messaging.MessageChannel outputChannel)
MessageProducer
setOutputChannel
in interface MessageProducer
outputChannel
- The output channel.public void setOutputChannelName(java.lang.String outputChannelName)
public final void setAsync(boolean async)
ListenableFuture
, send
the output when it is satisfied rather than sending the future as the result.
Ignored for return types other than ListenableFuture
.async
- true to allow.protected boolean isAsync()
setAsync(boolean)
public void setNotPropagatedHeaders(java.lang.String... headers)
shouldCopyRequestHeaaders
is true.setNotPropagatedHeaders
in interface HeaderPropagationAware
headers
- the headers to not propagate from the inbound message.public java.util.Collection<java.lang.String> getNotPropagatedHeaders()
getNotPropagatedHeaders
in interface HeaderPropagationAware
Collection
of headers that will not be
copied from the inbound message if shouldCopyRequestHeaders()
is true.setNotPropagatedHeaders(String...)
public void addNotPropagatedHeaders(java.lang.String... headers)
shouldCopyRequestHeaders()
is true, instead of overwriting the existing
set.addNotPropagatedHeaders
in interface HeaderPropagationAware
headers
- the headers to not propagate from the inbound message.setNotPropagatedHeaders(String...)
protected void onInit() throws java.lang.Exception
IntegrationObjectSupport
onInit
in class AbstractMessageHandler
java.lang.Exception
- Any exception.public org.springframework.messaging.MessageChannel getOutputChannel()
MessageProducer
getOutputChannel
in interface MessageProducer
protected void sendOutputs(java.lang.Object result, org.springframework.messaging.Message<?> requestMessage)
protected boolean shouldSplitOutput(java.lang.Iterable<?> reply)
protected void produceOutput(java.lang.Object reply, org.springframework.messaging.Message<?> requestMessage)
protected org.springframework.messaging.Message<?> createOutputMessage(java.lang.Object output, org.springframework.messaging.MessageHeaders requestHeaders)
protected void sendOutput(java.lang.Object output, java.lang.Object replyChannel, boolean useArgChannel)
null
. In that case, the 'replyChannel' value must not also be
null
, and it must be an instance of either String or MessageChannel
.output
- the output object to sendreplyChannel
- the 'replyChannel' value from the original requestuseArgChannel
- - use the replyChannel argument (must not be null), not
the configured output channel.protected boolean shouldCopyRequestHeaders()
protected void sendErrorMessage(org.springframework.messaging.Message<?> requestMessage, java.lang.Throwable ex)
protected java.lang.Object resolveErrorChannel(org.springframework.messaging.MessageHeaders requestHeaders)