org.springframework.jms.core
Interface JmsOperations

All Known Implementing Classes:
JmsTemplate

public interface JmsOperations

Interface that specifies a basic set of JMS operations. Implemented by JmsTemplate. Not often used but a useful option to enhance testability, as it can easily be mocked or stubbed.

Provides JmsTemplate's send and receive methods that mirror various JMS API methods. See the JMS specification and javadocs for details on those methods.

Since:
1.1
Author:
Mark Pollack, Juergen Hoeller
See Also:
JmsTemplate, Destination, Session, MessageProducer, MessageConsumer

Method Summary
 void convertAndSend(Destination destination, Object message)
          Send the given object to the specified destination, converting the object to a JMS message with a configured MessageConverter.
 void convertAndSend(Destination destination, Object message, MessagePostProcessor postProcessor)
          Send the given object to the specified destination, converting the object to a JMS message with a configured MessageConverter.
 void convertAndSend(Object message)
          Send the given object to the default destination, converting the object to a JMS message with a configured MessageConverter.
 void convertAndSend(Object message, MessagePostProcessor postProcessor)
          Send the given object to the default destination, converting the object to a JMS message with a configured MessageConverter.
 void convertAndSend(String destinationName, Object message)
          Send the given object to the specified destination, converting the object to a JMS message with a configured MessageConverter.
 void convertAndSend(String destinationName, Object message, MessagePostProcessor postProcessor)
          Send the given object to the specified destination, converting the object to a JMS message with a configured MessageConverter.
 Object execute(ProducerCallback action)
          Send a message to a JMS destination.
 Object execute(SessionCallback action)
          Execute the action specified by the given action object within a JMS Session.
 Message receive()
          Receive a message synchronously from the default destination, but only wait up to a specified time for delivery.
 Message receive(Destination destination)
          Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery.
 Message receive(String destinationName)
          Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery.
 Object receiveAndConvert()
          Receive a message synchronously from the default destination, but only wait up to a specified time for delivery.
 Object receiveAndConvert(Destination destination)
          Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery.
 Object receiveAndConvert(String destinationName)
          Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery.
 Message receiveSelected(Destination destination, String messageSelector)
          Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery.
 Message receiveSelected(String messageSelector)
          Receive a message synchronously from the default destination, but only wait up to a specified time for delivery.
 Message receiveSelected(String destinationName, String messageSelector)
          Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery.
 Object receiveSelectedAndConvert(Destination destination, String messageSelector)
          Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery.
 Object receiveSelectedAndConvert(String messageSelector)
          Receive a message synchronously from the default destination, but only wait up to a specified time for delivery.
 Object receiveSelectedAndConvert(String destinationName, String messageSelector)
          Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery.
 void send(Destination destination, MessageCreator messageCreator)
          Send a message to the specified destination.
 void send(MessageCreator messageCreator)
          Send a message to the default destination.
 void send(String destinationName, MessageCreator messageCreator)
          Send a message to the specified destination.
 

Method Detail

execute

public Object execute(SessionCallback action)
               throws JmsException
Execute the action specified by the given action object within a JMS Session.

When used with a 1.0.2 provider, you may need to downcast to the appropriate domain implementation, either QueueSession or TopicSession in the action objects doInJms callback method.

Note: The value of isPubSubDomain affects the behavior of this method. If isPubSubDomain equals true, then a TopicSession is passed to the callback. If false, then a QueueSession is passed to the callback.

Parameters:
action - callback object that exposes the session
Returns:
the result object from working with the session
Throws:
JmsException - if there is any problem

execute

public Object execute(ProducerCallback action)
               throws JmsException
Send a message to a JMS destination. The callback gives access to the JMS session and MessageProducer in order to do more complex send operations.

Parameters:
action - callback object that exposes the session/producer pair
Returns:
the result object from working with the session
Throws:
JmsException - checked JMSException converted to unchecked

send

public void send(MessageCreator messageCreator)
          throws JmsException
Send a message to the default destination.

This will only work with a default destination specified!

Parameters:
messageCreator - callback to create a message.
Throws:
JmsException - checked JMSException converted to unchecked

send

public void send(Destination destination,
                 MessageCreator messageCreator)
          throws JmsException
Send a message to the specified destination. The MessageCreator callback creates the message given a Session.

Parameters:
destination - the destination to send this message to
messageCreator - callback to create a message.
Throws:
JmsException - checked JMSException converted to unchecked

