You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2016/02/16 11:43:40 UTC

camel git commit: Added camel-couchdb docs to gitbook

Repository: camel
Updated Branches:
  refs/heads/master aa96e654c -> 30afa95e8


Added camel-couchdb 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/30afa95e
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/30afa95e
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/30afa95e

Branch: refs/heads/master
Commit: 30afa95e8508802d6bad778e0b5f2dfddf651cda
Parents: aa96e65
Author: Andrea Cosentino <an...@gmail.com>
Authored: Tue Feb 16 11:42:58 2016 +0100
Committer: Andrea Cosentino <an...@gmail.com>
Committed: Tue Feb 16 11:42:58 2016 +0100

----------------------------------------------------------------------
 .../camel-couchdb/src/main/docs/couchdb.adoc    | 133 +++++++++++++++++++
 docs/user-manual/en/SUMMARY.md                  |   1 +
 2 files changed, 134 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/30afa95e/components/camel-couchdb/src/main/docs/couchdb.adoc
----------------------------------------------------------------------
diff --git a/components/camel-couchdb/src/main/docs/couchdb.adoc b/components/camel-couchdb/src/main/docs/couchdb.adoc
new file mode 100644
index 0000000..e5393a8
--- /dev/null
+++ b/components/camel-couchdb/src/main/docs/couchdb.adoc
@@ -0,0 +1,133 @@
+[[CouchDB-CamelCouchDBcomponent]]
+Camel CouchDB component
+~~~~~~~~~~~~~~~~~~~~~~~
+
+*Available as of Camel 2.11*
+
+The *couchdb:* component allows you to treat
+http://couchdb.apache.org/[CouchDB] instances as a producer or consumer
+of messages. Using the lightweight LightCouch API, this camel component
+has the following features:
+
+* As a consumer, monitors couch changesets for inserts, updates and
+deletes and publishes these as messages into camel routes.
+* As a producer, can save or update documents into couch.
+* Can support as many endpoints as required, eg for multiple databases
+across multiple instances.
+* Ability to have events trigger for only deletes, only inserts/updates
+or all (default).
+* Headers set for sequenceId, document revision, document id, and HTTP
+method type.
+
+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-couchdb</artifactId>
+    <version>x.x.x</version>
+    <!-- use the same version as your Camel core version -->
+</dependency>
+------------------------------------------------------------
+
+[[CouchDB-URIformat]]
+URI format
+^^^^^^^^^^
+
+[source,java]
+-------------------------------------------------
+couchdb:http://hostname[:port]/database?[options]
+-------------------------------------------------
+
+Where *hostname* is the hostname of the running couchdb instance. Port
+is optional and if not specified then defaults to 5984.
+
+[[CouchDB-Options]]
+Options
+^^^^^^^
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Property |Default |Description
+
+|`deletes` |`true` |document deletes are published as events
+
+|`updates` |`true` |document inserts/updates are published as events
+
+|`heartbeat` |`30000` |how often to send an empty message to keep socket alive in millis
+
+|`createDatabase` |`true` |create the database if it does not already exist
+
+|`username` |`null` |username in case of authenticated databases
+
+|`password` |`null` |password for authenticated databases
+|=======================================================================
+
+[[CouchDB-Headers]]
+Headers
+^^^^^^^
+
+The following headers are set on exchanges during message transport.
+
+[width="100%",cols="20%,80%",options="header",]
+|=======================================================================
+|Property |Value
+
+|`CouchDbDatabase` |the database the message came from
+
+|`CouchDbSeq` |the couchdb changeset sequence number of the update / delete message
+
+|`CouchDbId` |the couchdb document id
+
+|`CouchDbRev` |the couchdb document revision
+
+|`CouchDbMethod` |the method (delete / update)
+|=======================================================================
+
+Headers are set by the consumer once the message is received. The
+producer will also set the headers for downstream processors once the
+insert/update has taken place. Any headers set prior to the producer are
+ignored. That means for example, if you set CouchDbId as a header, it
+will not be used as the id for insertion, the id of the document will
+still be used.
+
+[[CouchDB-MessageBody]]
+Message Body
+^^^^^^^^^^^^
+
+The component will use the message body as the document to be inserted.
+If the body is an instance of String, then it will be marshalled into a
+GSON object before insert. This means that the string must be valid JSON
+or the insert / update will fail. If the body is an instance of a
+com.google.gson.JsonElement then it will be inserted as is. Otherwise
+the producer will throw an exception of unsupported body type.
+
+[[CouchDB-Samples]]
+Samples
+^^^^^^^
+
+For example if you wish to consume all inserts, updates and deletes from
+a CouchDB instance running locally, on port 9999 then you could use the
+following:
+
+[source,java]
+-------------------------------------------------------------
+from("couchdb:http://localhost:9999").process(someProcessor);
+-------------------------------------------------------------
+
+If you were only interested in deletes, then you could use the following
+
+[source,java]
+---------------------------------------------------------------------------
+from("couchdb:http://localhost:9999?updates=false").process(someProcessor);
+---------------------------------------------------------------------------
+
+If you wanted to insert a message as a document, then the body of the
+exchange is used
+
+[source,java]
+----------------------------------------------------------------------------------------
+from("someProducingEndpoint").process(someProcessor).to("couchdb:http://localhost:9999")
+----------------------------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/camel/blob/30afa95e/docs/user-manual/en/SUMMARY.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/SUMMARY.md b/docs/user-manual/en/SUMMARY.md
index 3ec12b3..61194cc 100644
--- a/docs/user-manual/en/SUMMARY.md
+++ b/docs/user-manual/en/SUMMARY.md
@@ -107,6 +107,7 @@
 	* [Chunk](chunk.adoc)
 	* [Cmis](cmis.adoc)
 	* [Cometd](cometd.adoc)
+	* [Couchdb](couchdb.adoc)
 	* [JMS](jms.adoc)
 	* [Metrics](metrics.adoc)
 	* [Properties](properties.adoc)