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 2017/06/30 00:37:20 UTC

svn commit: r1014747 [2/2] - in /websites/production/camel/content: book-in-one-page.html book-languages-appendix.html cache/main.pageCache simple.html

Modified: websites/production/camel/content/simple.html
==============================================================================
--- websites/production/camel/content/simple.html (original)
+++ websites/production/camel/content/simple.html Fri Jun 30 00:37:20 2017
@@ -145,7 +145,7 @@ 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. To enable it the left value must be enclosed in <strong><code>${}</code></strong>.</p><p>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&#160;<strong><code>rightValue</code></strong> can be a&#160;<strong><code>String</code></strong> literal enclosed in&#160;<strong><code>' '</code></strong>, <strong><code>null</code></strong>, a constant value or another expression enclosed in<strong><code> ${}</code></strong>.</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 <em><strong>must</strong></em> be spaces around the operator.</p></div></div><p>Camel will automatically type convert the&#160;<strong><code>rightValue</code></strong> type to the&#160;<strong><code>leftValue</code></strong> type, so it is possible to for example, convert a string into a numeric so you can use&#160;<strong><code>&gt;</code></strong> comparison for numeric values.</p><p>The following operators are support
 ed:</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><code>==</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Equals.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>=~</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong> equals ignore case (will ignore case when comparing&#160;<strong><code>String</code></strong> values).</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>&gt;</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Greater than.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>&gt;=</code></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><code>&lt;</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Less than.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>&lt;=</code></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><code>!=</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Not equals.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>contains</code></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><code>not contains</code></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><code>regex</code></p></td><td colspan="1" rowspan="1" class="co
 nfluenceTd"><p>For matching against a given regular expression pattern defined as a&#160;<strong><code>String</code></strong> value.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>not regex</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For not matching against a given regular expression pattern defined as a&#160;<strong><code>String</code></strong> value.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>in</code></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><p>If you want to include an empty value, then it must be defined using double comma, eg ',,bronze,silver,gold', which<br clear="none">is a set of four values with an empty value and then the three medals.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>not in</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For matchi
 ng if not in a set of values, each element must be separated by comma.</p><p>If you want to include an empty value, then it must be defined using double comma. Example: <strong><code>',,bronze,silver,gold'</code></strong>, which<br clear="none">is a set of four values with an empty value and then the three medals.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>is</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For matching if the left hand side type is an&#160;<strong><code>instanceof</code></strong> the value.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>not is</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For matching if the left hand side type is not an&#160;<strong><code>instanceof</code></strong> the value.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>range</code></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: <strong><code>from..to</code></strong>.</p><p>From <strong>Camel 2.9</strong>: the range values must be enclosed in single quotes.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>not range</code></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: <strong><code>from..to</code></strong>.</p><p>From <strong>Camel 2.9</strong>: the range values must be enclosed in single quotes.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>starts with</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.17.1, 2.18</strong><span>: For testing if the left hand side string starts with the right hand string.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>ends with</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Ca
 mel 2.17.1, 2.18</strong>: For testing if the left hand side string ends with the right hand string.</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><code>++</code></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><code>--</code></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><code>\</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9.3 to 2.10.x</strong> To escape a value, e.g., <strong><code>\$</code></strong>, to indicate a&#160;<strong><code>$</code></strong> sign. Special: Use&#160;<strong><code>\n</code></strong> for new line,&#160;<strong><code>\t</code></strong> for tab, and&#160;<strong><code>\r</code></strong> for carriage return.</p><p><strong>Note:</strong> Escaping is <strong>not</strong> supported using the <a shape="rect" href="file-language.html"><span style="color: rgb(0,0,0);">File Language</span></a><span style="color: rgb(0,0,0);">.</span></p><p><strong>Note:</strong> from Camel 2.11, <em>the escape character is no longer supported</em>. It has been replaced with the following three escape sequences.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>\n</code></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><code>\t</code></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><code>\r</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> To use carriage return character.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>\</code>}</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.18:</strong> To use the&#160;<strong><code>}</code></strong> character as text.</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><code>and</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="color: rgb(255,0,0);"><strong>Deprecated</strong></span>: use&#160;<strong><code>&amp;&amp;</code></strong> instead. The logical and operator is used to group two expressions.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>or</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="color: rgb(255,0,0);"><strong>Deprecated</strong></span>: use&#160;<strong><code>||</code></strong> instead. The logical or operator is used to group two expressions.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>&amp;&amp;</code></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><code>||</code></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 and older</strong> the <strong><code>and</code></strong> or <strong><code>or</code></strong> can only be used <strong>once</strong> in a simple language expression. From <strong>Camel 2.5</strong>: you can use these operators multiple times.</p></div></div><p>The syntax for&#160;<strong><code>AND</code></strong> is:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>Where the&#160;<strong><code>rightValue</code></strong> can be a&#160;<strong><code>String</code></strong> literal enclosed in&#160;<strong><code>' '</code></strong>, <strong><code>null</code></strong>, a constant value or another expression enclosed in<strong><code> ${}</code></strong>.</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 <em><strong>must</strong></em> be spaces around the operator.</p></div></div><p>Camel will automatically type convert the&#160;<strong><code>rightValue</code></strong> type to the&#160;<strong><code>leftValue</code></strong> type, so it is possible to for example, convert a string into a numeric so you can use&#160;<strong><code>&gt;</code></strong> comparison for numeric values.</p><p>The following operators are support
 ed:</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><code>==</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Equals.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>=~</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong> equals ignore case (will ignore case when comparing&#160;<strong><code>String</code></strong> values).</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>&gt;</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Greater than.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>&gt;=</code></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><code>&lt;</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Less than.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>&lt;=</code></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><code>!=</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Not equals.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>contains</code></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><code>not contains</code></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><code>regex</code></p></td><td colspan="1" rowspan="1" class="co
 nfluenceTd"><p>For matching against a given regular expression pattern defined as a&#160;<strong><code>String</code></strong> value.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>not regex</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For not matching against a given regular expression pattern defined as a&#160;<strong><code>String</code></strong> value.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>in</code></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><p>If you want to include an empty value, then it must be defined using double comma, eg ',,bronze,silver,gold', which<br clear="none">is a set of four values with an empty value and then the three medals.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>not in</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For matchi
 ng if not in a set of values, each element must be separated by comma.</p><p>If you want to include an empty value, then it must be defined using double comma. Example: <strong><code>',,bronze,silver,gold'</code></strong>, which<br clear="none">is a set of four values with an empty value and then the three medals.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>is</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For matching if the left hand side type is an&#160;<strong><code>instanceof</code></strong> the value.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>not is</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For matching if the left hand side type is not an&#160;<strong><code>instanceof</code></strong> the value.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>range</code></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: <strong><code>from..to</code></strong>.</p><p>From <strong>Camel 2.9</strong>: the range values must be enclosed in single quotes.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>not range</code></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: <strong><code>from..to</code></strong>.</p><p>From <strong>Camel 2.9</strong>: the range values must be enclosed in single quotes.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>starts with</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.17.1, 2.18</strong><span>: For testing if the left hand side string starts with the right hand string.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>ends with</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Ca
 mel 2.17.1, 2.18</strong>: For testing if the left hand side string ends with the right hand string.</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><code>++</code></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><code>--</code></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><code>\</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9.3 to 2.10.x</strong> To escape a value, e.g., <strong><code>\$</code></strong>, to indicate a&#160;<strong><code>$</code></strong> sign. Special: Use&#160;<strong><code>\n</code></strong> for new line,&#160;<strong><code>\t</code></strong> for tab, and&#160;<strong><code>\r</code></strong> for carriage return.</p><p><strong>Note:</strong> Escaping is <strong>not</strong> supported using the <a shape="rect" href="file-language.html"><span style="color: rgb(0,0,0);">File Language</span></a><span style="color: rgb(0,0,0);">.</span></p><p><strong>Note:</strong> from Camel 2.11, <em>the escape character is no longer supported</em>. It has been replaced with the following three escape sequences.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>\n</code></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><code>\t</code></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><code>\r</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> To use carriage return character.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>\</code>}</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.18:</strong> To use the&#160;<strong><code>}</code></strong> character as text.</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><code>and</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="color: rgb(255,0,0);"><strong>Deprecated</strong></span>: use&#160;<strong><code>&amp;&amp;</code></strong> instead. The logical and operator is used to group two expressions.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>or</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="color: rgb(255,0,0);"><strong>Deprecated</strong></span>: use&#160;<strong><code>||</code></strong> instead. The logical or operator is used to group two expressions.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>&amp;&amp;</code></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><code>||</code></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 and older</strong> the <strong><code>and</code></strong> or <strong><code>or</code></strong> can only be used <strong>once</strong> in a simple language expression.</p><p>From <strong>Camel 2.5</strong>: you can use these operators multiple times.</p></div></div><p>The syntax for&#160;<strong><code>AND</code></strong> 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&#160;<strong><code>OR</code></strong> is:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
@@ -202,7 +202,7 @@ simple(&quot;${in.header.type} == ${bean
 </div></div><p>Ranges are also supported. The range interval requires numbers and both from and end are inclusive. For instance to test whether a value is between&#160;<strong><code>100</code></strong> and <strong><code>199</code>:</strong></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.number} range 100..199&quot;)
 ]]></script>
-</div></div><p>Notice we use <strong><code>..</code></strong> in the range without spaces. It is based on the same syntax as Groovy.</p><p>From <strong>Camel 2.9</strong> onwards the range value must be in single quotes:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>Notice we use <strong><code>..</code></strong> in the range without spaces. It is based on the same syntax as Groovy.</p><p>From <strong>Camel 2.9</strong>: the range value must be in single quotes:</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.number} range &#39;100..199&#39;&quot;)
 ]]></script>
 </div></div><div class="confluence-information-macro confluence-information-macro-tip"><p class="title">Can be used in Spring XML</p><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>As the Spring XML does not have all the power as the Java DSL with all its various builder methods, you have to resort to use some other languages for testing with simple operators. Now you can do this with the simple language. In the sample below we want to test if the header is a widget order:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
