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 <anco...@gmail.com> Authored: Tue Feb 16 11:42:58 2016 +0100 Committer: Andrea Cosentino <anco...@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)