You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by bu...@apache.org on 2015/07/01 18:20:59 UTC

svn commit: r956560 [3/3] - in /websites/production/camel/content: book-in-one-page.html book-languages-appendix.html cache/main.pageCache camel-2160-release.html kafka.html simple.html

Modified: websites/production/camel/content/simple.html
==============================================================================
--- websites/production/camel/content/simple.html (original)
+++ websites/production/camel/content/simple.html Wed Jul  1 16:20:58 2015
@@ -142,14 +142,18 @@ simple("There are ${body.length} li
 </div></div><h3 id="Simple-Operatorsupport">Operator support</h3><p>The parser is limited to only support a single operator.</p><p>To enable it the left value must be enclosed in ${ }. The syntax is:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[${leftValue} OP rightValue
 ]]></script>
-</div></div><p>Where the <code>rightValue</code> can be a String literal enclosed in <code>' '</code>, <code>null</code>, a constant value or another expression enclosed in ${ }.</p><div class="confluence-information-macro confluence-information-macro-information"><p class="title">Important</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>There <strong>must</strong> be spaces around the operator.</p></div></div><p>Camel will automatically type convert the rightValue type to the leftValue type, so its able to eg. convert a string into a numeric so you can use &gt; comparison for numeric values.</p><p>The following operators are supported:</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Operator</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" cla
 ss="confluenceTd"><p>==</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>equals</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>&gt;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>greater than</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>&gt;=</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>greater than or equals</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>&lt;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>less than</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>&lt;=</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>less than or equals</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>!=</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>not equals</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>contains</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For testing if contai
 ns in a string based value</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>not contains</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For testing if not contains in a string based value</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>regex</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For matching against a given regular expression pattern defined as a String value</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>not regex</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For not matching against a given regular expression pattern defined as a String value</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>in</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For matching if in a set of values, each element must be separated by comma.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>not in</p></td><td colspan="1" rowspan="1" class="conflu
 enceTd"><p>For matching if not in a set of values, each element must be separated by comma.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>is</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For matching if the left hand side type is an instanceof the value.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>not is</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For matching if the left hand side type is not an instanceof the value.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>range</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For matching if the left hand side is within a range of values defined as numbers: <code>from..to</code>. From <strong>Camel 2.9</strong> onwards the range values must be enclosed in single quotes.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>not range</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For matching if the left 
 hand side is not within a range of values defined as numbers: <code>from..to</code>. From <strong>Camel 2.9</strong> onwards the range values must be enclosed in single quotes.</p></td></tr></tbody></table></div><p>And the following unary operators can be used:</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Operator</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>++</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> To increment a number by one. The left hand side must be a function, otherwise parsed as literal.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>--</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> To decrement a number by one. The left hand side must be a function, otherwise parsed as literal.</p></td></tr><tr>
 <td colspan="1" rowspan="1" class="confluenceTd"><p>\</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9.3 to 2.10.x</strong> To escape a value, eg \$, to indicate a $ sign. Special: Use \n for new line, \t for tab, and \r for carriage return. <strong>Notice:</strong> Escaping is <strong>not</strong> supported using the <a shape="rect" href="file-language.html">File Language</a>. <strong>Notice:</strong> From Camel 2.11 onwards the escape character is no longer support, but replaced with the following three special escaping.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>\n</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> To use newline character.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>\t</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> To use tab character.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>
 \r</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> To use carriage return character.</p></td></tr></tbody></table></div><p>And the following logical operators can be used to group expressions:</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Operator</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>and</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>deprecated</strong> use &amp;&amp; instead. The logical and operator is used to group two expressions.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>or</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>deprecated</strong> use || instead. The logical or operator is used to group two expressions.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>&amp;&amp;</p>
 </td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> The logical and operator is used to group two expressions.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>||</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> The logical or operator is used to group two expressions.</p></td></tr></tbody></table></div><div class="confluence-information-macro confluence-information-macro-information"><p class="title">Using and,or operators</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>In <strong>Camel 2.4 or older</strong> the <code>and</code> or <code>or</code> can only be used <strong>once</strong> in a simple language expression. From <strong>Camel 2.5</strong> onwards you can use these operators multiple times.</p></div></div><p>The syntax for AND is:</p><div class="code panel pdl" style="border-width:
  1px;"><div class="codeContent panelContent pdl">
