[ https://issues.apache.org/jira/browse/NIFI-11270?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Nandor Soma Abonyi updated NIFI-11270: -------------------------------------- Description: ConsumeMQTT processor implements the MqttClient interface, which follows the signature of the Paho library's MqttClient interface. There are two issues with that. It mixes two types of behavior because the client itself can act as a publisher and subscriber parallelly. However, in NiFi, these two roles are separated into different processors. So it doesn't make sense to implement the subscribe interface in PublishMQTT, and it also doesn't make sense to implement deliveryComplete in ConsumeMQTT. The other issue is that these interfaces cannot be used with the HiveMQ client except messageArrived(). Because of the above, we need to move the existing implementation into the Paho adapter (because it is still required for logging) and create a new interface for handling incoming messages. > Refactoring of the overly Paho-specific MQTT interface > ------------------------------------------------------ > > Key: NIFI-11270 > URL: https://issues.apache.org/jira/browse/NIFI-11270 > Project: Apache NiFi > Issue Type: Improvement > Components: Extensions > Reporter: Nandor Soma Abonyi > Assignee: Nandor Soma Abonyi > Priority: Minor > Labels: mqtt > Fix For: 1.latest, 2.latest > > Time Spent: 50m > Remaining Estimate: 0h > > ConsumeMQTT processor implements the MqttClient interface, which follows the > signature of the Paho library's MqttClient interface. There are two issues > with that. It mixes two types of behavior because the client itself can act > as a publisher and subscriber parallelly. However, in NiFi, these two roles > are separated into different processors. So it doesn't make sense to > implement the subscribe interface in PublishMQTT, and it also doesn't make > sense to implement deliveryComplete in ConsumeMQTT. > The other issue is that these interfaces cannot be used with the HiveMQ > client except messageArrived(). Because of the above, we need to move the > existing implementation into the Paho adapter (because it is still required > for logging) and create a new interface for handling incoming messages. -- This message was sent by Atlassian Jira (v8.20.10#820010)