send

public void send(String destinationName,
                 MessageCreator messageCreator)
          throws JmsException
Send a message to the specified destination. The MessageCreator callback creates the message given a Session.

Parameters:
destinationName - the name of the destination to send this message to (to be resolved to an actual destination by a DestinationResolver)
messageCreator - callback to create a message.
Throws:
JmsException - checked JMSException converted to unchecked

convertAndSend

public void convertAndSend(Object message)
                    throws JmsException
Send the given object to the default destination, converting the object to a JMS message with a configured MessageConverter.

This will only work with a default destination specified!

Parameters:
message - the object to convert to a message
Throws:
JmsException - converted checked JMSException to unchecked

convertAndSend

public void convertAndSend(Destination destination,
                           Object message)
                    throws JmsException
Send the given object to the specified destination, converting the object to a JMS message with a configured MessageConverter.

Parameters:
destination - the destination to send this message to
message - the object to convert to a message
Throws:
JmsException - converted checked JMSException to unchecked

convertAndSend

public void convertAndSend(String destinationName,
                           Object message)
                    throws JmsException
Send the given object to the specified destination, converting the object to a JMS message with a configured MessageConverter.

Parameters:
destinationName - the name of the destination to send this message to (to be resolved to an actual destination by a DestinationResolver)
message - the object to convert to a message
Throws:
JmsException - checked JMSException converted to unchecked

convertAndSend

public void convertAndSend(Object message,
                           MessagePostProcessor postProcessor)
                    throws JmsException
Send the given object to the default destination, converting the object to a JMS message with a configured MessageConverter. The MessagePostProcessor callback allows for modification of the message after conversion.

This will only work with a default destination specified!

Parameters:
message - the object to convert to a message
postProcessor - the callback to modify the message
Throws:
JmsException - checked JMSException converted to unchecked

convertAndSend

public void convertAndSend(Destination destination,
                           Object message,
                           MessagePostProcessor postProcessor)
                    throws JmsException
Send the given object to the specified destination, converting the object to a JMS message with a configured MessageConverter. The MessagePostProcessor callback allows for modification of the message after conversion.

Parameters:
destination - the destination to send this message to
message - the object to convert to a message
postProcessor - the callback to modify the message
Throws:
JmsException - checked JMSException converted to unchecked

convertAndSend

public void convertAndSend(String destinationName,
                           Object message,
                           MessagePostProcessor postProcessor)
                    throws JmsException
Send the given object to the specified destination, converting the object to a JMS message with a configured MessageConverter. The MessagePostProcessor callback allows for modification of the message after conversion.

Parameters:
destinationName - the name of the destination to send this message to (to be resolved to an actual destination by a DestinationResolver)
message - the object to convert to a message.
postProcessor - the callback to modify the message
Throws:
JmsException - checked JMSException converted to unchecked

receive

public Message receive()
                throws JmsException
Receive a message synchronously from the default destination, but only wait up to a specified time for delivery.

This method should be used carefully, since it will block the thread until the message becomes available or until the timeout value is exceeded.

This will only work with a default destination specified!

Returns:
the message produced for the consumer or null if the timeout expires.
Throws:
JmsException - checked JMSException converted to unchecked

receive

public Message receive(Destination destination)
                throws JmsException
Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery.

This method should be used carefully, since it will block the thread until the message becomes available or until the timeout value is exceeded.

Parameters:
destination - the destination to receive a message from
Returns:
the message produced for the consumer or null if the timeout expires.
Throws:
JmsException - checked JMSException converted to unchecked

receive

public Message receive(String destinationName)
                throws JmsException
Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery.

This method should be used carefully, since it will block the thread until the message becomes available or until the timeout value is exceeded.

Parameters:
destinationName - the name of the destination to send this message to (to be resolved to an actual destination by a DestinationResolver)
Returns:
the message produced for the consumer or null if the timeout expires.
Throws:
JmsException - checked JMSException converted to unchecked

receiveSelected

public Message receiveSelected(String messageSelector)
                        throws JmsException
Receive a message synchronously from the default destination, but only wait up to a specified time for delivery.

This method should be used carefully, since it will block the thread until the message becomes available or until the timeout value is exceeded.

This will only work with a default destination specified!

Parameters:
messageSelector - the JMS message selector expression (or null if none). See the JMS specification for a detailed definition of selector expressions.
Returns:
the message produced for the consumer or null if the timeout expires.
Throws:
JmsException - checked JMSException converted to unchecked

