org.springframework.integration.jms
Class ChannelPublishingJmsMessageListener

java.lang.Object
  extended by org.springframework.integration.jms.ChannelPublishingJmsMessageListener
All Implemented Interfaces:
InitializingBean, NamedComponent, TrackableComponent, SessionAwareMessageListener<javax.jms.Message>

public class ChannelPublishingJmsMessageListener
extends java.lang.Object
implements SessionAwareMessageListener<javax.jms.Message>, InitializingBean, TrackableComponent

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
protected  org.apache.commons.logging.Log logger
           
 
Constructor Summary
ChannelPublishingJmsMessageListener()
           
 
Method Summary
 void afterPropertiesSet()
           
 java.lang.String getComponentName()
           
 java.lang.String getComponentType()
           
 void onMessage(javax.jms.Message jmsMessage, javax.jms.Session session)
           
 void setComponentName(java.lang.String componentName)
           
 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.
 void setDefaultReplyDestination(javax.jms.Destination defaultReplyDestination)
          Set the default reply destination to send reply messages to.
 void setDefaultReplyQueueName(java.lang.String destinationName)
          Set the name of the default reply queue to send reply messages to.
 void setDefaultReplyTopicName(java.lang.String destinationName)
          Set the name of the default reply topic to send reply messages to.
 void setDestinationResolver(DestinationResolver destinationResolver)
          Set the DestinationResolver that should be used to resolve reply destination names for this listener.
 void setErrorChannel(MessageChannel errorChannel)
           
 void setExpectReply(boolean expectReply)
          Specify whether a JMS reply Message is expected.
 void setExplicitQosEnabledForReplies(boolean explicitQosEnabledForReplies)
          Specify whether explicit QoS should be enabled for replies (for timeToLive, priority, and deliveryMode settings).
 void setExtractReplyPayload(boolean extractReplyPayload)
          Specify whether the Spring Integration reply Message's payload should be extracted prior to converting into a JMS Message.
 void setExtractRequestPayload(boolean extractRequestPayload)
          Specify whether the JMS request Message's body should be extracted prior to converting into a Spring Integration Message.
 void setHeaderMapper(JmsHeaderMapper headerMapper)
          Provide a JmsHeaderMapper implementation to use when converting between JMS Messages and Spring Integration Messages.
 void setMessageConverter(MessageConverter messageConverter)
          Provide a MessageConverter implementation to use when converting between JMS Messages and Spring Integration Messages.
 void setReplyChannel(MessageChannel replyChannel)
           
 void setReplyDeliveryPersistent(boolean replyDeliveryPersistent)
          Specify the delivery mode for JMS reply Messages.
 void setReplyPriority(int replyPriority)
          Specify the priority value for JMS reply Messages.
 void setReplyTimeout(long replyTimeout)
           
 void setReplyTimeToLive(long replyTimeToLive)
          Specify the time-to-live property for JMS reply Messages.
 void setRequestChannel(MessageChannel requestChannel)
           
 void setRequestTimeout(long requestTimeout)
           
 void setShouldTrack(boolean shouldTrack)
           
protected  void start()
           
protected  void stop()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

protected final org.apache.commons.logging.Log logger
Constructor Detail

ChannelPublishingJmsMessageListener

public ChannelPublishingJmsMessageListener()
Method Detail

setExpectReply

public void setExpectReply(boolean expectReply)
Specify whether a JMS reply Message is expected.


setComponentName

public void setComponentName(java.lang.String componentName)

setRequestChannel

public void setRequestChannel(MessageChannel requestChannel)

setReplyChannel

public void setReplyChannel(MessageChannel replyChannel)

setErrorChannel

public void setErrorChannel(MessageChannel errorChannel)

setRequestTimeout

public void setRequestTimeout(long requestTimeout)

setReplyTimeout

public void setReplyTimeout(long replyTimeout)

setShouldTrack

public void setShouldTrack(boolean shouldTrack)
Specified by:
setShouldTrack in interface TrackableComponent

getComponentName

public java.lang.String getComponentName()
Specified by:
getComponentName in interface NamedComponent

getComponentType

public java.lang.String getComponentType()
Specified by:
getComponentType in interface 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.


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".

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".

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.

See Also:
MessageProducer.setTimeToLive(long)

setReplyPriority

public void setReplyPriority(int replyPriority)
Specify the priority value for JMS reply Messages.

See Also:
MessageProducer.setPriority(int)

setReplyDeliveryPersistent

public void setReplyDeliveryPersistent(boolean replyDeliveryPersistent)
Specify the delivery mode for JMS reply Messages.

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.


setExplicitQosEnabledForReplies

public void setExplicitQosEnabledForReplies(boolean explicitQosEnabledForReplies)
Specify whether explicit QoS should be enabled for replies (for timeToLive, priority, and deliveryMode settings).


setDestinationResolver

public void setDestinationResolver(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.

See Also:
DynamicDestinationResolver, JndiDestinationResolver

setMessageConverter

public void setMessageConverter(MessageConverter messageConverter)
Provide a MessageConverter implementation to use when converting between JMS Messages and Spring Integration Messages. If none is provided, a SimpleMessageConverter will be used.

Parameters:
messageConverter -

setHeaderMapper

public void setHeaderMapper(JmsHeaderMapper headerMapper)
Provide a JmsHeaderMapper implementation to use when converting between JMS Messages and Spring Integration Messages. If none is provided, a DefaultJmsHeaderMapper will be used.


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 to true by default. To send the JMS Message itself as a Spring Integration Message payload, set this to false.


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 to true by default. To send the Spring Integration Message itself as the JMS Message's body, set this to false.


onMessage

public void onMessage(javax.jms.Message jmsMessage,
                      javax.jms.Session session)
               throws javax.jms.JMSException
Specified by:
onMessage in interface SessionAwareMessageListener<javax.jms.Message>
Throws:
javax.jms.JMSException

afterPropertiesSet

public void afterPropertiesSet()
Specified by:
afterPropertiesSet in interface InitializingBean

start

protected void start()

stop

protected void stop()