Class ChannelPublishingJmsMessageListener
java.lang.Object
org.springframework.integration.jms.ChannelPublishingJmsMessageListener
- All Implemented Interfaces:
org.springframework.beans.factory.Aware,org.springframework.beans.factory.BeanFactoryAware,org.springframework.beans.factory.InitializingBean,org.springframework.integration.support.context.NamedComponent,org.springframework.integration.support.management.TrackableComponent,org.springframework.jms.listener.SessionAwareMessageListener<javax.jms.Message>
public class ChannelPublishingJmsMessageListener
extends java.lang.Object
implements org.springframework.jms.listener.SessionAwareMessageListener<javax.jms.Message>, org.springframework.beans.factory.InitializingBean, org.springframework.integration.support.management.TrackableComponent, org.springframework.beans.factory.BeanFactoryAware
JMS MessageListener that converts a JMS Message into a Spring Integration
Message and sends that Message to a channel. If the 'expectReply' value is
true, it will also wait for a Spring Integration reply Message
and convert that into a JMS reply.-
Field Summary
Fields Modifier and Type Field Description protected org.springframework.core.log.LogAccessorlogger -
Constructor Summary
Constructors Constructor Description ChannelPublishingJmsMessageListener() -
Method Summary
Modifier and Type Method Description voidafterPropertiesSet()java.lang.StringgetComponentName()java.lang.StringgetComponentType()voidonMessage(javax.jms.Message jmsMessage, javax.jms.Session session)voidsetBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory)voidsetComponentName(java.lang.String componentName)voidsetCorrelationKey(java.lang.String correlationKey)Provide the name of a JMS property that should be copied from the request Message to the reply Message.voidsetDefaultReplyDestination(javax.jms.Destination defaultReplyDestination)Set the default reply destination to send reply messages to.voidsetDefaultReplyQueueName(java.lang.String destinationName)Set the name of the default reply queue to send reply messages to.voidsetDefaultReplyTopicName(java.lang.String destinationName)Set the name of the default reply topic to send reply messages to.voidsetDestinationResolver(org.springframework.jms.support.destination.DestinationResolver destinationResolver)Set the DestinationResolver that should be used to resolve reply destination names for this listener.voidsetErrorChannel(org.springframework.messaging.MessageChannel errorChannel)voidsetErrorChannelName(java.lang.String errorChannelName)voidsetErrorOnTimeout(boolean errorOnTimeout)voidsetExpectReply(boolean expectReply)Specify whether a JMS reply Message is expected.voidsetExplicitQosEnabledForReplies(boolean explicitQosEnabledForReplies)Specify whether explicit QoS should be enabled for replies (for timeToLive, priority, and deliveryMode settings).voidsetExtractReplyPayload(boolean extractReplyPayload)Specify whether the Spring Integration reply Message's payload should be extracted prior to converting into a JMS Message.voidsetExtractRequestPayload(boolean extractRequestPayload)Specify whether the JMS request Message's body should be extracted prior to converting into a Spring Integration Message.voidsetHeaderMapper(JmsHeaderMapper headerMapper)Provide aJmsHeaderMapperimplementation to use when converting between JMS Messages and Spring Integration Messages.voidsetMessageConverter(org.springframework.jms.support.converter.MessageConverter messageConverter)Provide aMessageConverterimplementation to use when converting between JMS Messages and Spring Integration Messages.voidsetReplyChannel(org.springframework.messaging.MessageChannel replyChannel)voidsetReplyChannelName(java.lang.String replyChannelName)voidsetReplyDeliveryPersistent(boolean replyDeliveryPersistent)Specify the delivery mode for JMS reply Messages.voidsetReplyPriority(int replyPriority)Specify the priority value for JMS reply Messages.voidsetReplyTimeout(long replyTimeout)voidsetReplyTimeToLive(long replyTimeToLive)Specify the time-to-live property for JMS reply Messages.voidsetRequestChannel(org.springframework.messaging.MessageChannel requestChannel)voidsetRequestChannelName(java.lang.String requestChannelName)voidsetRequestTimeout(long requestTimeout)voidsetShouldTrack(boolean shouldTrack)protected voidstart()protected voidstop()
-
Field Details
-
logger
protected final org.springframework.core.log.LogAccessor logger
-
-
Constructor Details
-
ChannelPublishingJmsMessageListener
public ChannelPublishingJmsMessageListener()
-
-
Method Details
-
setExpectReply
public void setExpectReply(boolean expectReply)Specify whether a JMS reply Message is expected.- Parameters:
expectReply- true if a reply is expected.
-
setComponentName
public void setComponentName(java.lang.String componentName) -
setRequestChannel
public void setRequestChannel(org.springframework.messaging.MessageChannel requestChannel) -
setRequestChannelName
public void setRequestChannelName(java.lang.String requestChannelName) -
setReplyChannel
public void setReplyChannel(org.springframework.messaging.MessageChannel replyChannel) -
setReplyChannelName
public void setReplyChannelName(java.lang.String replyChannelName) -
setErrorChannel
public void setErrorChannel(org.springframework.messaging.MessageChannel errorChannel) -
setErrorChannelName
public void setErrorChannelName(java.lang.String errorChannelName) -
setRequestTimeout
public void setRequestTimeout(long requestTimeout) -
setReplyTimeout
public void setReplyTimeout(long replyTimeout) -
setErrorOnTimeout
public void setErrorOnTimeout(boolean errorOnTimeout) -
setShouldTrack
public void setShouldTrack(boolean shouldTrack)- Specified by:
setShouldTrackin interfaceorg.springframework.integration.support.management.TrackableComponent
-
getComponentName
public java.lang.String getComponentName()- Specified by:
getComponentNamein interfaceorg.springframework.integration.support.context.NamedComponent
-
getComponentType
public java.lang.String getComponentType()- Specified by:
getComponentTypein interfaceorg.springframework.integration.support.context.NamedComponent
-
setDefaultReplyDestination
public void setDefaultReplyDestination(javax.jms.Destination defaultReplyDestination)Set the default reply destination to send reply messages to. This will be applied in case of a request message that does not carry a "JMSReplyTo" field.- Parameters:
defaultReplyDestination- The default reply destination.
-
setDefaultReplyQueueName
public void setDefaultReplyQueueName(java.lang.String destinationName)Set the name of the default reply queue to send reply messages to. This will be applied in case of a request message that does not carry a "JMSReplyTo" field.Alternatively, specify a JMS Destination object as "defaultReplyDestination".
- Parameters:
destinationName- The default reply destination name.- See Also:
setDestinationResolver(org.springframework.jms.support.destination.DestinationResolver),setDefaultReplyDestination(javax.jms.Destination)
-
setDefaultReplyTopicName
public void setDefaultReplyTopicName(java.lang.String destinationName)Set the name of the default reply topic to send reply messages to. This will be applied in case of a request message that does not carry a "JMSReplyTo" field.Alternatively, specify a JMS Destination object as "defaultReplyDestination".
- Parameters:
destinationName- The default reply topic name.- See Also:
setDestinationResolver(org.springframework.jms.support.destination.DestinationResolver),setDefaultReplyDestination(javax.jms.Destination)
-
setReplyTimeToLive
public void setReplyTimeToLive(long replyTimeToLive)Specify the time-to-live property for JMS reply Messages.- Parameters:
replyTimeToLive- The reply time to live.- See Also:
MessageProducer.setTimeToLive(long)
-
setReplyPriority
public void setReplyPriority(int replyPriority)Specify the priority value for JMS reply Messages.- Parameters:
replyPriority- The reply priority.- See Also:
MessageProducer.setPriority(int)
-
setReplyDeliveryPersistent
public void setReplyDeliveryPersistent(boolean replyDeliveryPersistent)Specify the delivery mode for JMS reply Messages.- Parameters:
replyDeliveryPersistent- true for a persistent reply message.- See Also:
MessageProducer.setDeliveryMode(int)
-
setCorrelationKey
public void setCorrelationKey(java.lang.String correlationKey)Provide the name of a JMS property that should be copied from the request Message to the reply Message. If this value is NULL (the default) then the JMSMessageID from the request will be copied into the JMSCorrelationID of the reply unless there is already a value in the JMSCorrelationID property of the newly created reply Message in which case nothing will be copied. If the JMSCorrelationID of the request Message should be copied into the JMSCorrelationID of the reply Message instead, then this value should be set to "JMSCorrelationID". Any other value will be treated as a JMS String Property to be copied as-is from the request Message into the reply Message with the same property name.- Parameters:
correlationKey- The correlation key.
-
setExplicitQosEnabledForReplies
public void setExplicitQosEnabledForReplies(boolean explicitQosEnabledForReplies)Specify whether explicit QoS should be enabled for replies (for timeToLive, priority, and deliveryMode settings).- Parameters:
explicitQosEnabledForReplies- true to enable explicit QoS.
-
setDestinationResolver
public void setDestinationResolver(org.springframework.jms.support.destination.DestinationResolver destinationResolver)Set the DestinationResolver that should be used to resolve reply destination names for this listener.The default resolver is a DynamicDestinationResolver. Specify a JndiDestinationResolver for resolving destination names as JNDI locations.
- Parameters:
destinationResolver- The destination resolver.- See Also:
DynamicDestinationResolver,JndiDestinationResolver
-
setMessageConverter
public void setMessageConverter(org.springframework.jms.support.converter.MessageConverter messageConverter)Provide aMessageConverterimplementation to use when converting between JMS Messages and Spring Integration Messages. If none is provided, aSimpleMessageConverterwill be used.- Parameters:
messageConverter- The message converter.
-
setHeaderMapper
Provide aJmsHeaderMapperimplementation to use when converting between JMS Messages and Spring Integration Messages. If none is provided, aDefaultJmsHeaderMapperwill be used.- Parameters:
headerMapper- The header mapper.
-
setExtractRequestPayload
public void setExtractRequestPayload(boolean extractRequestPayload)Specify whether the JMS request Message's body should be extracted prior to converting into a Spring Integration Message. This value is set totrueby default. To send the JMS Message itself as a Spring Integration Message payload, set this tofalse.- Parameters:
extractRequestPayload- true if the request payload should be extracted.
-
setExtractReplyPayload
public void setExtractReplyPayload(boolean extractReplyPayload)Specify whether the Spring Integration reply Message's payload should be extracted prior to converting into a JMS Message. This value is set totrueby default. To send the Spring Integration Message itself as the JMS Message's body, set this tofalse.- Parameters:
extractReplyPayload- true if the reply payload should be extracted.
-
setBeanFactory
public void setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory) throws org.springframework.beans.BeansException- Specified by:
setBeanFactoryin interfaceorg.springframework.beans.factory.BeanFactoryAware- Throws:
org.springframework.beans.BeansException
-
onMessage
public void onMessage(javax.jms.Message jmsMessage, javax.jms.Session session) throws javax.jms.JMSException- Specified by:
onMessagein interfaceorg.springframework.jms.listener.SessionAwareMessageListener<javax.jms.Message>- Throws:
javax.jms.JMSException
-
afterPropertiesSet
public void afterPropertiesSet()- Specified by:
afterPropertiesSetin interfaceorg.springframework.beans.factory.InitializingBean
-
start
protected void start() -
stop
protected void stop()
-