Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id F28A72007D1 for ; Thu, 12 May 2016 09:59:29 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id F14BB160939; Thu, 12 May 2016 07:59:29 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 22872160868 for ; Thu, 12 May 2016 09:59:28 +0200 (CEST) Received: (qmail 34956 invoked by uid 500); 12 May 2016 07:59:28 -0000 Mailing-List: contact commits-help@camel.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@camel.apache.org Delivered-To: mailing list commits@camel.apache.org Received: (qmail 34947 invoked by uid 99); 12 May 2016 07:59:28 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 12 May 2016 07:59:28 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 3CCFFDFB93; Thu, 12 May 2016 07:59:28 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: acosentino@apache.org To: commits@camel.apache.org Message-Id: X-Mailer: ASF-Git Admin Mailer Subject: camel git commit: Added camel-mvel docs to Gitbook Date: Thu, 12 May 2016 07:59:28 +0000 (UTC) archived-at: Thu, 12 May 2016 07:59:30 -0000 Repository: camel Updated Branches: refs/heads/master 767a98b47 -> 86ebce0ca Added camel-mvel 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/86ebce0c Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/86ebce0c Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/86ebce0c Branch: refs/heads/master Commit: 86ebce0ca7445a0f79e674d028374cd729036c15 Parents: 767a98b Author: Andrea Cosentino Authored: Thu May 12 09:58:10 2016 +0200 Committer: Andrea Cosentino Committed: Thu May 12 09:58:10 2016 +0200 ---------------------------------------------------------------------- components/camel-mvel/src/main/docs/mvel.adoc | 181 +++++++++++++++++++++ docs/user-manual/en/SUMMARY.md | 1 + 2 files changed, 182 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/86ebce0c/components/camel-mvel/src/main/docs/mvel.adoc ---------------------------------------------------------------------- diff --git a/components/camel-mvel/src/main/docs/mvel.adoc b/components/camel-mvel/src/main/docs/mvel.adoc new file mode 100644 index 0000000..4f62b55 --- /dev/null +++ b/components/camel-mvel/src/main/docs/mvel.adoc @@ -0,0 +1,181 @@ +[[MVELComponent-MVELComponent]] +MVEL Component +~~~~~~~~~~~~~~ + +*Available as of Camel 2.12* + +The *mvel:* component allows you to process a message using an +http://mvel.codehaus.org/[MVEL] 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] +------------------------------------------------------------ + + org.apache.camel + camel-mvel + x.x.x + + +------------------------------------------------------------ + +[[MVELComponent-URIformat]] +URI format +^^^^^^^^^^ + +[source,java] +--------------------------- +mvel:templateName[?options] +--------------------------- + +Where *templateName* is the classpath-local URI of the template to +invoke; or the complete URL of the remote template (eg: +file://folder/myfile.mvel[file://folder/myfile.mvel]). + +You can append query options to the URI in the following format, +`?option=value&option=value&...` + +[[MVELComponent-Options]] +Options +^^^^^^^ + + +// component options: START +The MVEL component has no options. +// component options: END + + + +// endpoint options: START +The MVEL component supports 5 endpoint options which are listed below: + +[width="100%",cols="2s,1,1m,1m,5",options="header"] +|======================================================================= +| Name | Group | Default | Java Type | Description +| resourceUri | producer | | String | *Required* Path to the resource or a reference to lookup a bean in the Registry to use as the resource +| contentCache | producer | false | boolean | Sets whether to use resource content cache or not +| encoding | producer | | String | Character encoding of the resource content. +| 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). +|======================================================================= +// endpoint options: END + + +[[MVELComponent-MessageHeaders]] +Message Headers +^^^^^^^^^^^^^^^ + +The mvel component sets a couple headers on the message. + +[width="100%",cols="10%,90%",options="header",] +|======================================================================= +|Header |Description + +|`CamelMvelResourceUri` |The *templateName* as a `String` object. +|======================================================================= + +[[MVELComponent-MVELContext]] +MVEL Context +^^^^^^^^^^^^ + +Camel will provide exchange information in the MVEL context (just a +`Map`). The `Exchange` is transfered as: + +[width="100%",cols="10%,90%",options="header",] +|======================================================================= +|key |value + +|`exchange` |The `Exchange` itself. + +|`exchange.properties` |The `Exchange` properties. + +|`headers` |The headers of the In message. + +|`camelContext` |The Camel Context intance. + +|`request` |The In message. + +|`in` |The In message. + +|`body` |The In message body. + +|`out` |The Out message (only for InOut message exchange pattern). + +|`response` |The Out message (only for InOut message exchange pattern). +|======================================================================= + +[[MVELComponent-Hotreloading]] +Hot reloading +^^^^^^^^^^^^^ + +The mvel template resource is, by default, hot reloadable for both file +and classpath resources (expanded jar). If you set `contentCache=true`, +Camel will only load the resource once, and thus hot reloading is not +possible. This scenario can be used in production, when the resource +never changes. + +[[MVELComponent-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="10%,10%,80%",options="header",] +|======================================================================= +|Header |Type |Description + +|CamelMvelResourceUri |String |A URI for the template resource to use instead of the endpoint +configured. + +|CamelMvelTemplate |String |The template to use instead of the endpoint configured. +|======================================================================= + +[[MVELComponent-Samples]] +Samples +^^^^^^^ + +For example you could use something like + +[source,java] +-------------------------------------- +from("activemq:My.Queue"). + to("mvel:com/acme/MyResponse.mvel"); +-------------------------------------- + +To use a MVEL template to formulate a response to a message for InOut +message exchanges (where there is a `JMSReplyTo` header). + +To specify what template the component should use dynamically via a +header, so for example: + +[source,java] +------------------------------------------------------------------------- +from("direct:in"). + setHeader("CamelMvelResourceUri").constant("path/to/my/template.mvel"). + to("mvel:dummy"); +------------------------------------------------------------------------- + +To specify a template directly as a header the component should use +dynamically via a header, so for example: + +[source,java] +------------------------------------------------------------------------------------------ +from("direct:in"). + setHeader("CamelMvelTemplate").constant("@{\"The result is \" + request.body * 3}\" }"). + to("velocity:dummy"); +------------------------------------------------------------------------------------------ + +[[MVELComponent-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/86ebce0c/docs/user-manual/en/SUMMARY.md ---------------------------------------------------------------------- diff --git a/docs/user-manual/en/SUMMARY.md b/docs/user-manual/en/SUMMARY.md index c0d19a7..c6cad47 100644 --- a/docs/user-manual/en/SUMMARY.md +++ b/docs/user-manual/en/SUMMARY.md @@ -200,6 +200,7 @@ * [MQTT](mqtt.adoc) * [Msv](msv.adoc) * [Mustache](mustache.adoc) + * [Mvel](mvel.adoc) * [Mock](mock.adoc) * [NATS](nats.adoc) * [Properties](properties.adoc)