Repository: camel Updated Branches: refs/heads/master e5c7f624f -> b941f3f5a
Added camel-paho docs to Gitbook Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/b941f3f5 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/b941f3f5 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/b941f3f5 Branch: refs/heads/master Commit: b941f3f5a55c7226ce2c58afa927edab8924cd40 Parents: e5c7f62 Author: Andrea Cosentino <anco...@gmail.com> Authored: Tue May 17 10:42:46 2016 +0200 Committer: Andrea Cosentino <anco...@gmail.com> Committed: Tue May 17 10:42:46 2016 +0200 ---------------------------------------------------------------------- components/camel-paho/src/main/docs/paho.adoc | 198 +++++++++++++++++++++ docs/user-manual/en/SUMMARY.md | 1 + 2 files changed, 199 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/b941f3f5/components/camel-paho/src/main/docs/paho.adoc ---------------------------------------------------------------------- diff --git a/components/camel-paho/src/main/docs/paho.adoc b/components/camel-paho/src/main/docs/paho.adoc new file mode 100644 index 0000000..51daab7 --- /dev/null +++ b/components/camel-paho/src/main/docs/paho.adoc @@ -0,0 +1,198 @@ +[[Paho-PahoComponent]] +Paho Component +~~~~~~~~~~~~~~ + +INFO: Available as of Camel 2.16 + +Paho component provides connector for the MQTT messaging protocol using +the https://eclipse.org/paho/[Eclipse Paho] library. Paho is one of the +most popular MQTT libraries, so if you would like to integrate it with +your Java project - Camel Paho connector is a way to go. + +[[Paho-URIformat]] +URI format +^^^^^^^^^^ + +[source,java] +------------------------ +paho:queueName[?options] +------------------------ + +For example the following snippet reads messages from the MQTT broker +installed on the same host as the Camel router: + +[source,java] +------------------------ +from("paho:some/queue"). + to("mock:test"); +------------------------ + +While the snippet below sends message to the MQTT broker: + +[source,java] +------------------------------- +from("direct:test"). + to("paho:some/target/queue"); +------------------------------- + +You can append query options to the URI in the following +format: `?option=value&option=value&...` . For example this is how +to read messages from the remote MQTT broker: + + + +[source,java] +------------------------------------------------------------- +from("paho:some/queue?brokerUrl=tcp://iot.eclipse.org:1883"). + to("mock:test"); +------------------------------------------------------------- + + + +[[Paho-Addingthecomponenttotheproject]] +Adding the component to the project +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Maven users will need to add the following dependency to their `pom.xml` +for this component: + +[source,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: + +[source,xml] +-------------------------------------------------------------------------- +<repositories> + <repository> + <id>eclipse-paho</id> + <url>https://repo.eclipse.org/content/repositories/paho-releases</url> + <snapshots> + <enabled>false</enabled> + </snapshots> + </repository> +</repositories> +-------------------------------------------------------------------------- + +[[Paho-Defaultpayloadtype]] +Default payload type +^^^^^^^^^^^^^^^^^^^^ + + + +By default Camel Paho component operates on the binary payloads +extracted out of (or put into) the MQTT message: + +[source,java] +--------------------------------------------------------------------- +// Receive payload +byte[] payload = (byte[]) consumerTemplate.receiveBody("paho:topic"); + +// Send payload +byte[] payload = "message".getBytes(); +producerTemplate.sendBody("paho:topic", payload); +--------------------------------------------------------------------- + + + +But of course Camel build-in link:type-converter.html[type conversion +API] can perform the automatic data type transformations for you. In the +example below Camel automatically converts binary payload into String +(and conversely): + + + +[source,java] +-------------------------------------------------------------------------- +// Receive payload +String payload = consumerTemplate.receiveBody("paho:topic", String.class); + +// Send payload +String payload = "message"; +producerTemplate.sendBody("paho:topic", payload); +-------------------------------------------------------------------------- + +[[Paho-URIOptions]] +Paho Options +^^^^^^^^^^^^ + + +// component options: START +The Paho component supports 3 options which are listed below. + + + +{% raw %} +[width="100%",cols="2s,1m,8",options="header"] +|======================================================================= +| Name | Java Type | Description +| brokerUrl | String | The URL of the MQTT broker. +| clientId | String | MQTT client identifier. +| connectOptions | MqttConnectOptions | Client connection options +|======================================================================= +{% endraw %} +// component options: END + + + +// endpoint options: START +The Paho component supports 12 endpoint options which are listed below: + +{% raw %} +[width="100%",cols="2s,1,1m,1m,5",options="header"] +|======================================================================= +| Name | Group | Default | Java Type | Description +| topic | common | | String | *Required* Name of the topic +| brokerUrl | common | tcp://localhost:1883 | String | The URL of the MQTT broker. +| clientId | common | | String | MQTT client identifier. +| connectOptions | common | | MqttConnectOptions | Client connection options +| filePersistenceDirectory | common | Current directory | String | Base directory used by the file persistence provider. +| persistence | common | MEMORY | PahoPersistence | Client persistence to be used - memory or file. +| qos | common | 2 | int | Client quality of service level (0-2). +| retained | common | false | boolean | Retain option +| bridgeErrorHandler | consumer | false | boolean | Allows for bridging the consumer to the Camel routing Error Handler which mean any exceptions occurred while the consumer is trying to pickup incoming messages or the likes will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions that will be logged at WARN/ERROR level and ignored. +| exceptionHandler | consumer (advanced) | | ExceptionHandler | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this options is not in use. By default the consumer will deal with exceptions that will be logged at WARN/ERROR level and ignored. +| exchangePattern | advanced | InOnly | ExchangePattern | Sets the default exchange pattern when creating an exchange +| synchronous | advanced | false | boolean | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). +|======================================================================= +{% endraw %} +// endpoint options: END + + +[[Paho-Headers]] +Headers +^^^^^^^ + +The following headers are recognized by the Paho component: + +[width="100%",cols="10%,10%,10%,10%,60%",options="header",] +|======================================================================= +|Header |Java constant |Endpoint type |Value type |Description + +|`PahoOriginalMessage` |`PahoConstants.HEADER_ORIGINAL_MESSAGE` |Consumer |`org.eclipse.paho.client.mqttv3.MqttMessage` |The original Paho message instance received by the client. +*Deprecated:*from Camel 2.17 onwards the original MqttMessage is not +stored as a header but on the +`org.apache.camel.component.paho.PahoMessage` message that has a getter +`getMqttMessage`. + +|`CamelMqttTopic` |PahoConstants.MQTT_TOPIC |Consumer |String |*Camel 2.17:*The topic +|======================================================================= + + +[[Paho-SeeAlso]] +See Also +^^^^^^^^ + +* link:configuring-camel.html[Configuring Camel] +* link:component.html[Component] +* link:endpoint.html[Endpoint] +* link:getting-started.html[Getting Started] + http://git-wip-us.apache.org/repos/asf/camel/blob/b941f3f5/docs/user-manual/en/SUMMARY.md ---------------------------------------------------------------------- diff --git a/docs/user-manual/en/SUMMARY.md b/docs/user-manual/en/SUMMARY.md index 5ff2e96..17c1c7b 100644 --- a/docs/user-manual/en/SUMMARY.md +++ b/docs/user-manual/en/SUMMARY.md @@ -212,6 +212,7 @@ * [Olingo2](olingo2.adoc) * [Openshift](openshift.adoc) * [Optaplanner](optaplanner.adoc) + * [Paho](paho.adoc) * [Properties](properties.adoc) * [Quickfix](quickfix.adoc) * [Scp](scp.adoc)