public class DefaultPahoMessageConverter extends Object implements MqttMessageConverter, BeanFactoryAware
Constructor and Description |
---|
DefaultPahoMessageConverter()
Construct 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 to
byte[] and inbound byte[] to String (unless
payloadAdBytes 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 to
byte[] and inbound byte[] to String (unless
payloadAdBytes 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.
|
Modifier and Type | Method and Description |
---|---|
org.eclipse.paho.client.mqttv3.MqttMessage |
fromMessage(Message<?> message,
Class<?> targetClass) |
protected BeanFactory |
getBeanFactory() |
protected MessageBuilderFactory |
getMessageBuilderFactory() |
boolean |
isPayloadAsBytes() |
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.
|
void |
setBeanFactory(BeanFactory beanFactory) |
void |
setBytesMessageMapper(BytesMessageMapper bytesMessageMapper)
Set a
BytesMessageMapper 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) |
Message<?> |
toMessage(String topic,
org.eclipse.paho.client.mqttv3.MqttMessage mqttMessage)
Convert to a Message.
|
AbstractIntegrationMessageBuilder<?> |
toMessageBuilder(String topic,
org.eclipse.paho.client.mqttv3.MqttMessage mqttMessage)
Convert to a message builder.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
defaultQosProcessor, defaultRetainedProcessor
public DefaultPahoMessageConverter()
public DefaultPahoMessageConverter(int defaultQos, boolean defaultRetained)
byte[]
and inbound byte[]
to String (unless
payloadAdBytes
is true).defaultQos
- the default qos.defaultRetained
- the default retained.public DefaultPahoMessageConverter(String charset)
charset
- the charset used to convert outbound String payloads to byte[]
and inbound
byte[]
to String (unless payloadAdBytes
is true).public DefaultPahoMessageConverter(int defaultQos, boolean defaultRetained, String charset)
defaultQos
- the default qos.defaultRetained
- the default retained.charset
- the charset used to convert outbound String payloads to
byte[]
and inbound byte[]
to String (unless
payloadAdBytes
is true).public DefaultPahoMessageConverter(int defaultQos, MessageProcessor<Integer> qosProcessor, boolean defaultRetained, MessageProcessor<Boolean> retainedProcessor)
byte[]
and inbound byte[]
to String (unless
payloadAdBytes
is true).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.public DefaultPahoMessageConverter(int defaultQos, MessageProcessor<Integer> qosProcessor, boolean defaultRetained, MessageProcessor<Boolean> retainedProcessor, String charset)
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 to
byte[]
and inbound byte[]
to String (unless
payloadAdBytes
is true).public final void setBeanFactory(BeanFactory beanFactory)
setBeanFactory
in interface BeanFactoryAware
protected BeanFactory getBeanFactory()
protected MessageBuilderFactory getMessageBuilderFactory()
public void setPayloadAsBytes(boolean payloadAsBytes)
BytesMessageMapper
is provided.payloadAsBytes
- The payloadAsBytes to set.setBytesMessageMapper(BytesMessageMapper)
public boolean isPayloadAsBytes()
public void setBytesMessageMapper(BytesMessageMapper bytesMessageMapper)
BytesMessageMapper
to use when mapping byte[].
setPayloadAsBytes(boolean)
is ignored when a BytesMessageMapper
is provided.bytesMessageMapper
- the mapper.setPayloadAsBytes(boolean)
public Message<?> toMessage(Object mqttMessage, MessageHeaders headers)
toMessage
in interface MessageConverter
public Message<?> toMessage(String topic, org.eclipse.paho.client.mqttv3.MqttMessage mqttMessage)
MqttMessageConverter
toMessage
in interface MqttMessageConverter
topic
- the topic.mqttMessage
- the MQTT message.public AbstractIntegrationMessageBuilder<?> toMessageBuilder(String topic, org.eclipse.paho.client.mqttv3.MqttMessage mqttMessage)
MqttMessageConverter
default
with a delegation to the MqttMessageConverter.toMessage(String, MqttMessage)
to avoid a breaking change for migrated projects.
The delegation will be swapped in the next version.toMessageBuilder
in interface MqttMessageConverter
topic
- the topic.mqttMessage
- the MQTT message.public org.eclipse.paho.client.mqttv3.MqttMessage fromMessage(Message<?> message, Class<?> targetClass)
fromMessage
in interface MessageConverter
protected Object mqttBytesToPayload(org.eclipse.paho.client.mqttv3.MqttMessage mqttMessage)
mqttMessage
- The inbound message.protected byte[] messageToMqttBytes(Message<?> message)
BytesMessageMapper
is provided, conversion to byte[]
is delegated to it, so any payload that it can handle is supported.message
- The outbound Message.