public class JmsOutboundGateway extends AbstractReplyProducingMessageHandler implements SmartLifecycle, MessageListener
| Modifier and Type | Class and Description |
|---|---|
static class |
JmsOutboundGateway.ReplyContainerProperties |
AbstractReplyProducingMessageHandler.RequestHandlerloggerHIGHEST_PRECEDENCE, LOWEST_PRECEDENCE| Constructor and Description |
|---|
JmsOutboundGateway() |
| Modifier and Type | Method and Description |
|---|---|
protected Connection |
createConnection()
Create a new JMS Connection for this JMS gateway.
|
protected Session |
createSession(Connection connection)
Create a new JMS Session using the provided Connection.
|
protected void |
doInit() |
String |
getComponentType()
Subclasses may implement this method to provide component type information.
|
int |
getPhase() |
protected Object |
handleRequestMessage(Message<?> message)
Subclasses must implement this method to handle the request Message.
|
boolean |
isAutoStartup() |
boolean |
isRunning() |
void |
onMessage(Message message) |
void |
setAutoStartup(boolean autoStartup) |
void |
setConnectionFactory(ConnectionFactory connectionFactory)
Set the JMS ConnectionFactory that this gateway should use.
|
void |
setCorrelationKey(String correlationKey)
Provide the name of a JMS property that should hold a generated UUID that
the receiver of the JMS Message would expect to represent the CorrelationID.
|
void |
setDeliveryPersistent(boolean deliveryPersistent)
Set whether message delivery should be persistent or non-persistent,
specified as a boolean value ("true" or "false").
|
void |
setDestinationResolver(DestinationResolver destinationResolver)
Provide the
DestinationResolver to use when resolving either a
'requestDestinationName' or 'replyDestinationName' value. |
void |
setExplicitQosEnabled(boolean explicitQosEnabled)
Specify whether explicit QoS settings are enabled
(deliveryMode, priority, and timeToLive).
|
void |
setExtractReplyPayload(boolean extractReplyPayload)
This property describes what to do with a JMS reply Message.
|
void |
setExtractRequestPayload(boolean extractRequestPayload)
This property describes how a JMS Message should be generated from the
Spring Integration Message.
|
void |
setHeaderMapper(JmsHeaderMapper headerMapper)
Provide a
JmsHeaderMapper implementation for mapping the
Spring Integration Message Headers to/from JMS Message properties. |
void |
setMessageConverter(MessageConverter messageConverter)
Provide a
MessageConverter strategy to use for converting the
Spring Integration request Message into a JMS Message and for converting
the JMS reply Messages back into Spring Integration Messages. |
void |
setPriority(int priority)
Specify the JMS priority to use when sending request Messages.
|
void |
setReceiveTimeout(long receiveTimeout)
Set the max timeout value for the MessageConsumer's receive call when
waiting for a reply.
|
void |
setReplyChannel(MessageChannel replyChannel)
Specify the Spring Integration reply channel.
|
void |
setReplyContainerProperties(JmsOutboundGateway.ReplyContainerProperties replyContainerProperties) |
void |
setReplyDestination(Destination replyDestination)
Set the JMS Destination from which reply Messages should be received.
|
void |
setReplyDestinationExpression(Expression replyDestinationExpression)
Set the SpEL Expression to be used for determining the reply Destination instance
or reply destination name.
|
void |
setReplyDestinationName(String replyDestinationName)
Set the name of the JMS Destination from which reply Messages should be received.
|
void |
setReplyPubSubDomain(boolean replyPubSubDomain)
Specify whether the reply destination is a Topic.
|
void |
setRequestDestination(Destination requestDestination)
Set the JMS Destination to which request Messages should be sent.
|
void |
setRequestDestinationExpression(Expression requestDestinationExpression)
Set the SpEL Expression to be used for determining the request Destination instance
or request destination name.
|
void |
setRequestDestinationName(String requestDestinationName)
Set the name of the JMS Destination to which request Messages should be sent.
|
void |
setRequestPubSubDomain(boolean requestPubSubDomain)
Specify whether the request destination is a Topic.
|
void |
setRequiresReply(boolean requiresReply)
Flag whether a reply is required.
|
void |
setTimeToLive(long timeToLive)
Specify the timeToLive for each sent Message.
|
void |
setUseReplyContainer(boolean useReplyContainer) |
void |
start() |
void |
stop() |
void |
stop(Runnable callback) |
doInvokeAdvisedRequestHandler, getMessagingTemplate, handleMessageInternal, hasAdviceChain, onInit, setAdviceChain, setBeanClassLoader, setChannelResolver, setOutputChannel, setOutputChannelName, setSendTimeout, shouldCopyRequestHeadersgetOrder, handleMessage, setOrder, setShouldTrackafterPropertiesSet, getApplicationContextId, getBeanFactory, getComponentName, getConversionService, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, setApplicationContext, setBeanFactory, setBeanName, setComponentName, setConversionService, setMessageBuilderFactory, setTaskScheduler, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetComponentNamepublic void setDeliveryPersistent(boolean deliveryPersistent)
The default is "true", i.e. delivery mode "PERSISTENT".
deliveryPersistent - true for a persistent delivery.DeliveryMode.PERSISTENT,
DeliveryMode.NON_PERSISTENTpublic void setConnectionFactory(ConnectionFactory connectionFactory)
connectionFactory - The connection factory.public void setRequestDestination(Destination requestDestination)
requestDestination - The request destination.public void setRequestDestinationName(String requestDestinationName)
requestDestinationName - The request destination name.public void setRequestDestinationExpression(Expression requestDestinationExpression)
requestDestinationExpression - The request destination expression.public void setReplyDestination(Destination replyDestination)
TemporaryQueue per invocation.replyDestination - The reply destination.public void setReplyDestinationName(String replyDestinationName)
TemporaryQueue per invocation.replyDestinationName - The reply destination name.public void setReplyDestinationExpression(Expression replyDestinationExpression)
replyDestinationExpression - The reply destination expression.public void setDestinationResolver(DestinationResolver destinationResolver)
DestinationResolver to use when resolving either a
'requestDestinationName' or 'replyDestinationName' value. The default
is an instance of DynamicDestinationResolver.destinationResolver - The destination resolver.public void setRequestPubSubDomain(boolean requestPubSubDomain)
requestPubSubDomain - true if the request destination is a Topic.public void setReplyPubSubDomain(boolean replyPubSubDomain)
replyPubSubDomain - true if the reply destination is a Topic.public void setReceiveTimeout(long receiveTimeout)
receiveTimeout - The receive timeout.public void setPriority(int priority)
priority - The priority.public void setTimeToLive(long timeToLive)
timeToLive - The time to live.public void setExplicitQosEnabled(boolean explicitQosEnabled)
explicitQosEnabled - true to enable explicit QoS.public void setCorrelationKey(String correlationKey)
correlationKey - The correlation key.public void setMessageConverter(MessageConverter messageConverter)
MessageConverter strategy to use for converting the
Spring Integration request Message into a JMS Message and for converting
the JMS reply Messages back into Spring Integration Messages.
The default is SimpleMessageConverter.
messageConverter - The message converter.public void setHeaderMapper(JmsHeaderMapper headerMapper)
JmsHeaderMapper implementation for mapping the
Spring Integration Message Headers to/from JMS Message properties.headerMapper - The header mapper.public void setExtractRequestPayload(boolean extractRequestPayload)
MessageConverter:
the entire Spring Integration Message or only its payload.
extractRequestPayload - true to extract the request payload.public void setExtractReplyPayload(boolean extractReplyPayload)
extractReplyPayload - true to extract the reply payload.public void setReplyChannel(MessageChannel replyChannel)
replyChannel - The reply channel.public void setReplyContainerProperties(JmsOutboundGateway.ReplyContainerProperties replyContainerProperties)
replyContainerProperties - the replyContainerproperties to setpublic String getComponentType()
IntegrationObjectSupportgetComponentType in interface NamedComponentgetComponentType in class AbstractMessageHandlerpublic void setUseReplyContainer(boolean useReplyContainer)
useReplyContainer - the useReplyContainer to setpublic void setRequiresReply(boolean requiresReply)
AbstractReplyProducingMessageHandlersetRequiresReply in class AbstractReplyProducingMessageHandlerrequiresReply - true if a reply is required.public boolean isAutoStartup()
isAutoStartup in interface SmartLifecyclepublic void setAutoStartup(boolean autoStartup)
protected void doInit()
doInit in class AbstractReplyProducingMessageHandlerpublic void stop(Runnable callback)
stop in interface SmartLifecycleprotected Object handleRequestMessage(Message<?> message)
AbstractReplyProducingMessageHandlerhandleRequestMessage in class AbstractReplyProducingMessageHandlermessage - The request message.null.protected Connection createConnection() throws JMSException
JMSException - Any JMSException.protected Session createSession(Connection connection) throws JMSException
connection - The connection.JMSException - Any JMSException.public void onMessage(Message message)
onMessage in interface MessageListener