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<java.lang.Object>
Direct Known Subclasses:
MessageConvertingTcpMessageMapper

public class TcpMessageMapper
extends java.lang.Object
implements org.springframework.integration.mapping.InboundMessageMapper<TcpConnection>, org.springframework.integration.mapping.OutboundMessageMapper<java.lang.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 Summary

    Fields 
    Modifier and Type Field Description
    protected org.apache.commons.logging.Log logger  
  • Constructor Summary

    Constructors 
    Constructor Description
    TcpMessageMapper()  
  • Method Summary

    Modifier and Type Method Description
    protected void addCustomHeaders​(TcpConnection connection, org.springframework.messaging.MessageHeaders messageHeaders)  
    protected void addStandardHeaders​(TcpConnection connection, org.springframework.messaging.MessageHeaders messageHeaders)  
    java.lang.Object fromMessage​(org.springframework.messaging.Message<?> message)  
    protected org.springframework.integration.support.MessageBuilderFactory getMessageBuilderFactory()  
    void setAddContentTypeHeader​(boolean addContentTypeHeader)
    Set to true to add a content type header; default false.
    void setApplySequence​(boolean applySequence)  
    void setBeanFactory​(org.springframework.beans.factory.BeanFactory beanFactory)  
    void setBytesMessageMapper​(org.springframework.integration.mapping.BytesMessageMapper bytesMessageMapper)
    Set a BytesMessageMapper to use when mapping byte[].
    void setCharset​(java.lang.String charset)
    Set the charset to use when converting outbound String messages to byte[].
    void setContentType​(java.lang.String contentType)
    Set the content type header value to add to inbound messages when addContentTypeHeader is true.
    void setStringToBytes​(boolean stringToBytes)
    Sets whether outbound String payloads are to be converted to byte[].
    protected java.util.Map<java.lang.String,​?> supplyCustomHeaders​(TcpConnection connection)
    Override to provide additional headers.
    org.springframework.messaging.Message<?> toMessage​(TcpConnection connection, java.util.Map<java.lang.String,​java.lang.Object> headers)  

    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.InboundMessageMapper

    toMessage
  • Field Details

    • logger

      protected final org.apache.commons.logging.Log logger
  • Constructor Details

  • Method Details

    • setCharset

      public void setCharset​(java.lang.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:
      setBytesMessageMapper(BytesMessageMapper)
    • setApplySequence

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

      public void setContentType​(java.lang.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(boolean), setCharset(String)
    • 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:
      setContentType(String)
    • 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:
      setStringToBytes(boolean)
    • getMessageBuilderFactory

      protected org.springframework.integration.support.MessageBuilderFactory getMessageBuilderFactory()
    • toMessage

      public org.springframework.messaging.Message<?> toMessage​(TcpConnection connection, @Nullable java.util.Map<java.lang.String,​java.lang.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 java.util.Map<java.lang.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 java.lang.Object fromMessage​(org.springframework.messaging.Message<?> message)
      Specified by:
      fromMessage in interface org.springframework.integration.mapping.OutboundMessageMapper<java.lang.Object>