Andreas Huber created CAMEL-26735:
-------------------------------------

             Summary: New component camel-vertx-mqtt: MQTT 3.1.1 and 5 client 
based on the Vert.x MQTT client
                 Key: CAMEL-26735
                 URL: https://issues.apache.org/jira/browse/CAMEL-26735
             Project: Camel
          Issue Type: New Feature
          Components: camel-vertx
            Reporter: Andreas Huber


A new component vertx-mqtt (vertx-mqtt:topic) that connects to an MQTT broker
with the Vert.x MQTT client (io.vertx:vertx-mqtt), as discussed on dev@camel
("[DISCUSS] New component camel-vertx-mqtt").

It fits applications that already run on Vert.x and gives Camel an MQTT 5
client without the Paho or HiveMQ client libraries.

Features:
* Consumer and producer for MQTT 3.1.1 and MQTT 5
* QoS 0, 1 and 2, retained messages, will message, clean start and session 
expiry
* MQTT 5 properties mapped to headers: content type, response topic, 
correlation data, message expiry interval and user properties
* Manual acknowledgements and receive maximum for the consumer
* TLS through sslContextParameters (VertxHelper of camel-vertx-common), with 
host name verification
* Username and password authentication
* Automatic reconnect with exponential backoff (reconnectDelay, 
maxReconnectDelay), resubscribing after every connect

Reconnect: the Vert.x MQTT client does not reconnect by itself yet
(vert-x3/vertx-mqtt#197). The reconnect logic is kept in a class of its own,
so the component can switch to the client's reconnect once it exists. The pull
request describes how cleanStart=false and in-flight QoS 1/2 messages behave
when the connection drops.

Tests: unit tests, plus integration tests against Mosquitto and HiveMQ CE
through camel-test-infra, including reconnect after a broker failure and
restart.

The component is based on Vert.x 5 and therefore targets main (4.24).



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to