Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
xml
xml
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-paho</artifactId>
    <version>x.y.z</version>
    <!-- use the same version as your Camel core version -->
</dependency>

Keep in mind that Paho artifacts are not hosted in the Maven Central, so you need to add Eclipse Paho repository to your POM xml file:

Code Block
xml
xml
<repositories>
  <repository>
    <id>eclipse-paho</id>
    <url>https://repo.eclipse.org/content/repositories/paho-releases</url>
    <snapshots>
      <enabled>false</enabled>
    </snapshots>
  </repository>
</repositories>

Default payload type

By default Camel Paho component operates on the binary payloads extracted out of or put into the MQTT message:

 

Code Block
// Receive payload
byte[] payload = (byte[]) consumerTemplate.receiveBody("paho:topic");
 
// Send payload
byte[] payload = "message".getBytes();
producerTemplate.sendBody("paho:topic", payload);

But of course Camel can perform the automatic data type conversions for you:

Code Block
// Receive payload
String payload = consumerTemplate.receiveBody("paho:topic", String.class);
 
// Send payload
String payload = "message";
producerTemplate.sendBody("paho:topic", payload);

URI format

Code Block
paho:queueName[?options]

...

Div
classconfluenceTableSmall

Option

Default

Description

clientIdcamel-<timestamp>MQTT client identifier.

brokerUrl

tcp://localhost:1883

The URL of the MQTT broker.

persistencememoryClient persistence to be used - memory or file.
qos2Client quality of service level (0-2).
connectOptionsnoneThe reference to the org.eclipse.paho.client.mqttv3.MqttConnectOptions instance located in the Camel registry. Referenced MqttConnectOptions instance will be used by the endpoint to initialize the connection. For example connectOptions=#myConnectOptions notation can be used to reference Spring bean named myConnectOptions.

Headers

The following headers are recognized by the Paho component:

Div
classconfluenceTableSmall

Header

Java constant

Endpoint typeValue type

Description

PahoOriginalMessagePahoConstants.HEADER_ORIGINAL_MESSAGEConsumerorg.eclipse.paho.client.mqttv3.MqttMessageThe original Paho message instance received by the client.

Examples

Read messages from the MQTT broker installed on the same host as the Camel router:

...