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 Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected final voidaddCustomHeaders(TcpConnection connection, MessageHeaders messageHeaders) protected final voidaddStandardHeaders(TcpConnection connection, MessageHeaders messageHeaders) @Nullable ObjectfromMessage(Message<?> message) protected MessageBuilderFactoryvoidsetAddContentTypeHeader(boolean addContentTypeHeader) Set to true to add a content type header; default false.voidsetApplySequence(boolean applySequence) voidsetBeanFactory(BeanFactory beanFactory) voidsetBytesMessageMapper(BytesMessageMapper bytesMessageMapper) Set aBytesMessageMapperto use when mapping byte[].voidsetCharset(String charset) Set the charset to use when converting outbound String messages tobyte[].voidsetContentType(String contentType) Set the content type header value to add to inbound messages whenaddContentTypeHeaderis true.voidsetStringToBytes(boolean stringToBytes) Sets whether outbound String payloads are to be converted to byte[].supplyCustomHeaders(TcpConnection connection) Override to provide additional headers.@Nullable Message<?> toMessage(TcpConnection connection, @Nullable Map<String, Object> headers) Convert a provided object to theMessageand supply with headers if necessary and provided.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface InboundMessageMapper
toMessage
-
Field Details
-
logger
protected final org.apache.commons.logging.Log logger
-
-
Constructor Details
-
TcpMessageMapper
public TcpMessageMapper()
-
-
Method Details
-
setCharset
Set the charset to use when converting outbound String messages tobyte[].- 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 aBytesMessageMapperis provided.- Parameters:
stringToBytes- The stringToBytes to set.- See Also:
-
setApplySequence
public void setApplySequence(boolean applySequence) - Parameters:
applySequence- The applySequence to set.
-
setContentType
Set the content type header value to add to inbound messages whenaddContentTypeHeaderis true. Defaultapplication/octet-stream;charset=UTF-8. This default is not modified bysetCharset(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
- Specified by:
setBeanFactoryin interfaceBeanFactoryAware- Throws:
BeansException
-
setBytesMessageMapper
Set aBytesMessageMapperto use when mapping byte[].setStringToBytes(boolean)is ignored when aBytesMessageMapperis provided.- Parameters:
bytesMessageMapper- the mapper.- Since:
- 5.0
- See Also:
-
getMessageBuilderFactory
-
toMessage
public @Nullable Message<?> toMessage(TcpConnection connection, @Nullable Map<String, Object> headers) Description copied from interface:InboundMessageMapperConvert a provided object to theMessageand supply with headers if necessary and provided.- Specified by:
toMessagein interfaceInboundMessageMapper<TcpConnection>- Parameters:
connection- the object for message payload or some other conversion logicheaders- additional headers for building message. Can be null- Returns:
- the message as a result of mapping
-
addStandardHeaders
-
addCustomHeaders
-
supplyCustomHeaders
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
- Specified by:
fromMessagein interfaceOutboundMessageMapper<Object>
-