org.springframework.jms.support.converter
Class SimpleMessageConverter

java.lang.Object
  extended by org.springframework.jms.support.converter.SimpleMessageConverter
All Implemented Interfaces:
MessageConverter
Direct Known Subclasses:
SimpleMessageConverter102

public class SimpleMessageConverter
extends Object
implements MessageConverter

A simple message converter that can handle TextMessages, BytesMessages, MapMessages, and ObjectMessages. Used as default by JmsTemplate, for convertAndSend and receiveAndConvert operations.

Converts a String to a JMS TextMessage, a byte array to a JMS BytesMessage, a Map to a JMS MapMessage, and a Serializable object to a JMS ObjectMessage (or vice versa).

This converter implementation works for both JMS 1.1 and JMS 1.0.2, except when extracting a byte array from a BytesMessage. So for converting BytesMessages with a JMS 1.0.2 provider, use SimpleMessageConverter102. (JmsTemplate102 uses SimpleMessageConverter102 as default.)

Since:
1.1
Author:
Juergen Hoeller
See Also:
JmsTemplate.convertAndSend(java.lang.Object), JmsTemplate.receiveAndConvert(), JmsTemplate102, SimpleMessageConverter102, TextMessage, BytesMessage, MapMessage, ObjectMessage

Constructor Summary
SimpleMessageConverter()
           
 
Method Summary
protected  BytesMessage createMessageForByteArray(byte[] bytes, Session session)
          Create a JMS BytesMessage for the given byte array.
protected  MapMessage createMessageForMap(Map map, Session session)
          Create a JMS MapMessage for the given Map.
protected  ObjectMessage createMessageForSerializable(Serializable object, Session session)
          Create a JMS ObjectMessage for the given Serializable object.
protected  TextMessage createMessageForString(String text, Session session)
          Create a JMS TextMessage for the given String.
protected  byte[] extractByteArrayFromMessage(BytesMessage message)
          Extract a byte array from the given TextMessage.
protected  Map extractMapFromMessage(MapMessage message)
          Extract a Map from the given TextMessage.
protected  Serializable extractSerializableFromMessage(ObjectMessage message)
          Extract a Serializable object from the given TextMessage.
protected  String extractStringFromMessage(TextMessage message)
          Extract a String from the given TextMessage.
 Object fromMessage(Message message)
          This implementation converts a TextMessage back to a String, a ByteMessage back to a byte array, a MapMessage back to a Map, and an ObjectMessage back to a Serializable object.
 Message toMessage(Object object, Session session)
          This implementation creates a TextMessage for a String, a BytesMessage for a byte array, a MapMessage for a Map, and an ObjectMessage for a Serializable object.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SimpleMessageConverter

public SimpleMessageConverter()
Method Detail

toMessage

public Message toMessage(Object object,
                         Session session)
                  throws JMSException,
                         MessageConversionException
This implementation creates a TextMessage for a String, a BytesMessage for a byte array, a MapMessage for a Map, and an ObjectMessage for a Serializable object.

Specified by:
toMessage in interface MessageConverter
Parameters:
object - the object to convert
session - the Session to use for creating a JMS Message
Returns:
the JMS Message
Throws:
JMSException - if thrown by JMS API methods
MessageConversionException - in case of conversion failure
See Also:
createMessageForString(java.lang.String, javax.jms.Session), createMessageForByteArray(byte[], javax.jms.Session), createMessageForMap(java.util.Map, javax.jms.Session), createMessageForSerializable(java.io.Serializable, javax.jms.Session)

fromMessage

public Object fromMessage(Message message)
                   throws JMSException,
                          MessageConversionException
This implementation converts a TextMessage back to a String, a ByteMessage back to a byte array, a MapMessage back to a Map, and an ObjectMessage back to a Serializable object.

Specified by:
fromMessage in interface MessageConverter
Parameters:
message - the message to convert
Returns:
the converted Java object
Throws:
MessageConversionException - in case of conversion failure
JMSException
See Also:
extractStringFromMessage(javax.jms.TextMessage), extractByteArrayFromMessage(javax.jms.BytesMessage), extractMapFromMessage(javax.jms.MapMessage), extractSerializableFromMessage(javax.jms.ObjectMessage)

createMessageForString

protected TextMessage createMessageForString(String text,
                                             Session session)
                                      throws JMSException
Create a JMS TextMessage for the given String.

Parameters:
text - the String to convert
session - current JMS session
Returns:
the resulting message
Throws:
JMSException - if thrown by JMS methods
See Also:
Session.createTextMessage()

createMessageForByteArray

protected BytesMessage createMessageForByteArray(byte[] bytes,
                                                 Session session)
                                          throws JMSException
Create a JMS BytesMessage for the given byte array.

Parameters:
bytes - the byyte array to convert
session - current JMS session
Returns:
the resulting message
Throws:
JMSException - if thrown by JMS methods
See Also:
Session.createBytesMessage()

createMessageForMap

protected MapMessage createMessageForMap(Map map,
                                         Session session)
                                  throws JMSException
Create a JMS MapMessage for the given Map.

Parameters:
map - the Map to convert
session - current JMS session
Returns:
the resulting message
Throws:
JMSException - if thrown by JMS methods
See Also:
Session.createMapMessage()

createMessageForSerializable

protected ObjectMessage createMessageForSerializable(Serializable object,
                                                     Session session)
                                              throws JMSException
Create a JMS ObjectMessage for the given Serializable object.

Parameters:
object - the Serializable object to convert
session - current JMS session
Returns:
the resulting message
Throws:
JMSException - if thrown by JMS methods
See Also:
Session.createObjectMessage()

extractStringFromMessage

protected String extractStringFromMessage(TextMessage message)
                                   throws JMSException
Extract a String from the given TextMessage.

Parameters:
message - the message to convert
Returns:
the resulting String
Throws:
JMSException - if thrown by JMS methods

extractByteArrayFromMessage

protected byte[] extractByteArrayFromMessage(BytesMessage message)
                                      throws JMSException
Extract a byte array from the given TextMessage.

Parameters:
message - the message to convert
Returns:
the resulting byte array
Throws:
JMSException - if thrown by JMS methods

extractMapFromMessage

protected Map extractMapFromMessage(MapMessage message)
                             throws JMSException
Extract a Map from the given TextMessage.

Parameters:
message - the message to convert
Returns:
the resulting Map
Throws:
JMSException - if thrown by JMS methods

extractSerializableFromMessage

protected Serializable extractSerializableFromMessage(ObjectMessage message)
                                               throws JMSException
Extract a Serializable object from the given TextMessage.

Parameters:
message - the message to convert
Returns:
the resulting Serializable object
Throws:
JMSException - if thrown by JMS methods


Copyright (c) 2002-2007 The Spring Framework Project.