-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
Spring Integration hits a bug in Paho client with $share/ MQTT subscriptions
In what version(s) of Spring Integration are you seeing this issue?
For example:
6.1.5
Describe the bug
Spring Integration hits a bug (eclipse-paho/paho.mqtt.java/issues/827) in Paho MQTT client with $share/ MQTT subscriptions. This bug can be worked around by using subscription ID by providing it in MqttProperties when calling, e.g., org.eclipse.paho.mqttv5.client.IMqttAsyncClient#subscribe(org.eclipse.paho.mqttv5.common.MqttSubscription[], java.lang.Object, org.eclipse.paho.mqttv5.client.MqttActionListener, org.eclipse.paho.mqttv5.client.IMqttMessageListener, org.eclipse.paho.mqttv5.common.packet.MqttProperties). Unfortunately, Spring Integration currently calls only org.eclipse.paho.mqttv5.client.IMqttAsyncClient#subscribe(org.eclipse.paho.mqttv5.common.MqttSubscription, org.eclipse.paho.mqttv5.client.IMqttMessageListener) from org.springframework.integration.mqtt.inbound.Mqttv5PahoMessageDrivenChannelAdapter#addTopic and does not provide subscription ID.
To Reproduce
Subscribe on $share/sharegroup/topic using Mqttv5PahoMessageDrivenChannelAdapter and send message to topic. The message will be received but it will be rejected by Paho itself because it is comparing the filter and the message topic textually without removing the $share/sharegroup/ prefix.
Expected behavior
Mqttv5PahoMessageDrivenChannelAdapter should be able to subscribe to shared MQTT topics.
Sample
N/A