Class DefaultPahoMessageConverter
java.lang.Object
org.springframework.integration.mqtt.support.DefaultPahoMessageConverter
- All Implemented Interfaces:
Aware
,BeanFactoryAware
,MqttMessageConverter
,MessageConverter
public class DefaultPahoMessageConverter
extends Object
implements MqttMessageConverter, BeanFactoryAware
Default implementation for mapping to/from Messages.
- Since:
- 4.0
- Author:
- Gary Russell, Artem Bilan
-
Constructor Summary
ConstructorDescriptionConstruct a converter with default options (qos=0, retain=false, charset=UTF-8).DefaultPahoMessageConverter
(int defaultQos, boolean defaultRetained) Construct a converter to create outbound messages with the supplied default qos and retain settings and a UTF-8 charset for converting outbound String payloads tobyte[]
and inboundbyte[]
to String (unlesspayloadAdBytes
is true).DefaultPahoMessageConverter
(int defaultQos, boolean defaultRetained, String charset) Construct a converter to create outbound messages with the supplied default qos and retain settings and the supplied charset.DefaultPahoMessageConverter
(int defaultQos, MessageProcessor<Integer> qosProcessor, boolean defaultRetained, MessageProcessor<Boolean> retainedProcessor) Construct a converter to create outbound messages with the supplied default qos and retained message processors and a UTF-8 charset for converting outbound String payloads tobyte[]
and inboundbyte[]
to String (unlesspayloadAdBytes
is true).DefaultPahoMessageConverter
(int defaultQos, MessageProcessor<Integer> qosProcessor, boolean defaultRetained, MessageProcessor<Boolean> retainedProcessor, String charset) Construct a converter to create outbound messages with the supplied default qos and retain settings and the supplied charset.DefaultPahoMessageConverter
(String charset) Construct a converter with default options (qos=0, retain=false) and the supplied charset. -
Method Summary
Modifier and TypeMethodDescriptionorg.eclipse.paho.client.mqttv3.MqttMessage
fromMessage
(Message<?> message, Class<?> targetClass) protected BeanFactory
protected MessageBuilderFactory
boolean
protected byte[]
messageToMqttBytes
(Message<?> message) Subclasses can override this method to convert the payload to a byte[].protected Object
mqttBytesToPayload
(org.eclipse.paho.client.mqttv3.MqttMessage mqttMessage) Subclasses can override this method to convert the byte[] to a payload.final void
setBeanFactory
(BeanFactory beanFactory) void
setBytesMessageMapper
(BytesMessageMapper bytesMessageMapper) Set aBytesMessageMapper
to use when mapping byte[].void
setPayloadAsBytes
(boolean payloadAsBytes) True if the converter should not convert the message payload to a String.Message<?>
toMessage
(Object mqttMessage, MessageHeaders headers) toMessageBuilder
(String topic, org.eclipse.paho.client.mqttv3.MqttMessage mqttMessage) Convert to a message builder.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.mqtt.support.MqttMessageConverter
toMessage
-
Constructor Details
-
DefaultPahoMessageConverter
public DefaultPahoMessageConverter()Construct a converter with default options (qos=0, retain=false, charset=UTF-8). -
DefaultPahoMessageConverter
public DefaultPahoMessageConverter(int defaultQos, boolean defaultRetained) Construct a converter to create outbound messages with the supplied default qos and retain settings and a UTF-8 charset for converting outbound String payloads tobyte[]
and inboundbyte[]
to String (unlesspayloadAdBytes
is true).- Parameters:
defaultQos
- the default qos.defaultRetained
- the default retained.
-
DefaultPahoMessageConverter
Construct a converter with default options (qos=0, retain=false) and the supplied charset.- Parameters:
charset
- the charset used to convert outbound String payloads tobyte[]
and inboundbyte[]
to String (unlesspayloadAdBytes
is true).- Since:
- 4.1.2
-
DefaultPahoMessageConverter
Construct a converter to create outbound messages with the supplied default qos and retain settings and the supplied charset.- Parameters:
defaultQos
- the default qos.defaultRetained
- the default retained.charset
- the charset used to convert outbound String payloads tobyte[]
and inboundbyte[]
to String (unlesspayloadAdBytes
is true).
-
DefaultPahoMessageConverter
public DefaultPahoMessageConverter(int defaultQos, MessageProcessor<Integer> qosProcessor, boolean defaultRetained, MessageProcessor<Boolean> retainedProcessor) Construct a converter to create outbound messages with the supplied default qos and retained message processors and a UTF-8 charset for converting outbound String payloads tobyte[]
and inboundbyte[]
to String (unlesspayloadAdBytes
is true).- Parameters:
defaultQos
- the default qos.qosProcessor
- a message processor to determine the qos.defaultRetained
- the default retained.retainedProcessor
- a message processor to determine the retained flag.- Since:
- 5.0
-
DefaultPahoMessageConverter
public DefaultPahoMessageConverter(int defaultQos, MessageProcessor<Integer> qosProcessor, boolean defaultRetained, MessageProcessor<Boolean> retainedProcessor, String charset) Construct a converter to create outbound messages with the supplied default qos and retain settings and the supplied charset.- Parameters:
defaultQos
- the default qos.qosProcessor
- a message processor to determine the qos.defaultRetained
- the default retained.retainedProcessor
- a message processor to determine the retained flag.charset
- the charset used to convert outbound String payloads tobyte[]
and inboundbyte[]
to String (unlesspayloadAdBytes
is true).- Since:
- 5.0
-
-
Method Details
-
setBeanFactory
- Specified by:
setBeanFactory
in interfaceBeanFactoryAware
-
getBeanFactory
-
getMessageBuilderFactory
-
setPayloadAsBytes
public void setPayloadAsBytes(boolean payloadAsBytes) True if the converter should not convert the message payload to a String. Ignored if aBytesMessageMapper
is provided.- Parameters:
payloadAsBytes
- The payloadAsBytes to set.- See Also:
-
isPayloadAsBytes
public boolean isPayloadAsBytes() -
setBytesMessageMapper
Set aBytesMessageMapper
to use when mapping byte[].setPayloadAsBytes(boolean)
is ignored when aBytesMessageMapper
is provided.- Parameters:
bytesMessageMapper
- the mapper.- Since:
- 5.0
- See Also:
-
toMessage
- Specified by:
toMessage
in interfaceMessageConverter
-
toMessageBuilder
public AbstractIntegrationMessageBuilder<?> toMessageBuilder(String topic, org.eclipse.paho.client.mqttv3.MqttMessage mqttMessage) Description copied from interface:MqttMessageConverter
Convert to a message builder.- Specified by:
toMessageBuilder
in interfaceMqttMessageConverter
- Parameters:
topic
- the topic.mqttMessage
- the MQTT message.- Returns:
- the builder.
-
fromMessage
public org.eclipse.paho.client.mqttv3.MqttMessage fromMessage(Message<?> message, Class<?> targetClass) - Specified by:
fromMessage
in interfaceMessageConverter
-
mqttBytesToPayload
Subclasses can override this method to convert the byte[] to a payload. The default implementation creates a String (default) or byte[].- Parameters:
mqttMessage
- The inbound message.- Returns:
- The payload for the Spring integration message
-
messageToMqttBytes
Subclasses can override this method to convert the payload to a byte[]. The default implementation accepts a byte[] or String payload. If aBytesMessageMapper
is provided, conversion to byte[] is delegated to it, so any payload that it can handle is supported.- Parameters:
message
- The outbound Message.- Returns:
- The byte[] which will become the payload of the MQTT Message.
-