Class TcpMessageMapper

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

public class TcpMessageMapper extends Object implements org.springframework.integration.mapping.InboundMessageMapper<TcpConnection>, org.springframework.integration.mapping.OutboundMessageMapper<Object>, org.springframework.beans.factory.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
  • Field Details

    • logger

      protected final org.apache.commons.logging.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(org.springframework.beans.factory.BeanFactory beanFactory) throws org.springframework.beans.BeansException
      Specified by:
      setBeanFactory in interface org.springframework.beans.factory.BeanFactoryAware
      Throws:
      org.springframework.beans.BeansException
    • setBytesMessageMapper

      public void setBytesMessageMapper(org.springframework.integration.mapping.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 org.springframework.integration.support.MessageBuilderFactory getMessageBuilderFactory()
    • toMessage

      public org.springframework.messaging.Message<?> toMessage(TcpConnection connection, @Nullable Map<String,Object> headers)
      Specified by:
      toMessage in interface org.springframework.integration.mapping.InboundMessageMapper<TcpConnection>
    • addStandardHeaders

      protected final void addStandardHeaders(TcpConnection connection, org.springframework.messaging.MessageHeaders messageHeaders)
    • addCustomHeaders

      protected final void addCustomHeaders(TcpConnection connection, org.springframework.messaging.MessageHeaders messageHeaders)
    • supplyCustomHeaders

      @Nullable protected 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 Object fromMessage(org.springframework.messaging.Message<?> message)
      Specified by:
      fromMessage in interface org.springframework.integration.mapping.OutboundMessageMapper<Object>