org.springframework.jms.support.converter

## Class SimpleMessageConverter

- java.lang.Object
- - 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 which is able to handle TextMessages, BytesMessages, MapMessages, and ObjectMessages. Used as default conversion strategy by `JmsTemplate`, for `convertAndSend` and `receiveAndConvert` operations.

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

  Since:
    1.1
  Author:
    Juergen Hoeller
  See Also:
    `JmsTemplate.convertAndSend(java.lang.Object)`, `JmsTemplate.receiveAndConvert()`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `SimpleMessageConverter()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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 `BytesMessage`.
    `protected Map` | `extractMapFromMessage(MapMessage message)` Extract a Map from the given `MapMessage`.
    `protected Serializable` | `extractSerializableFromMessage(ObjectMessage message)` Extract a Serializable object from the given `ObjectMessage`.
    `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. Returns the plain Message object in case of an unknown message type.
      Specified by:
        `fromMessage` in interface `MessageConverter`
      Parameters:
        `message` - the message to convert
      Returns:
        the converted Java object
      Throws:
        `JMSException` - if thrown by JMS API methods
        `MessageConversionException` - in case of conversion failure
      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 `BytesMessage`.
      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 `MapMessage`.
      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 `ObjectMessage`.
      Parameters:
        `message` - the message to convert
      Returns:
        the resulting Serializable object
      Throws:
        `JMSException` - if thrown by JMS methods