public abstract class AbstractMessageProducingHandler extends AbstractMessageHandler implements MessageProducer
AbstractMessageHandler implementation for the MessageProducer.| Modifier and Type | Field and Description |
|---|---|
protected MessagingTemplate |
messagingTemplate |
EXPRESSION_PARSER, loggerHIGHEST_PRECEDENCE, LOWEST_PRECEDENCE| Constructor and Description |
|---|
AbstractMessageProducingHandler() |
| Modifier and Type | Method and Description |
|---|---|
protected Message<?> |
createOutputMessage(Object output,
MessageHeaders requestHeaders) |
MessageChannel |
getOutputChannel()
Return the the output channel.
|
protected boolean |
isAsync() |
protected void |
onInit()
Subclasses may implement this for initialization logic.
|
protected void |
produceOutput(Object reply,
Message<?> requestMessage) |
protected Object |
resolveErrorChannel(MessageHeaders requestHeaders) |
protected void |
sendErrorMessage(Message<?> requestMessage,
Throwable ex) |
protected void |
sendOutput(Object output,
Object replyChannel,
boolean useArgChannel)
Send an output Message.
|
protected void |
sendOutputs(Object result,
Message<?> requestMessage) |
void |
setAsync(boolean async)
Allow async replies.
|
void |
setOutputChannel(MessageChannel outputChannel)
Specify the MessageChannel to which produced Messages should be sent.
|
void |
setOutputChannelName(String outputChannelName) |
void |
setSendTimeout(long sendTimeout)
Set the timeout for sending reply Messages.
|
protected boolean |
shouldCopyRequestHeaders()
Subclasses may override this.
|
protected boolean |
shouldSplitOutput(Iterable<?> reply) |
configureMetrics, getActiveCount, getActiveCountLong, getComponentType, getDuration, getErrorCount, getErrorCountLong, getHandleCount, getHandleCountLong, getManagedName, getManagedType, getMaxDuration, getMeanDuration, getMinDuration, getOrder, getStandardDeviationDuration, handleMessage, handleMessageInternal, isCountsEnabled, isLoggingEnabled, isStatsEnabled, reset, setCountsEnabled, setLoggingEnabled, setManagedName, setManagedType, setOrder, setShouldTrack, setStatsEnabledafterPropertiesSet, extractTypeIfPossible, getApplicationContext, getApplicationContextId, getBeanFactory, getChannelResolver, getComponentName, getConversionService, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setConversionService, setMessageBuilderFactory, setTaskScheduler, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetComponentNameprotected final MessagingTemplate messagingTemplate
public void setSendTimeout(long sendTimeout)
sendTimeout - The send timeout.public void setOutputChannel(MessageChannel outputChannel)
MessageProducersetOutputChannel in interface MessageProduceroutputChannel - The output channel.public void setOutputChannelName(String outputChannelName)
public final void setAsync(boolean async)
ListenableFuture send
the output when it is satisfied rather than sending the future as the result.
Only subclasses that support this feature should set it.async - true to allow.protected boolean isAsync()
setAsync(boolean)protected void onInit()
throws Exception
IntegrationObjectSupportonInit in class AbstractMessageHandlerException - Any exception.public MessageChannel getOutputChannel()
MessageProducergetOutputChannel in interface MessageProducerprotected boolean shouldSplitOutput(Iterable<?> reply)
protected Message<?> createOutputMessage(Object output, MessageHeaders requestHeaders)
protected void sendOutput(Object output, 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 Object resolveErrorChannel(MessageHeaders requestHeaders)