@@ -250,7 +250,7 @@ simple(&quot;${in.header.type} == ${bean
   .transform().simple(&quot;OrderId: ${bean:orderIdGenerator}&quot;)
   .to(&quot;mock:reply&quot;);
 ]]></script>
-</div></div><p>Where <code>orderIdGenerator</code> is the id of the bean registered in the <a shape="rect" href="registry.html">Registry</a>. If using Spring then it is the Spring bean id.</p><p>If we want to declare which method to invoke on the order id generator bean we must prepend <strong><code>.method name</code></strong> such as below where we invoke the <code>generateId</code> method.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>Where <strong><code>orderIdGenerator</code></strong> is the id of the bean registered in the <a shape="rect" href="registry.html">Registry</a>. If using Spring then it is the Spring bean id.</p><p>If we want to declare which method to invoke on the order id generator bean we must prepend <strong><code>.method name</code></strong> such as below where we invoke the <strong><code>generateId</code></strong> method.</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[from(&quot;direct:order&quot;)
   .transform().simple(&quot;OrderId: ${bean:orderIdGenerator.generateId}&quot;)
   .to(&quot;mock:reply&quot;);
@@ -260,7 +260,7 @@ simple(&quot;${in.header.type} == ${bean
   .transform().simple(&quot;OrderId: ${bean:orderIdGenerator?method=generateId}&quot;)
   .to(&quot;mock:reply&quot;);
 ]]></script>
-</div></div><p>And from Camel 2.3 you can also convert the body to a given type, for example to ensure that&#160;it is a&#160;<strong><code>String</code></strong> you can do:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>From <strong>Camel 2.3</strong>: you can also convert the body to a given type, for example to ensure that&#160;it is a&#160;<strong><code>String</code></strong> you can do:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[&lt;transform&gt;
   &lt;simple&gt;Hello ${bodyAs(String)} how are you?&lt;/simple&gt;
 &lt;/transform&gt;
@@ -270,12 +270,12 @@ simple(&quot;${in.header.type} == ${bean
   &lt;simple&gt;The gold value is ${header.type[gold]}&lt;/simple&gt;
 &lt;/transform&gt;
 ]]></script>
-</div></div><p>In the code above we lookup the header with name <code>type</code> and regard it as a <strong><code>java.util.Map</code></strong> and we then lookup with the key <strong><code>gold</code></strong> and return the value. If the header is not convertible to Map an exception is thrown. If the header with name <strong><code>type</code></strong> does not exist <strong><code>null</code></strong> is returned.</p><p>From Camel 2.9 you can nest functions, such as shown below:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>In the code above we lookup the header with name <code>type</code> and regard it as a <strong><code>java.util.Map</code></strong> and we then lookup with the key <strong><code>gold</code></strong> and return the value. If the header is not convertible to Map an exception is thrown. If the header with name <strong><code>type</code></strong> does not exist <strong><code>null</code></strong> is returned.</p><p>From <strong>Camel 2.9</strong>: you can nest functions, such as shown below:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[&lt;setHeader headerName=&quot;myHeader&quot;&gt;
   &lt;simple&gt;${properties:${header.someKey}}&lt;/simple&gt;
 &lt;/setHeader&gt;
 ]]></script>
