Class TcpMessageMapper

java.lang.Object
org.springframework.integration.ip.tcp.connection.TcpMessageMapper
All Implemented Interfaces:
Aware, BeanFactoryAware, InboundMessageMapper<TcpConnection>, OutboundMessageMapper<Object>
Direct Known Subclasses:
MessageConvertingTcpMessageMapper

public class TcpMessageMapper extends Object implements InboundMessageMapper<TcpConnection>, OutboundMessageMapper<Object>, BeanFactoryAware
Maps incoming data from a TcpConnection to a Message. If StringToBytes is true (default), payloads of type String are converted to a byte[] using the supplied charset (UTF-8 by default). Inbound messages include headers representing the remote end of the connection as well as a connection id that can be used by a TcpSender to correlate which connection to send a reply. If applySequence is set, adds standard correlationId/sequenceNumber headers allowing for downstream (unbounded) resequencing. *
Since:
2.0
Author:
Gary Russell, Artem Bilan, Ngoc Nhan
  • Field Details

    • logger

      protected final Log logger
  • Constructor Details

    • TcpMessageMapper

      public TcpMessageMapper()
  • Method Details

    • setCharset

      public void setCharset(String charset)
      Set the charset to use when converting outbound String messages to byte[].
      Parameters:
      charset - the charset to set
    • setStringToBytes

      public void setStringToBytes(boolean stringToBytes)
      Sets whether outbound String payloads are to be converted to byte[]. Default is true. Ignored if a BytesMessageMapper is provided.
      Parameters:
      stringToBytes - The stringToBytes to set.
      See Also:
    • setApplySequence

      public void setApplySequence(boolean applySequence)
      Parameters:
      applySequence - The applySequence to set.
    • setContentType

      public void setContentType(String contentType)
      Set the content type header value to add to inbound messages when addContentTypeHeader is true. Default application/octet-stream;charset=UTF-8. This default is not modified by setCharset(String).
      Parameters:
      contentType - the content type header value to set.
      Since:
      4.3
      See Also:
    • setAddContentTypeHeader

      public void setAddContentTypeHeader(boolean addContentTypeHeader)
      Set to true to add a content type header; default false.
      Parameters:
      addContentTypeHeader - true to add a content type header.
      Since:
      4.3
      See Also:
    • setBeanFactory

      public void setBeanFactory(BeanFactory beanFactory) throws BeansException
      Specified by:
      setBeanFactory in interface BeanFactoryAware
      Throws:
      BeansException
    • setBytesMessageMapper

      public void setBytesMessageMapper(BytesMessageMapper bytesMessageMapper)
      Set a BytesMessageMapper to use when mapping byte[]. setStringToBytes(boolean) is ignored when a BytesMessageMapper is provided.
      Parameters:
      bytesMessageMapper - the mapper.
      Since:
      5.0
      See Also:
    • getMessageBuilderFactory

      protected MessageBuilderFactory getMessageBuilderFactory()
    • toMessage

      public @Nullable Message<?> toMessage(TcpConnection connection, @Nullable Map<String,Object> headers)
      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 InboundMessageMapper<TcpConnection>
      Parameters:
      connection - 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
    • addStandardHeaders

      protected final void addStandardHeaders(TcpConnection connection, MessageHeaders messageHeaders)
    • addCustomHeaders

      protected final void addCustomHeaders(TcpConnection connection, MessageHeaders messageHeaders)
    • supplyCustomHeaders

      protected @Nullable Map<String,?> supplyCustomHeaders(TcpConnection connection)
      Override to provide additional headers. The standard headers cannot be overridden and any such headers will be ignored if provided in the result.
      Parameters:
      connection - the connection.
      Returns:
      A Map of <String, ?> headers to be added to the message.
    • fromMessage

      public @Nullable Object fromMessage(Message<?> message)
      Specified by:
      fromMessage in interface OutboundMessageMapper<Object>