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) fromMessage(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.Message<?>toMessage(TcpConnection connection, Map<String, Object> headers) Convert a provided object to theMessageand supply with headers if necessary and provided.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.integration.mapping.InboundMessageMapper
toMessage
-
Field Details
-
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
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>
-