-</div></div><h4 id="Simple-ReferringtoConstantsorEnums">Referring to Constants or Enums</h4><p><strong>Available as of Camel 2.11</strong></p><p>Suppose you have an enum for customers</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h4 id="Simple-ReferringtoConstantsorEnums">Referring to Constants or Enums</h4><p><strong>Available&#160;<strong>from</strong> Camel 2.11</strong></p><p>Suppose you have an enum for customers:</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[
 public enum Customer {
 
@@ -293,17 +293,17 @@ from(&quot;direct:start&quot;)
         .otherwise()
             .to(&quot;mock:other&quot;);
 ]]></script>
-</div></div><h3 id="Simple-UsingNewLinesorTabsinXMLDSLs">Using New Lines or Tabs in XML DSLs</h3><p><strong>Available as of Camel 2.9.3</strong></p><p>From <strong>Camel 2.9.3</strong>, it is easier to specify new lines or tabs in XML DSLs as you can escape the value now</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="Simple-UsingNewLinesorTabsinXMLDSLs">Using New Lines or Tabs in XML DSLs</h3><p><strong>Available&#160;<strong>from</strong> Camel 2.9.3</strong></p><p>From <strong>Camel 2.9.3</strong>: it is easier to specify new lines or tabs in XML DSLs as you can escape the value now</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[&lt;transform&gt;
   &lt;simple&gt;The following text\nis on a new line&lt;/simple&gt;
 &lt;/transform&gt;
 ]]></script>
