Repository: camel Updated Branches: refs/heads/master e44192e95 -> e91376528
Added camel-chunk 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/e9137652 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/e9137652 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/e9137652 Branch: refs/heads/master Commit: e91376528c153b24f91107f94c4f42d9869e8597 Parents: e44192e Author: Andrea Cosentino <anco...@gmail.com> Authored: Sat Feb 13 14:24:38 2016 +0100 Committer: Andrea Cosentino <anco...@gmail.com> Committed: Sat Feb 13 14:25:02 2016 +0100 ---------------------------------------------------------------------- components/camel-chunk/src/main/docs/chunk.adoc | 182 +++++++++++++++++++ docs/user-manual/en/SUMMARY.md | 1 + 2 files changed, 183 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/e9137652/components/camel-chunk/src/main/docs/chunk.adoc ---------------------------------------------------------------------- diff --git a/components/camel-chunk/src/main/docs/chunk.adoc b/components/camel-chunk/src/main/docs/chunk.adoc new file mode 100644 index 0000000..2690a4d --- /dev/null +++ b/components/camel-chunk/src/main/docs/chunk.adoc @@ -0,0 +1,182 @@ +[[Chunk-Chunk]] +Chunk +~~~~~ + +*Available as of Camel 2.15* + +The *chunk:* component allows for processing a message using a +http://www.x5software.com/chunk/examples/ChunkExample?loc=en_US[Chunk] template. +This can be ideal when using link:templating.html[Templating] to +generate responses for requests. + +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-chunk</artifactId> +<version>x.x.x</version> <!-- use the same version as your Camel core version --> +</dependency> +--------------------------------------------------------------------------------- + +[[Chunk-URIformat]] +URI format +^^^^^^^^^^ + +[source,java] +---------------------------- +chunk:templateName[?options] +---------------------------- + +Where *templateName* is the classpath-local URI of the template to +invoke. + +You can append query options to the URI in the following +format, `?option=value&option=value&...` + +[[Chunk-Options]] +Options +^^^^^^^ +[width="100%",cols="10%,10%,80%",options="header",] +|======================================================================= +|Option |Default |Description + +|`encoding` |`null` |Character encoding of the resource content. + +|themesFolder |`null` |Alternative folder to scan for a template name. + +|themeSubfolder |`null` |Alternative subfolder to scan for a template name if themeFolder +parameter is set. + +|`themeLayer` |`null` |A specific layer of a template file to use as template. + +|`extension` |`null` |Alternative extension to scan for a template name if themeFolder and +themeSubfolder are set. +|======================================================================= + +Chunk component will look for a specific template in _themes_ folder +with extensions _.chtml_ or _.cxml. _If you need to specify a different +folder or extensions, you will need to use the specific options listed +above. + +[[Chunk-ChunkContext]] +Chunk Context +^^^^^^^^^^^^^ + +Camel will provide exchange information in the Chunk context (just +a `Map`). The `Exchange` is transferred as: + + +[width="100%",cols="20%,80%",options="header",] +|======================================================================= +|key |value + +|`exchange` |The `Exchange` itself. + +|`exchange.properties` |The `Exchange` properties. + +|`headers` |The headers of the In message. + +|`camelContext` |The Camel Context. + +|`request` |The In message. + +|`body` |The In message body. + +|`response` |The Out message (only for InOut message exchange pattern). +|======================================================================= + +[[Chunk-Dynamictemplates]] +Dynamic templates +^^^^^^^^^^^^^^^^^ + +Camel provides two headers by which you can define a different resource +location for a template or the template content itself. If any of these +headers is set then Camel uses this over the endpoint configured +resource. This allows you to provide a dynamic template at runtime. + +[width="100%",cols="20%,10%,10%,60%",options="header",] +|======================================================================= +|Header |Type |Description |Support Version + +|ChunkConstants.CHUNK_RESOURCE_URI |String |A URI for the template resource to use instead of the endpoint +configured. | + +|ChunkConstants.CHUNK_TEMPLATE |String |The template to use instead of the endpoint configured. | +|======================================================================= + +[[Chunk-Samples]] +Samples +^^^^^^^ + +For example you could use something like: + +[source,java] +-------------------------- +from("activemq:My.Queue"). +to("chunk:template"); +-------------------------- + +To use a Chunk template to formulate a response for a message for InOut +message exchanges (where there is a `JMSReplyTo` header). + +If you want to use InOnly and consume the message and send it to another +destination you could use: + +[source,java] +----------------------------- +from("activemq:My.Queue"). +to("chunk:template"). +to("activemq:Another.Queue"); +----------------------------- + +It's possible to specify what template the component should use +dynamically via a header, so for example: + +[source,java] +------------------------------------------------------------------ +from("direct:in"). +setHeader(ChunkConstants.CHUNK_RESOURCE_URI).constant("template"). +to("chunk:dummy"); +------------------------------------------------------------------ + +An example of Chunk component options use: + +[source,java] +--------------------------------------------------------------------------------------- +from("direct:in"). +to("chunk:file_example?themeFolder=template&themeSubfolder=subfolder&extension=chunk"); +--------------------------------------------------------------------------------------- + +In this example Chunk component will look for the file +_file_example.chunk_ in the folder _template/subfolder._ + +[[Chunk-TheEmailSample]] +The Email Sample +^^^^^^^^^^^^^^^^ + +In this sample we want to use Chunk templating for an order confirmation +email. The email template is laid out in Chunk as: + +[source,java] +---------------------------------------------- + +Dear {$headers.lastName}, {$headers.firstName} + +Thanks for the order of {$headers.item}. + +Regards Camel Riders Bookstore +{$body} +---------------------------------------------- + +[[Chunk-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/e9137652/docs/user-manual/en/SUMMARY.md ---------------------------------------------------------------------- diff --git a/docs/user-manual/en/SUMMARY.md b/docs/user-manual/en/SUMMARY.md index e27283e..c3cbc24 100644 --- a/docs/user-manual/en/SUMMARY.md +++ b/docs/user-manual/en/SUMMARY.md @@ -104,6 +104,7 @@ * [Cassandraql](cassandra.adoc) * [Castor](castor.adoc) * [CDI](cdi.adoc) + * [Chunk](chunk.adoc) * [JMS](jms.adoc) * [Metrics](metrics.adoc) * [Properties](properties.adoc)