public class JmsOutboundGateway extends AbstractReplyProducingMessageHandler implements SmartLifecycle, MessageListener
Modifier and Type | Class and Description |
---|---|
static class |
JmsOutboundGateway.ReplyContainerProperties |
AbstractReplyProducingMessageHandler.RequestHandler
logger
HIGHEST_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, shouldCopyRequestHeaders
getOrder, handleMessage, setOrder, setShouldTrack
afterPropertiesSet, getApplicationContextId, getBeanFactory, getComponentName, getConversionService, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, setApplicationContext, setBeanFactory, setBeanName, setComponentName, setConversionService, setMessageBuilderFactory, setTaskScheduler, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getComponentName
public void setDeliveryPersistent(boolean deliveryPersistent)
The default is "true", i.e. delivery mode "PERSISTENT".
deliveryPersistent
- true for a persistent delivery.DeliveryMode.PERSISTENT
,
DeliveryMode.NON_PERSISTENT
public 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()
IntegrationObjectSupport
getComponentType
in interface NamedComponent
getComponentType
in class AbstractMessageHandler
public void setUseReplyContainer(boolean useReplyContainer)
useReplyContainer
- the useReplyContainer to setpublic void setRequiresReply(boolean requiresReply)
AbstractReplyProducingMessageHandler
setRequiresReply
in class AbstractReplyProducingMessageHandler
requiresReply
- true if a reply is required.public boolean isAutoStartup()
isAutoStartup
in interface SmartLifecycle
public void setAutoStartup(boolean autoStartup)
protected void doInit()
doInit
in class AbstractReplyProducingMessageHandler
public void stop(Runnable callback)
stop
in interface SmartLifecycle
protected Object handleRequestMessage(Message<?> message)
AbstractReplyProducingMessageHandler
handleRequestMessage
in class AbstractReplyProducingMessageHandler
message
- 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