-</div></div><h3 id="Simple-LeadingandTrailingWhitespaceHandling">Leading and Trailing Whitespace Handling</h3><p><strong>Available as of Camel 2.10.0</strong></p><p>From <strong>Camel 2.10.0</strong>, the&#160;<strong><code>trim</code></strong> attribute of the expression can be used to control whether the leading and trailing whitespace characters are removed or preserved. The default of <strong><code>trim=true</code></strong> removes all whitespace characters.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="Simple-LeadingandTrailingWhitespaceHandling">Leading and Trailing Whitespace Handling</h3><p><strong>Available&#160;<strong>from</strong> Camel 2.10.0</strong></p><p>From <strong>Camel 2.10.0</strong>: the&#160;<strong><code>trim</code></strong> attribute of the expression can be used to control whether the leading and trailing whitespace characters are removed or preserved. The default of <strong><code>trim=true</code></strong> removes all whitespace characters.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[&lt;setBody&gt;
   &lt;simple trim=&quot;false&quot;&gt;You get some trailing whitespace characters.     &lt;/simple&gt;
 &lt;/setBody&gt;
 ]]></script>
-</div></div><h3 id="Simple-SettingtheResultType">Setting the Result Type</h3><p><strong>Available as of Camel 2.8</strong></p><p>You can now provide a result type to the <a shape="rect" href="simple.html">Simple</a> expression, which means the result of the evaluation will be converted to the desired type. This is most usable to define types such as <code>boolean</code>'s, <code>integer</code>'s, etc.</p><p>For example to set a header as a&#160;<strong><code>boolean</code></strong> type you can do:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="Simple-SettingtheResultType">Setting the Result Type</h3><p><strong>Available from Camel 2.8</strong></p><p>You can now provide a result type to the <a shape="rect" href="simple.html">Simple</a> expression, which means the result of the evaluation will be converted to the desired type. This is most usable to define types such as <code>boolean</code>'s, <code>integer</code>'s, etc.</p><p>For example to set a header as a&#160;<strong><code>boolean</code></strong> type you can do:</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[.setHeader(&quot;cool&quot;, simple(&quot;true&quot;, Boolean.class))
 ]]></script>
 </div></div><p>And in XML DSL</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