+</div></div><p>Where the <code>rightValue</code> can be a String literal enclosed in <code>' '</code>, <code>null</code>, a constant value or another expression enclosed in ${ }.</p><div class="confluence-information-macro confluence-information-macro-information"><p class="title">Important</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>There <strong>must</strong> be spaces around the operator.</p></div></div><p>Camel will automatically type convert the rightValue type to the leftValue type, so its able to eg. convert a string into a numeric so you can use &gt; comparison for numeric values.</p><p>The following operators are supported:</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Operator</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" cla
 ss="confluenceTd"><p>==</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>equals</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">=~</td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.16:</strong> equals ignore case (will ignore case when comparing String values)</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>&gt;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>greater than</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>&gt;=</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>greater than or equals</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>&lt;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>less than</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>&lt;=</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>less than or equals</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>!=</p></td><td cols
 pan="1" rowspan="1" class="confluenceTd"><p>not equals</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>contains</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For testing if contains in a string based value</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>not contains</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For testing if not contains in a string based value</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>regex</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For matching against a given regular expression pattern defined as a String value</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>not regex</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For not matching against a given regular expression pattern defined as a String value</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>in</p></td><td colspan="1" rowspan="1" class="confl
 uenceTd"><p>For matching if in a set of values, each element must be separated by comma.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>not in</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For matching if not in a set of values, each element must be separated by comma.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>is</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For matching if the left hand side type is an instanceof the value.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>not is</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For matching if the left hand side type is not an instanceof the value.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>range</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For matching if the left hand side is within a range of values defined as numbers: <code>from..to</code>. From <strong>Camel 2.9</strong> onwards th
 e range values must be enclosed in single quotes.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>not range</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For matching if the left hand side is not within a range of values defined as numbers: <code>from..to</code>. From <strong>Camel 2.9</strong> onwards the range values must be enclosed in single quotes.</p></td></tr></tbody></table></div><p>And the following unary operators can be used:</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Operator</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>++</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> To increment a number by one. The left hand side must be a function, otherwise parsed as literal.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenc
 eTd"><p>--</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> To decrement a number by one. The left hand side must be a function, otherwise parsed as literal.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>\</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9.3 to 2.10.x</strong> To escape a value, eg \$, to indicate a $ sign. Special: Use \n for new line, \t for tab, and \r for carriage return. <strong>Notice:</strong> Escaping is <strong>not</strong> supported using the <a shape="rect" href="file-language.html">File Language</a>. <strong>Notice:</strong> From Camel 2.11 onwards the escape character is no longer support, but replaced with the following three special escaping.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>\n</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> To use newline character.</p></td></tr><tr><td colspan="1" rowsp
 an="1" class="confluenceTd"><p>\t</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> To use tab character.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>\r</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> To use carriage return character.</p></td></tr></tbody></table></div><p>And the following logical operators can be used to group expressions:</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Operator</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>and</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>deprecated</strong> use &amp;&amp; instead. The logical and operator is used to group two expressions.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>or</p></td><td colspan="1" rowspan
 ="1" class="confluenceTd"><p><strong>deprecated</strong> use || instead. The logical or operator is used to group two expressions.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>&amp;&amp;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> The logical and operator is used to group two expressions.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>||</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> The logical or operator is used to group two expressions.</p></td></tr></tbody></table></div><div class="confluence-information-macro confluence-information-macro-information"><p class="title">Using and,or operators</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>In <strong>Camel 2.4 or older</strong> the <code>and</code> or <code>or</code> can only be used <strong>once</str
 ong> in a simple language expression. From <strong>Camel 2.5</strong> onwards you can use these operators multiple times.</p></div></div><p>The syntax for AND is:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[${leftValue} OP rightValue and ${leftValue} OP rightValue 
 ]]></script>
 </div></div><p>And the syntax for OR is:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[${leftValue} OP rightValue or ${leftValue} OP rightValue 
 ]]></script>
 </div></div><p>Some examples:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[simple(&quot;${in.header.foo} == &#39;foo&#39;&quot;)
+<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[// exact equals match
+simple(&quot;${in.header.foo} == &#39;foo&#39;&quot;)
+ 
+// ignore case when comparing, so if the header has value FOO this will match
+simple(&quot;${in.header.foo} =~ &#39;foo&#39;&quot;)
 
 // here Camel will type convert &#39;100&#39; into the type of in.header.bar and if its an Integer &#39;100&#39; will also be converter to an Integer
 simple(&quot;${in.header.bar} == &#39;100&#39;&quot;)
@@ -264,7 +268,7 @@ public enum Customer {
     GOLD, SILVER, BRONZE
 }
 ]]></script>
-</div></div><p>And in a <a shape="rect" href="content-based-router.html">Content Based Router</a> we can use the <a shape="rect" href="simple.html">Simple</a> language to refer to this enum, to check the message which enum it matches.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>And in a <a shape="rect" href="content-based-router.html">Content Based Router</a> we can use the <a shape="rect" href="simple.html">Simple</a> language to refer to this enum, to check the message which enum it matches.<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
 from(&quot;direct:start&quot;)
     .choice()