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 > 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>></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>greater than</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>>=</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><</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>less than</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><=</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 && 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>&&</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 > 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>></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>greater than</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>>=</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><</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>less than</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><=</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 && 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>&&</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("${in.header.foo} ==
'foo'")
+<script class="brush: java; gutter: false; theme: Default"
type="syntaxhighlighter"><![CDATA[// exact equals match
+simple("${in.header.foo} == 'foo'")
+Â
+// ignore case when comparing, so if the header has value FOO this will match
+simple("${in.header.foo} =~ 'foo'")
// here Camel will type convert '100' into the type of in.header.bar
and if its an Integer '100' will also be converter to an Integer
simple("${in.header.bar} == '100'")
@@ -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("direct:start")
.choice()