Class EmbeddedJsonHeadersMessageMapper

java.lang.Object
org.springframework.integration.support.json.EmbeddedJsonHeadersMessageMapper
All Implemented Interfaces:
BytesMessageMapper, InboundMessageMapper<byte[]>, OutboundMessageMapper<byte[]>

@Deprecated(since="7.0", forRemoval=true) public class EmbeddedJsonHeadersMessageMapper extends Object implements BytesMessageMapper
Deprecated, for removal: This API element is subject to removal in a future version.
Since 7.0 in favor of EmbeddedHeadersJsonMessageMapper for Jackson 3.
For outbound messages, uses a message-aware Jackson object mapper to render the message as JSON. For messages with byte[] payloads, if rendered as JSON, Jackson performs Base64 conversion on the bytes. If payload is byte[] and the rawBytes property is true (default), the result has the form [headersLen][headers][payloadLen][payload]; with the headers rendered in JSON and the payload unchanged. Otherwise, message is fully serialized and deserialized with Jackson object mapper.

By default, all headers are included; you can provide simple patterns to specify a subset of headers.

If neither expected format is detected, nor an error occurs during conversion, the payload of the message is the original byte[].

IMPORTANT

The default object mapper will only deserialize classes in certain packages.

        "java.util",
        "java.lang",
        "org.springframework.messaging.support",
        "org.springframework.integration.support",
        "org.springframework.integration.message",
        "org.springframework.integration.store",
        "org.springframework.integration.history",
        "org.springframework.integration.handler"
 

To add more packages, create an object mapper using JacksonJsonUtils.messagingAwareMapper(String...).

A constructor is provided allowing the provision of such a configured object mapper.

Since:
5.0
Author:
Gary Russell, Artem Bilan
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final Log
    Deprecated, for removal: This API element is subject to removal in a future version.
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    Deprecated, for removal: This API element is subject to removal in a future version.
    Construct an instance that embeds all headers, using the default JSON Object mapper.
    EmbeddedJsonHeadersMessageMapper(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Construct an instance that embeds all headers, using the supplied JSON object mapper.
    EmbeddedJsonHeadersMessageMapper(com.fasterxml.jackson.databind.ObjectMapper objectMapper, String... headerPatterns)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Construct an instance that embeds headers matching the supplied patterns using the supplied JSON object mapper.
    Deprecated, for removal: This API element is subject to removal in a future version.
    Construct an instance that embeds headers matching the supplied patterns, using the default JSON object mapper.
  • Method Summary

    Modifier and Type
    Method
    Description
    byte[]
    fromMessage(Message<?> message)
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    void
    setCaseSensitive(boolean caseSensitive)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Set to true to make the header name pattern match case-sensitive.
    void
    setRawBytes(boolean rawBytes)
    Deprecated, for removal: This API element is subject to removal in a future version.
    For messages with byte[] payloads, if rendered as JSON, Jackson performs Base64 conversion on the bytes.
    toMessage(byte[] bytes, @Nullable Map<String,Object> headers)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Convert a provided object to the Message and supply with headers if necessary and provided.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.springframework.integration.mapping.BytesMessageMapper

    toMessage
  • Field Details

    • logger

      protected final Log logger
      Deprecated, for removal: This API element is subject to removal in a future version.
  • Constructor Details

    • EmbeddedJsonHeadersMessageMapper

      public EmbeddedJsonHeadersMessageMapper()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Construct an instance that embeds all headers, using the default JSON Object mapper.
    • EmbeddedJsonHeadersMessageMapper

      public EmbeddedJsonHeadersMessageMapper(String... headerPatterns)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Construct an instance that embeds headers matching the supplied patterns, using the default JSON object mapper.
      Parameters:
      headerPatterns - the patterns.
      See Also:
    • EmbeddedJsonHeadersMessageMapper

      public EmbeddedJsonHeadersMessageMapper(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Construct an instance that embeds all headers, using the supplied JSON object mapper.
      Parameters:
      objectMapper - the object mapper.
    • EmbeddedJsonHeadersMessageMapper

      public EmbeddedJsonHeadersMessageMapper(com.fasterxml.jackson.databind.ObjectMapper objectMapper, String... headerPatterns)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Construct an instance that embeds headers matching the supplied patterns using the supplied JSON object mapper.
      Parameters:
      objectMapper - the object mapper.
      headerPatterns - the patterns.
  • Method Details

    • setRawBytes

      public void setRawBytes(boolean rawBytes)
      Deprecated, for removal: This API element is subject to removal in a future version.
      For messages with byte[] payloads, if rendered as JSON, Jackson performs Base64 conversion on the bytes. If this property is true (default), the result has the form [headersLen][headers][payloadLen][payload]; with the headers rendered in JSON and the payload unchanged. Set to false to render the bytes as base64.
      Parameters:
      rawBytes - false to encode as base64.
    • setCaseSensitive

      public void setCaseSensitive(boolean caseSensitive)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Set to true to make the header name pattern match case-sensitive. Default false.
      Parameters:
      caseSensitive - true to make case-sensitive.
    • getHeaderPatterns

      public Collection<String> getHeaderPatterns()
      Deprecated, for removal: This API element is subject to removal in a future version.
    • fromMessage

      public byte[] fromMessage(Message<?> message)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Specified by:
      fromMessage in interface BytesMessageMapper
      Specified by:
      fromMessage in interface OutboundMessageMapper<byte[]>
    • toMessage

      public Message<?> toMessage(byte[] bytes, @Nullable Map<String,Object> headers)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: InboundMessageMapper
      Convert a provided object to the Message and supply with headers if necessary and provided.
      Specified by:
      toMessage in interface BytesMessageMapper
      Specified by:
      toMessage in interface InboundMessageMapper<byte[]>
      Parameters:
      bytes - the object for message payload or some other conversion logic
      headers - additional headers for building message. Can be null
      Returns:
      the message as a result of mapping