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
-
Field Summary
-
Constructor Summary
Constructors Constructor Description TcpMessageMapper()
-
Method Summary
Modifier and Type Method Description protected void
addCustomHeaders(TcpConnection connection, MessageHeaders messageHeaders)
protected void
addStandardHeaders(TcpConnection connection, MessageHeaders messageHeaders)
Object
fromMessage(Message<?> message)
protected MessageBuilderFactory
getMessageBuilderFactory()
void
setAddContentTypeHeader(boolean addContentTypeHeader)
Set to true to add a content type header; default false.void
setApplySequence(boolean applySequence)
void
setBeanFactory(BeanFactory beanFactory)
void
setBytesMessageMapper(BytesMessageMapper bytesMessageMapper)
Set aBytesMessageMapper
to use when mapping byte[].void
setCharset(String charset)
Set the charset to use when converting outbound String messages tobyte[]
.void
setContentType(String contentType)
Set the content type header value to add to inbound messages whenaddContentTypeHeader
is true.void
setStringToBytes(boolean stringToBytes)
Sets whether outbound String payloads are to be converted to byte[].protected Map<String,?>
supplyCustomHeaders(TcpConnection connection)
Override to provide additional headers.Message<?>
toMessage(TcpConnection connection, Map<String,Object> headers)
Convert a provided object to theMessage
and supply with headers if necessary and provided.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
-
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 aBytesMessageMapper
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
Set the content type header value to add to inbound messages whenaddContentTypeHeader
is 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(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
- Specified by:
setBeanFactory
in interfaceBeanFactoryAware
- Throws:
BeansException
-
setBytesMessageMapper
Set aBytesMessageMapper
to use when mapping byte[].setStringToBytes(boolean)
is ignored when aBytesMessageMapper
is provided.- Parameters:
bytesMessageMapper
- the mapper.- Since:
- 5.0
- See Also:
setStringToBytes(boolean)
-
getMessageBuilderFactory
-
toMessage
Description copied from interface:InboundMessageMapper
Convert a provided object to theMessage
and supply with headers if necessary and provided.- Specified by:
toMessage
in 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:
fromMessage
in interfaceOutboundMessageMapper<Object>
-