@@ -312,17 +312,17 @@ from(&quot;direct:start&quot;)
   &lt;simple resultType=&quot;java.lang.Boolean&quot;&gt;true&lt;/simple&gt;
 &lt;/setHeader&gt;
 ]]></script>
-</div></div><h3 id="Simple-ChangingFunctionStartandEndTokens">Changing Function Start and End Tokens</h3><p><strong>Available as of Camel 2.9.1</strong></p><p>You can configure the function start and end tokens -&#160;<strong><code>${}</code></strong> using the setters <strong><code>changeFunctionStartToken</code></strong> and <strong><code>changeFunctionEndToken</code></strong> on <strong><code>SimpleLanguage</code></strong>, using Java code. From Spring XML you can define a&#160;<strong><code>&lt;bean&gt;</code></strong> tag with the new changed tokens in the properties as shown below:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="Simple-ChangingFunctionStartandEndTokens">Changing Function Start and End Tokens</h3><p><strong>Available&#160;<strong>from</strong> Camel 2.9.1</strong></p><p>You can configure the function start and end tokens -&#160;<strong><code>${}</code></strong> using the setters <strong><code>changeFunctionStartToken</code></strong> and <strong><code>changeFunctionEndToken</code></strong> on <strong><code>SimpleLanguage</code></strong>, using Java code. From Spring XML you can define a&#160;<strong><code>&lt;bean&gt;</code></strong> tag with the new changed tokens in the properties as shown below:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[&lt;!-- configure Simple to use custom prefix/suffix tokens --&gt;
 &lt;bean id=&quot;simple&quot; class=&quot;org.apache.camel.language.simple.SimpleLanguage&quot;&gt;
   &lt;property name=&quot;functionStartToken&quot; value=&quot;[&quot;/&gt;
   &lt;property name=&quot;functionEndToken&quot; value=&quot;]&quot;/&gt;
 &lt;/bean&gt;
 ]]></script>
-</div></div><p>In the example above we use&#160;<strong><code>[]</code></strong> as the changed tokens. Notice by changing the start/end token you change those in all the Camel applications which share the same&#160;<strong><code>camel-core</code></strong> on their classpath. For example in an OSGi server this may affect many applications, where as a Web Application as a WAR file it only affects the Web Application.</p><h3 id="Simple-LoadingScriptfromExternalResource">Loading Script from External Resource</h3><p><strong>Available as of Camel 2.11</strong></p><p>You can externalize the script and have Camel load it from a resource such as: <code><strong>classpath:</strong></code>, <code><strong>file:</strong></code>, or <code><strong>http:</strong></code>. This is done using the following syntax: <code><strong>resource:scheme:location</strong></code>, e.g., to refer to a file on the classpath you can do:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeConten
 t panelContent pdl">
+</div></div><p>In the example above we use&#160;<strong><code>[]</code></strong> as the changed tokens. Notice by changing the start/end token you change those in all the Camel applications which share the same&#160;<strong><code>camel-core</code></strong> on their classpath. For example in an OSGi server this may affect many applications, where as a Web Application as a WAR file it only affects the Web Application.</p><h3 id="Simple-LoadingScriptfromExternalResource">Loading Script from External Resource</h3><p><strong>Available&#160;<strong>from</strong> Camel 2.11</strong></p><p>You can externalize the script and have Camel load it from a resource such as: <code><strong>classpath:</strong></code>, <code><strong>file:</strong></code>, or <code><strong>http:</strong></code>. This is done using the following syntax: <code><strong>resource:scheme:location</strong></code>, e.g., to refer to a file on the classpath you can do:</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[.setHeader(&quot;myHeader&quot;).simple(&quot;resource:classpath:mysimple.txt&quot;)
 ]]></script>
-</div></div><h3 id="Simple-SettingSpringbeanstoExchangeproperties">Setting Spring beans to Exchange properties</h3><p><strong>Available as of Camel 2.6</strong></p><p>You can set a spring bean into an exchange property as shown below:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="Simple-SettingSpringbeanstoExchangeproperties">Setting Spring beans to Exchange properties</h3><p><strong>Available&#160;<strong>from</strong> Camel 2.6</strong></p><p>You can set a spring bean into an exchange property as shown below:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[&lt;bean id=&quot;myBeanId&quot; class=&quot;my.package.MyCustomClass&quot;/&gt;
 
 &lt;route&gt;