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/05/16 06:50:52 UTC
camel git commit: Added camel-ognl docs to Gitbook
Repository: camel
Updated Branches:
refs/heads/master 1ec00be81 -> 8ed65a952
Added camel-ognl 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/8ed65a95
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/8ed65a95
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/8ed65a95
Branch: refs/heads/master
Commit: 8ed65a95221ebc1754cef1602148105b13081c9f
Parents: 1ec00be
Author: Andrea Cosentino <an...@gmail.com>
Authored: Mon May 16 08:50:18 2016 +0200
Committer: Andrea Cosentino <an...@gmail.com>
Committed: Mon May 16 08:50:30 2016 +0200
----------------------------------------------------------------------
components/camel-ognl/src/main/docs/ognl.adoc | 117 +++++++++++++++++++++
docs/user-manual/en/SUMMARY.md | 1 +
2 files changed, 118 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/8ed65a95/components/camel-ognl/src/main/docs/ognl.adoc
----------------------------------------------------------------------
diff --git a/components/camel-ognl/src/main/docs/ognl.adoc b/components/camel-ognl/src/main/docs/ognl.adoc
new file mode 100644
index 0000000..c3d6344
--- /dev/null
+++ b/components/camel-ognl/src/main/docs/ognl.adoc
@@ -0,0 +1,117 @@
+[[OGNL-OGNL]]
+OGNL
+~~~~
+
+Camel allows http://commons.apache.org/proper/commons-ognl/[OGNL] to be
+used as an link:expression.html[Expression] or
+link:predicate.html[Predicate] the link:dsl.html[DSL] or
+link:xml-configuration.html[Xml Configuration].
+
+You could use OGNL to create an link:predicate.html[Predicate] in a
+link:message-filter.html[Message Filter] or as an
+link:expression.html[Expression] for a
+link:recipient-list.html[Recipient List]
+
+You can use OGNL dot notation to invoke operations. If you for instance
+have a body that contains a POJO that has a `getFamilyName` method then
+you can construct the syntax as follows:
+
+[source,java]
+----------------------------------------
+"request.body.familyName"
+ // or
+"getRequest().getBody().getFamilyName()"
+----------------------------------------
+
+[[OGNL-Variables]]
+Variables
+^^^^^^^^^
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Variable |Type |Description
+
+|*this* |Exchange |the Exchange is the root object
+
+|exchange |Exchange |the Exchange object
+
+|exception |Throwable |the Exchange exception (if any)
+
+|exchangeId |String |the exchange id
+
+|fault |Message |the Fault message (if any)
+
+|request |Message |the exchange.in message
+
+|response |Message |the exchange.out message (if any)
+
+|properties |Map |the exchange properties
+
+|property(name) |Object |the property by the given name
+
+|property(name, type) |Type |the property by the given name as the given type
+|=======================================================================
+
+[[OGNL-Samples]]
+Samples
+^^^^^^^
+
+For example you could use OGNL inside a link:message-filter.html[Message
+Filter] in XML
+
+[source,java]
+---------------------------------------------
+<route>
+ <from uri="seda:foo"/>
+ <filter>
+ <ognl>request.headers.foo == 'bar'</ognl>
+ <to uri="seda:bar"/>
+ </filter>
+</route>
+---------------------------------------------
+
+And the sample using Java DSL:
+
+[source,java]
+---------------------------------------------------------------------------------
+ from("seda:foo").filter().ognl("request.headers.foo == 'bar'").to("seda:bar");
+---------------------------------------------------------------------------------
+
+[[OGNL-Loadingscriptfromexternalresource]]
+Loading script from external resource
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+*Available as of Camel 2.11*
+
+You can externalize the script and have Camel load it from a resource
+such as `"classpath:"`, `"file:"`, or `"http:"`. +
+ This is done using the following syntax: `"resource:scheme:location"`,
+eg to refer to a file on the classpath you can do:
+
+[source,java]
+------------------------------------------------------------
+.setHeader("myHeader").ognl("resource:classpath:myognl.txt")
+------------------------------------------------------------
+
+[[OGNL-Dependencies]]
+Dependencies
+^^^^^^^^^^^^
+
+To use OGNL in your camel routes you need to add the a dependency on
+*camel-ognl* which implements the OGNL language.
+
+If you use maven you could just add the following to your pom.xml,
+substituting the version number for the latest & greatest release (see
+link:download.html[the download page for the latest versions]).
+
+[source,java]
+-------------------------------------
+<dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-ognl</artifactId>
+ <version>x.x.x</version>
+</dependency>
+-------------------------------------
+
+Otherwise, you'll also need
+http://repo2.maven.org/maven2/org/apache/servicemix/bundles/org.apache.servicemix.bundles.ognl/2.7.3_4/org.apache.servicemix.bundles.ognl-2.7.3_4.jar[OGNL]
http://git-wip-us.apache.org/repos/asf/camel/blob/8ed65a95/docs/user-manual/en/SUMMARY.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/SUMMARY.md b/docs/user-manual/en/SUMMARY.md
index f96e552..acb6a9b 100644
--- a/docs/user-manual/en/SUMMARY.md
+++ b/docs/user-manual/en/SUMMARY.md
@@ -226,6 +226,7 @@
* [EL](juel.adoc)
* [Jsonpath](jsonpath.adoc)
* [JXPath](jxpath.adoc)
+ * [Ognl](ognl.adoc)
* [SQL](josql.adoc)
* Data Formats