receiveSelected

public Message receiveSelected(Destination destination,
                               String messageSelector)
                        throws JmsException
Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery.

This method should be used carefully, since it will block the thread until the message becomes available or until the timeout value is exceeded.

Parameters:
destination - the destination to receive a message from
messageSelector - the JMS message selector expression (or null if none). See the JMS specification for a detailed definition of selector expressions.
Returns:
the message produced for the consumer or null if the timeout expires.
Throws:
JmsException - checked JMSException converted to unchecked

receiveSelected

public Message receiveSelected(String destinationName,
                               String messageSelector)
                        throws JmsException
Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery.

This method should be used carefully, since it will block the thread until the message becomes available or until the timeout value is exceeded.

Parameters:
destinationName - the name of the destination to send this message to (to be resolved to an actual destination by a DestinationResolver)
messageSelector - the JMS message selector expression (or null if none). See the JMS specification for a detailed definition of selector expressions.
Returns:
the message produced for the consumer or null if the timeout expires.
Throws:
JmsException - checked JMSException converted to unchecked

receiveAndConvert

public Object receiveAndConvert()
                         throws JmsException
Receive a message synchronously from the default destination, but only wait up to a specified time for delivery. Convert the message into an object with a configured MessageConverter.

This method should be used carefully, since it will block the thread until the message becomes available or until the timeout value is exceeded.

This will only work with a default destination specified!

Returns:
the message produced for the consumer or null if the timeout expires.
Throws:
JmsException - checked JMSException converted to unchecked

receiveAndConvert

public Object receiveAndConvert(Destination destination)
                         throws JmsException
Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery. Convert the message into an object with a configured MessageConverter.

This method should be used carefully, since it will block the thread until the message becomes available or until the timeout value is exceeded.

Parameters:
destination - the destination to receive a message from
Returns:
the message produced for the consumer or null if the timeout expires.
Throws:
JmsException - checked JMSException converted to unchecked

receiveAndConvert

public Object receiveAndConvert(String destinationName)
                         throws JmsException
Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery. Convert the message into an object with a configured MessageConverter.

This method should be used carefully, since it will block the thread until the message becomes available or until the timeout value is exceeded.

Parameters:
destinationName - the name of the destination to send this message to (to be resolved to an actual destination by a DestinationResolver)
Returns:
the message produced for the consumer or null if the timeout expires.
Throws:
JmsException - checked JMSException converted to unchecked

receiveSelectedAndConvert

public Object receiveSelectedAndConvert(String messageSelector)
                                 throws JmsException
Receive a message synchronously from the default destination, but only wait up to a specified time for delivery. Convert the message into an object with a configured MessageConverter.

This method should be used carefully, since it will block the thread until the message becomes available or until the timeout value is exceeded.

This will only work with a default destination specified!

Parameters:
messageSelector - the JMS message selector expression (or null if none). See the JMS specification for a detailed definition of selector expressions.
Returns:
the message produced for the consumer or null if the timeout expires.
Throws:
JmsException - checked JMSException converted to unchecked

receiveSelectedAndConvert

public Object receiveSelectedAndConvert(Destination destination,
                                        String messageSelector)
                                 throws JmsException
Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery. Convert the message into an object with a configured MessageConverter.

This method should be used carefully, since it will block the thread until the message becomes available or until the timeout value is exceeded.

Parameters:
destination - the destination to receive a message from
messageSelector - the JMS message selector expression (or null if none). See the JMS specification for a detailed definition of selector expressions.
Returns:
the message produced for the consumer or null if the timeout expires.
Throws:
JmsException - checked JMSException converted to unchecked

receiveSelectedAndConvert

public Object receiveSelectedAndConvert(String destinationName,
                                        String messageSelector)
                                 throws JmsException
Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery. Convert the message into an object with a configured MessageConverter.

This method should be used carefully, since it will block the thread until the message becomes available or until the timeout value is exceeded.

Parameters:
destinationName - the name of the destination to send this message to (to be resolved to an actual destination by a DestinationResolver)
messageSelector - the JMS message selector expression (or null if none). See the JMS specification for a detailed definition of selector expressions.
Returns:
the message produced for the consumer or null if the timeout expires.
Throws:
JmsException - checked JMSException converted to unchecked


Copyright (C) 2003-2004 The Spring Framework Project.