Modified: websites/production/camel/content/book-languages-appendix.html
==============================================================================
--- websites/production/camel/content/book-languages-appendix.html (original)
+++ websites/production/camel/content/book-languages-appendix.html Thu Nov 29 
08:26:57 2018
@@ -98,7 +98,7 @@
 
 <p>To support flexible and powerful <a shape="rect" 
href="enterprise-integration-patterns.html">Enterprise Integration Patterns</a> 
Camel supports various Languages to create an <a shape="rect" 
href="expression.html">Expression</a> or <a shape="rect" 
href="predicate.html">Predicate</a> within either the <a shape="rect" 
href="dsl.html">Routing Domain Specific Language</a> or the <a shape="rect" 
href="xml-configuration.html">Xml Configuration</a>. The following languages 
are supported</p>
 
-<h2 id="BookLanguagesAppendix-BeanLanguage">Bean Language</h2><p>The purpose 
of the Bean Language is to be able to implement an <a shape="rect" 
href="expression.html">Expression</a> or <a shape="rect" 
href="predicate.html">Predicate</a> using a simple method on a bean. The bean 
name is resolved using a <a shape="rect" href="registry.html">Registry</a>, 
such as the <a shape="rect" 
href="spring.html">Spring</a>&#160;<strong><code>ApplicationContext</code></strong>,
 then a method is invoked to evaluate the <a shape="rect" 
href="expression.html">Expression</a> or <a shape="rect" 
href="predicate.html">Predicate</a>. If no method name is provided then one is 
chosen using the rules for <a shape="rect" href="bean-binding.html">Bean 
Binding</a>; using the type of the message body and using any annotations on 
the bean methods.</p><p>The <a shape="rect" href="bean-binding.html">Bean 
Binding</a> rules are used to bind the <a shape="rect" 
href="message.html">Message</a> Exchange to the method pa
 rameters; so you can annotate the bean to extract headers or other expressions 
such as <a shape="rect" href="xpath.html">XPath</a> or <a shape="rect" 
href="xquery.html">XQuery</a> from the message.</p><h3 
id="BookLanguagesAppendix-UsingBeanExpressionsinJava">Using Bean Expressions in 
Java</h3><div class="code panel pdl conf-macro output-block" 
data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+<div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h2 id="BookLanguagesAppendix-BeanLanguage">Bean 
Language</h2><p>The purpose of the Bean Language is to be able to implement an 
<a shape="rect" href="expression.html">Expression</a> or <a shape="rect" 
href="predicate.html">Predicate</a> using a simple method on a bean. The bean 
name is resolved using a <a shape="rect" href="registry.html">Registry</a>, 
such as the <a shape="rect" 
href="spring.html">Spring</a>&#160;<strong><code>ApplicationContext</code></strong>,
 then a method is invoked to evaluate the <a shape="rect" 
href="expression.html">Expression</a> or <a shape="rect" 
href="predicate.html">Predicate</a>. If no method name is provided then one is 
chosen using the rules for <a shape="rect" href="bean-binding.html">Bean 
Binding</a>; using the type of the message body and using any annotations on 
the bean methods.</p><p>The <a shape="rect" href="bean-binding.html">Bean 
Binding</a> rules are used t
 o bind the <a shape="rect" href="message.html">Message</a> Exchange to the 
method parameters; so you can annotate the bean to extract headers or other 
expressions such as <a shape="rect" href="xpath.html">XPath</a> or <a 
shape="rect" href="xquery.html">XQuery</a> from the message.</p><h3 
id="BookLanguagesAppendix-UsingBeanExpressionsinJava">Using Bean Expressions in 
Java</h3><div class="code panel pdl conf-macro output-block" 
data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" 
data-theme="Default">from("activemq:topic:OrdersTopic")
   .filter().method("myBean", "isGoldCustomer")
     .to("activemq:BigSpendersQueue");
@@ -151,8 +151,8 @@ from("activemq:topic:OrdersTopic")
   .filter().method(my, "isGoldCustomer")
   .to("activemq:BigSpendersQueue");
 </pre>
-</div></div><h3 id="BookLanguagesAppendix-OtherExamples">Other 
Examples</h3><p>We have some test cases you can look at if it'll 
help</p><ul><li><a shape="rect" class="external-link" 
href="http://svn.apache.org/repos/asf/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/MethodFilterTest.java";>MethodFilterTest
 </a> is a JUnit test case showing the Java <a shape="rect" 
href="dsl.html">DSL</a> use of the bean expression being used in a 
filter</li><li><a shape="rect" class="external-link" 
href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/aggregator.xml";>aggregator.xml</a>
 is a Spring XML test case for the <a shape="rect" 
href="aggregator.html">Aggregator</a> which uses a bean method call to test for 
the completion of the aggregation.</li></ul><h3 
id="BookLanguagesAppendix-Dependencies">Dependencies</h3><p>The Bean language 
is part of <strong><code>camel-core</code></strong>.</p>
-<h2 id="BookLanguagesAppendix-ConstantExpressionLanguage">Constant Expression 
Language</h2><p>The Constant Expression Language is really just a way to 
specify constant strings as a type of expression.</p><h3 
id="BookLanguagesAppendix-Exampleusage">Example 
usage</h3><p>The&#160;<strong><code>setHeader</code></strong> element of the 
Spring DSL can utilize a constant expression like:</p><div class="code panel 
pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="BookLanguagesAppendix-OtherExamples">Other 
Examples</h3><p>We have some test cases you can look at if it'll 
help</p><ul><li><a shape="rect" class="external-link" 
href="http://svn.apache.org/repos/asf/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/MethodFilterTest.java";>MethodFilterTest
 </a> is a JUnit test case showing the Java <a shape="rect" 
href="dsl.html">DSL</a> use of the bean expression being used in a 
filter</li><li><a shape="rect" class="external-link" 
href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/aggregator.xml";>aggregator.xml</a>
 is a Spring XML test case for the <a shape="rect" 
href="aggregator.html">Aggregator</a> which uses a bean method call to test for 
the completion of the aggregation.</li></ul><h3 
id="BookLanguagesAppendix-Dependencies">Dependencies</h3><p>The Bean language 
is part of <strong><code>camel-core</code></strong>.</p></div>
+<div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h2 
id="BookLanguagesAppendix-ConstantExpressionLanguage">Constant Expression 
Language</h2><p>The Constant Expression Language is really just a way to 
specify constant strings as a type of expression.</p><h3 
id="BookLanguagesAppendix-Exampleusage">Example 
usage</h3><p>The&#160;<strong><code>setHeader</code></strong> element of the 
Spring DSL can utilize a constant expression like:</p><div class="code panel 
pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: xml; 
gutter: false; theme: Default" data-theme="Default">&lt;route&gt;
   &lt;from uri="seda:a"/&gt;
   &lt;setHeader headerName="theHeader"&gt;
@@ -166,8 +166,8 @@ from("activemq:topic:OrdersTopic")
   .setHeader("theHeader", constant("the value"))
   .to("mock:b");
 </pre>
-</div></div><h3 
id="BookLanguagesAppendix-Dependencies.1">Dependencies</h3><p>The Constant 
language is part of <strong><code>camel-core</code></strong>.</p> 
-<h2 id="BookLanguagesAppendix-EL">EL</h2><p>Camel supports the unified JSP and 
JSF Expression Language via the <a shape="rect" class="external-link" 
href="http://juel.sourceforge.net/"; rel="nofollow">JUEL</a> to allow an <a 
shape="rect" href="expression.html">Expression</a> or <a shape="rect" 
href="predicate.html">Predicate</a> to be used in the <a shape="rect" 
href="dsl.html">DSL</a> or <a shape="rect" href="xml-configuration.html">Xml 
Configuration</a>.</p><p>For example you could use EL inside a <a shape="rect" 
href="message-filter.html">Message Filter</a> in XML</p><div class="code panel 
pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 
id="BookLanguagesAppendix-Dependencies.1">Dependencies</h3><p>The Constant 
language is part of <strong><code>camel-core</code></strong>.</p></div> 
+<div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h2 id="BookLanguagesAppendix-EL">EL</h2><p>Camel 
supports the unified JSP and JSF Expression Language via the <a shape="rect" 
class="external-link" href="http://juel.sourceforge.net/"; 
rel="nofollow">JUEL</a> to allow an <a shape="rect" 
href="expression.html">Expression</a> or <a shape="rect" 
href="predicate.html">Predicate</a> to be used in the <a shape="rect" 
href="dsl.html">DSL</a> or <a shape="rect" href="xml-configuration.html">Xml 
Configuration</a>.</p><p>For example you could use EL inside a <a shape="rect" 
href="message-filter.html">Message Filter</a> in XML</p><div class="code panel 
pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">&lt;route&gt;
   &lt;from uri="seda:foo"/&gt;
   &lt;filter&gt;
@@ -195,8 +195,8 @@ from("activemq:topic:OrdersTopic")
   &lt;version&gt;x.x.x&lt;/version&gt;
 &lt;/dependency&gt;
 </pre>
-</div></div><p>Otherwise you'll also need to include <a shape="rect" 
class="external-link" 
href="http://repo2.maven.org/maven2/de/odysseus/juel/juel/2.1.3/juel-2.1.3.jar"; 
rel="nofollow">JUEL</a>.</p>
-<h2 id="BookLanguagesAppendix-HeaderExpressionLanguage">Header Expression 
Language</h2>
+</div></div><p>Otherwise you'll also need to include <a shape="rect" 
class="external-link" 
href="http://repo2.maven.org/maven2/de/odysseus/juel/juel/2.1.3/juel-2.1.3.jar"; 
rel="nofollow">JUEL</a>.</p></div>
+<div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h2 
id="BookLanguagesAppendix-HeaderExpressionLanguage">Header Expression 
Language</h2>
 
 <p>The Header Expression Language allows you to extract values of named 
headers.</p>
 
@@ -218,8 +218,8 @@ from("activemq:topic:OrdersTopic")
 </plain-text-body>
 
 <h3 id="BookLanguagesAppendix-Dependencies.3">Dependencies</h3>
-<p>The Header language is part of <strong>camel-core</strong>.</p>
-<h2 id="BookLanguagesAppendix-JXPath">JXPath</h2>
+<p>The Header language is part of <strong>camel-core</strong>.</p></div>
+<div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h2 id="BookLanguagesAppendix-JXPath">JXPath</h2>
 
 <p>Camel supports <a shape="rect" class="external-link" 
href="http://commons.apache.org/jxpath/";>JXPath</a> to allow <a shape="rect" 
href="xpath.html">XPath</a> expressions to be used on beans in an <a 
shape="rect" href="expression.html">Expression</a> or <a shape="rect" 
href="predicate.html">Predicate</a> to be used in the <a shape="rect" 
href="dsl.html">DSL</a> or <a shape="rect" href="xml-configuration.html">Xml 
Configuration</a>. For example you could use JXPath to create an <a 
shape="rect" href="predicate.html">Predicate</a> in a <a shape="rect" 
href="message-filter.html">Message Filter</a> or as an <a shape="rect" 
href="expression.html">Expression</a> for a <a shape="rect" 
href="recipient-list.html">Recipient List</a>.</p>
 
@@ -312,8 +312,8 @@ This is done using the following syntax:
 &lt;/dependency&gt;
 </plain-text-body>
 
-<p>Otherwise, you'll also need <a shape="rect" class="external-link" 
href="http://repo2.maven.org/maven2/commons-jxpath/commons-jxpath/1.3/commons-jxpath-1.3.jar";
 rel="nofollow">Commons JXPath</a>.</p>
-<h2 id="BookLanguagesAppendix-Mvel">Mvel</h2><p>Camel allows Mvel to be used 
as an <a shape="rect" href="expression.html">Expression</a> or <a shape="rect" 
href="predicate.html">Predicate</a> the <a shape="rect" href="dsl.html">DSL</a> 
or <a shape="rect" href="xml-configuration.html">Xml 
Configuration</a>.</p><p>You could use Mvel to create an <a shape="rect" 
href="predicate.html">Predicate</a> in a <a shape="rect" 
href="message-filter.html">Message Filter</a> or as an <a shape="rect" 
href="expression.html">Expression</a> for a <a shape="rect" 
href="recipient-list.html">Recipient List</a></p><p>You can use Mvel dot 
notation to invoke operations. If you for instance have a body that contains a 
POJO that has a <code>getFamiliyName</code> method then you can construct the 
syntax as follows:</p><div class="code panel pdl conf-macro output-block" 
data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+<p>Otherwise, you'll also need <a shape="rect" class="external-link" 
href="http://repo2.maven.org/maven2/commons-jxpath/commons-jxpath/1.3/commons-jxpath-1.3.jar";
 rel="nofollow">Commons JXPath</a>.</p></div>
+<div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h2 id="BookLanguagesAppendix-Mvel">Mvel</h2><p>Camel 
allows Mvel to be used as an <a shape="rect" 
href="expression.html">Expression</a> or <a shape="rect" 
href="predicate.html">Predicate</a> the <a shape="rect" href="dsl.html">DSL</a> 
or <a shape="rect" href="xml-configuration.html">Xml 
Configuration</a>.</p><p>You could use Mvel to create an <a shape="rect" 
href="predicate.html">Predicate</a> in a <a shape="rect" 
href="message-filter.html">Message Filter</a> or as an <a shape="rect" 
href="expression.html">Expression</a> for a <a shape="rect" 
href="recipient-list.html">Recipient List</a></p><p>You can use Mvel dot 
notation to invoke operations. If you for instance have a body that contains a 
POJO that has a <code>getFamiliyName</code> method then you can construct the 
syntax as follows:</p><div class="code panel pdl conf-macro output-block" 
data-hasbody="true" data-macro-name="code" style="border-wi
 dth: 1px;"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">"request.body.familyName"
    // or 
 "getRequest().getBody().getFamilyName()"
@@ -340,8 +340,8 @@ This is done using the following syntax:
   &lt;version&gt;x.x.x&lt;/version&gt;
 &lt;/dependency&gt;
 </pre>
-</div></div>
-<h2 id="BookLanguagesAppendix-OGNL">OGNL</h2><p>Camel allows <a shape="rect" 
class="external-link" 
href="http://commons.apache.org/proper/commons-ognl/";>OGNL</a> to be used as an 
<a shape="rect" href="expression.html">Expression</a> or <a shape="rect" 
href="predicate.html">Predicate</a> the <a shape="rect" href="dsl.html">DSL</a> 
or <a shape="rect" href="xml-configuration.html">Xml 
Configuration</a>.</p><p>You could use OGNL to create an <a shape="rect" 
href="predicate.html">Predicate</a> in a <a shape="rect" 
href="message-filter.html">Message Filter</a> or as an <a shape="rect" 
href="expression.html">Expression</a> for a <a shape="rect" 
href="recipient-list.html">Recipient List</a></p><p>You can use OGNL dot 
notation to invoke operations. If you for instance have a body that contains a 
POJO that has a <code>getFamilyName</code> method then you can construct the 
syntax as follows:</p><div class="code panel pdl conf-macro output-block" 
data-hasbody="true" data-macro-name="code" style
 ="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div></div>
+<div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h2 id="BookLanguagesAppendix-OGNL">OGNL</h2><p>Camel 
allows <a shape="rect" class="external-link" 
href="http://commons.apache.org/proper/commons-ognl/";>OGNL</a> to be used as an 
<a shape="rect" href="expression.html">Expression</a> or <a shape="rect" 
href="predicate.html">Predicate</a> the <a shape="rect" href="dsl.html">DSL</a> 
or <a shape="rect" href="xml-configuration.html">Xml 
Configuration</a>.</p><p>You could use OGNL to create an <a shape="rect" 
href="predicate.html">Predicate</a> in a <a shape="rect" 
href="message-filter.html">Message Filter</a> or as an <a shape="rect" 
href="expression.html">Expression</a> for a <a shape="rect" 
href="recipient-list.html">Recipient List</a></p><p>You can use OGNL dot 
notation to invoke operations. If you for instance have a body that contains a 
POJO that has a <code>getFamilyName</code> method then you can construct the 
syntax as follows:</p><div class="code
  panel pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">"request.body.familyName"
    // or 
 "getRequest().getBody().getFamilyName()"
@@ -368,10 +368,10 @@ This is done using the following syntax:
   &lt;version&gt;x.x.x&lt;/version&gt;
 &lt;/dependency&gt;
 </pre>
-</div></div><p>Otherwise, you'll also need <a shape="rect" 
class="external-link" 
href="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";
 rel="nofollow">OGNL</a></p>
-<h2 id="BookLanguagesAppendix-PropertyExpressionLanguage">Property Expression 
Language</h2><p>The Property Expression Language allows you to extract values 
of named exchange properties.</p><rich-text-body><p>From <strong>Camel 
2.15</strong> onwards the property language has been renamed to 
exchangeProperty to avoid ambiguity, confusion and clash with properties as a 
general term. So use exchangeProperty instead of property when using Camel 2.15 
onwards.</p></rich-text-body><p>&#160;</p><h3 
id="BookLanguagesAppendix-Exampleusage.2">Example usage</h3><p>The 
recipientList element of the Spring DSL can utilize a property expression 
like:</p><plain-text-body>{snippet:id=e1|lang=xml|url=camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/recipientListWithStringDelimitedProperty.xml}</plain-text-body><p>In
 this case, the list of recipients are contained in the property 
'myProperty'.</p><p>And the same example in Java 
DSL:</p><plain-text-body>{snippet:id
 
=example|lang=java|url=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RecipientListWithStringDelimitedPropertyTest.java}</plain-text-body><p>And
 with a slightly different syntax where you use the builder to the fullest 
(i.e. avoid using parameters but using stacked operations, notice that property 
is not a parameter but a stacked method call)</p><parameter 
ac:name="">java</parameter><plain-text-body>  
from("direct:a").recipientList().property("myProperty");
-</plain-text-body><h3 
id="BookLanguagesAppendix-Dependencies.7">Dependencies</h3><p>The Property 
language is part of <strong>camel-core</strong>.</p>
-<h2 id="BookLanguagesAppendix-ScriptingLanguages">Scripting Languages</h2>
+</div></div><p>Otherwise, you'll also need <a shape="rect" 
class="external-link" 
href="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";
 rel="nofollow">OGNL</a></p></div>
+<div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h2 
id="BookLanguagesAppendix-PropertyExpressionLanguage">Property Expression 
Language</h2><p>The Property Expression Language allows you to extract values 
of named exchange properties.</p><rich-text-body><p>From <strong>Camel 
2.15</strong> onwards the property language has been renamed to 
exchangeProperty to avoid ambiguity, confusion and clash with properties as a 
general term. So use exchangeProperty instead of property when using Camel 2.15 
onwards.</p></rich-text-body><p>&#160;</p><h3 
id="BookLanguagesAppendix-Exampleusage.2">Example usage</h3><p>The 
recipientList element of the Spring DSL can utilize a property expression 
like:</p><plain-text-body>{snippet:id=e1|lang=xml|url=camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/recipientListWithStringDelimitedProperty.xml}</plain-text-body><p>In
 this case, the list of recipients are contained in the property '
 myProperty'.</p><p>And the same example in Java 
DSL:</p><plain-text-body>{snippet:id=example|lang=java|url=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RecipientListWithStringDelimitedPropertyTest.java}</plain-text-body><p>And
 with a slightly different syntax where you use the builder to the fullest 
(i.e. avoid using parameters but using stacked operations, notice that property 
is not a parameter but a stacked method call)</p><parameter 
ac:name="">java</parameter><plain-text-body>  
from("direct:a").recipientList().property("myProperty");
+</plain-text-body><h3 
id="BookLanguagesAppendix-Dependencies.7">Dependencies</h3><p>The Property 
language is part of <strong>camel-core</strong>.</p></div>
+<div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h2 
id="BookLanguagesAppendix-ScriptingLanguages">Scripting Languages</h2>
 
 <p>Camel supports a number of scripting languages which can be used to create 
an <a shape="rect" href="expression.html">Expression</a> or <a shape="rect" 
href="predicate.html">Predicate</a> via the standard <a shape="rect" 
class="external-link" href="http://jcp.org/en/jsr/detail?id=223"; 
rel="nofollow">JSR 223</a> which is a standard part of Java 6. </p>
 
@@ -382,7 +382,7 @@ This is done using the following syntax:
 
 <p>However any <a shape="rect" class="external-link" 
href="http://jcp.org/en/jsr/detail?id=223"; rel="nofollow">JSR 223</a> scripting 
language can be used using the generic DSL methods.</p>
 
-<h3 id="BookLanguagesAppendix-ScriptContextOptions"><code>ScriptContext</code> 
Options</h3><p>&#160;</p><p>The&#160;<code>JSR-223</code> scripting 
language's&#160;<strong><code>ScriptContext</code></strong> is pre-configured 
with the following attributes all set at 
<strong><code>ENGINE_SCOPE</code></strong>.</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Attribute</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Value</p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span><code>camelContext</code><br 
clear="none"></span></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.CamelContext</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Camel 
Context.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>context</code></p></td><td colspan="1" rows
 pan="1" 
class="confluenceTd"><p><code>org.apache.camel.CamelContext</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Camel Context (cannot be 
used in groovy).</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>exchange</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Exchange</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The current 
Exchange.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>properties</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.builder.script.PropertiesFunction</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> 
Function with a <strong><code>resolve</code></strong> method to make it easier 
to use Camels <a shape="rect" href="properties.html">Properties</a> component 
from scripts. See further below for example.</p></td></tr><tr><td colspan="1" 
rows
 pan="1" class="confluenceTd"><p><code>request</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Message</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p>The&#160;<strong><code>IN</code></strong> 
message.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>response</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Message</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Deprecated</strong>: 
The&#160;<strong><code>OUT</code></strong> message. 
The&#160;<strong><code>OUT</code></strong> message 
is&#160;<strong><code>null</code></strong> by default. Use the 
<strong><code>IN</code></strong> message 
instead.</p></td></tr></tbody></table></div><p>See <a shape="rect" 
href="scripting-languages.html">Scripting Languages</a> for the list of 
languages with explicit DSL support.</p><h3 
id="BookLanguagesAppendix-PassingAdditionalArgumentstotheScriptingE
 ngine">Passing Additional Arguments to 
the&#160;<code>ScriptingEngine</code></h3><p><strong>Available from Camel 
2.8</strong></p><p>You can provide additional arguments to the 
<strong><code>ScriptingEngine</code></strong> using a header on the Camel 
message with the key 
<strong><code>CamelScriptArguments</code></strong>.</p><p>Example:</p><div 
class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h3 
id="BookLanguagesAppendix-ScriptContextOptions"><code>ScriptContext</code> 
Options</h3><p>&#160;</p><p>The&#160;<code>JSR-223</code> scripting 
language's&#160;<strong><code>ScriptContext</code></strong> is pre-configured 
with the following attributes all set at 
<strong><code>ENGINE_SCOPE</code></strong>.</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Attribute</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Value</p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span><code>camelContext</code><br 
clear="none"></span></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.CamelContext</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Camel 
Context.</p></td></tr><tr><td colspan="1" r
 owspan="1" class="confluenceTd"><p><code>context</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.CamelContext</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Camel Context (cannot be 
used in groovy).</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>exchange</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Exchange</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The current 
Exchange.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>properties</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.builder.script.PropertiesFunction</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> 
Function with a <strong><code>resolve</code></strong> method to make it easier 
to use Camels <a shape="rect" href="properties.html">Properties</a> componen
 t from scripts. See further below for example.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>request</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Message</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p>The&#160;<strong><code>IN</code></strong> 
message.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>response</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Message</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Deprecated</strong>: 
The&#160;<strong><code>OUT</code></strong> message. 
The&#160;<strong><code>OUT</code></strong> message 
is&#160;<strong><code>null</code></strong> by default. Use the 
<strong><code>IN</code></strong> message 
instead.</p></td></tr></tbody></table></div><p>See <a shape="rect" 
href="scripting-languages.html">Scripting Languages</a> for the list of 
languages with explicit DSL
  support.</p><h3 
id="BookLanguagesAppendix-PassingAdditionalArgumentstotheScriptingEngine">Passing
 Additional Arguments to 
the&#160;<code>ScriptingEngine</code></h3><p><strong>Available from Camel 
2.8</strong></p><p>You can provide additional arguments to the 
<strong><code>ScriptingEngine</code></strong> using a header on the Camel 
message with the key 
<strong><code>CamelScriptArguments</code></strong>.</p><p>Example:</p><div 
class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">public void 
testArgumentsExample() throws Exception {
     getMockEndpoint("mock:result").expectedMessageCount(0);
     getMockEndpoint("mock:unmatched").expectedMessageCount(1);
@@ -411,13 +411,13 @@ This is done using the following syntax:
  &lt;artifactId&gt;camel-script&lt;/artifactId&gt;
  &lt;version&gt;x.x.x&lt;/version&gt;
 &lt;/dependency&gt;</pre>
-</div></div>
+</div></div></div>
 
 <h2 id="BookLanguagesAppendix-SeeAlso">See Also</h2>
 
 <ul><li><a shape="rect" href="languages.html">Languages</a></li><li><a 
shape="rect" href="dsl.html">DSL</a></li><li><a shape="rect" 
href="xml-configuration.html">Xml Configuration</a></li></ul>
- 
-<h2 id="BookLanguagesAppendix-BeanShell">BeanShell</h2>
+</div> 
+<div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h2 
id="BookLanguagesAppendix-BeanShell">BeanShell</h2>
 
 <p>Camel supports <a shape="rect" class="external-link" 
href="http://www.beanshell.org/"; rel="nofollow">BeanShell</a> among other <a 
shape="rect" href="scripting-languages.html">Scripting Languages</a> to allow 
an <a shape="rect" href="expression.html">Expression</a> or <a shape="rect" 
href="predicate.html">Predicate</a> to be used in the <a shape="rect" 
href="dsl.html">DSL</a> or <a shape="rect" href="xml-configuration.html">Xml 
Configuration</a>.</p>
 
@@ -446,7 +446,7 @@ This is done using the following syntax:
 
 <p>You could follow the examples above to create an <a shape="rect" 
href="predicate.html">Predicate</a> in a <a shape="rect" 
href="message-filter.html">Message Filter</a> or as an <a shape="rect" 
href="expression.html">Expression</a> for a <a shape="rect" 
href="recipient-list.html">Recipient List</a></p>
 
-<h3 
id="BookLanguagesAppendix-ScriptContextOptions.1"><code>ScriptContext</code> 
Options</h3><p>&#160;</p><p>The&#160;<code>JSR-223</code> scripting 
language's&#160;<strong><code>ScriptContext</code></strong> is pre-configured 
with the following attributes all set at 
<strong><code>ENGINE_SCOPE</code></strong>.</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Attribute</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Value</p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span><code>camelContext</code><br 
clear="none"></span></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.CamelContext</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Camel 
Context.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>context</code></p></td><td colspan="1" ro
 wspan="1" 
class="confluenceTd"><p><code>org.apache.camel.CamelContext</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Camel Context (cannot be 
used in groovy).</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>exchange</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Exchange</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The current 
Exchange.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>properties</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.builder.script.PropertiesFunction</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> 
Function with a <strong><code>resolve</code></strong> method to make it easier 
to use Camels <a shape="rect" href="properties.html">Properties</a> component 
from scripts. See further below for example.</p></td></tr><tr><td colspan="1" ro
 wspan="1" class="confluenceTd"><p><code>request</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Message</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p>The&#160;<strong><code>IN</code></strong> 
message.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>response</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Message</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Deprecated</strong>: 
The&#160;<strong><code>OUT</code></strong> message. 
The&#160;<strong><code>OUT</code></strong> message 
is&#160;<strong><code>null</code></strong> by default. Use the 
<strong><code>IN</code></strong> message 
instead.</p></td></tr></tbody></table></div><p>See <a shape="rect" 
href="scripting-languages.html">Scripting Languages</a> for the list of 
languages with explicit DSL support.</p><h3 
id="BookLanguagesAppendix-PassingAdditionalArgumentstotheScriptin
 gEngine.1">Passing Additional Arguments to 
the&#160;<code>ScriptingEngine</code></h3><p><strong>Available from Camel 
2.8</strong></p><p>You can provide additional arguments to the 
<strong><code>ScriptingEngine</code></strong> using a header on the Camel 
message with the key 
<strong><code>CamelScriptArguments</code></strong>.</p><p>Example:</p><div 
class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h3 
id="BookLanguagesAppendix-ScriptContextOptions.1"><code>ScriptContext</code> 
Options</h3><p>&#160;</p><p>The&#160;<code>JSR-223</code> scripting 
language's&#160;<strong><code>ScriptContext</code></strong> is pre-configured 
with the following attributes all set at 
<strong><code>ENGINE_SCOPE</code></strong>.</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Attribute</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Value</p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span><code>camelContext</code><br 
clear="none"></span></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.CamelContext</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Camel 
Context.</p></td></tr><tr><td colspan="1"
  rowspan="1" class="confluenceTd"><p><code>context</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.CamelContext</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Camel Context (cannot be 
used in groovy).</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>exchange</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Exchange</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The current 
Exchange.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>properties</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.builder.script.PropertiesFunction</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> 
Function with a <strong><code>resolve</code></strong> method to make it easier 
to use Camels <a shape="rect" href="properties.html">Properties</a> compon
 ent from scripts. See further below for example.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>request</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Message</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p>The&#160;<strong><code>IN</code></strong> 
message.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>response</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Message</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Deprecated</strong>: 
The&#160;<strong><code>OUT</code></strong> message. 
The&#160;<strong><code>OUT</code></strong> message 
is&#160;<strong><code>null</code></strong> by default. Use the 
<strong><code>IN</code></strong> message 
instead.</p></td></tr></tbody></table></div><p>See <a shape="rect" 
href="scripting-languages.html">Scripting Languages</a> for the list of 
languages with explicit D
 SL support.</p><h3 
id="BookLanguagesAppendix-PassingAdditionalArgumentstotheScriptingEngine.1">Passing
 Additional Arguments to 
the&#160;<code>ScriptingEngine</code></h3><p><strong>Available from Camel 
2.8</strong></p><p>You can provide additional arguments to the 
<strong><code>ScriptingEngine</code></strong> using a header on the Camel 
message with the key 
<strong><code>CamelScriptArguments</code></strong>.</p><p>Example:</p><div 
class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">public void 
testArgumentsExample() throws Exception {
     getMockEndpoint("mock:result").expectedMessageCount(0);
     getMockEndpoint("mock:unmatched").expectedMessageCount(1);
@@ -475,8 +475,8 @@ This is done using the following syntax:
  &lt;artifactId&gt;camel-script&lt;/artifactId&gt;
  &lt;version&gt;x.x.x&lt;/version&gt;
 &lt;/dependency&gt;</pre>
-</div></div>
-<h2 id="BookLanguagesAppendix-JavaScript">JavaScript</h2>
+</div></div></div></div>
+<div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h2 
id="BookLanguagesAppendix-JavaScript">JavaScript</h2>
 
 <p>Camel supports <a shape="rect" class="external-link" 
href="http://en.wikipedia.org/wiki/JavaScript"; 
rel="nofollow">JavaScript/ECMAScript</a> among other <a shape="rect" 
href="scripting-languages.html">Scripting Languages</a> to allow an <a 
shape="rect" href="expression.html">Expression</a> or <a shape="rect" 
href="predicate.html">Predicate</a> to be used in the <a shape="rect" 
href="dsl.html">DSL</a> or <a shape="rect" href="xml-configuration.html">Xml 
Configuration</a>.</p>
 
@@ -520,7 +520,7 @@ This is done using the following syntax:
 </pre>
 </div></div>
 
-<h3 
id="BookLanguagesAppendix-ScriptContextOptions.2"><code>ScriptContext</code> 
Options</h3><p>&#160;</p><p>The&#160;<code>JSR-223</code> scripting 
language's&#160;<strong><code>ScriptContext</code></strong> is pre-configured 
with the following attributes all set at 
<strong><code>ENGINE_SCOPE</code></strong>.</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Attribute</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Value</p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span><code>camelContext</code><br 
clear="none"></span></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.CamelContext</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Camel 
Context.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>context</code></p></td><td colspan="1" ro
 wspan="1" 
class="confluenceTd"><p><code>org.apache.camel.CamelContext</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Camel Context (cannot be 
used in groovy).</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>exchange</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Exchange</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The current 
Exchange.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>properties</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.builder.script.PropertiesFunction</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> 
Function with a <strong><code>resolve</code></strong> method to make it easier 
to use Camels <a shape="rect" href="properties.html">Properties</a> component 
from scripts. See further below for example.</p></td></tr><tr><td colspan="1" ro
 wspan="1" class="confluenceTd"><p><code>request</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Message</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p>The&#160;<strong><code>IN</code></strong> 
message.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>response</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Message</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Deprecated</strong>: 
The&#160;<strong><code>OUT</code></strong> message. 
The&#160;<strong><code>OUT</code></strong> message 
is&#160;<strong><code>null</code></strong> by default. Use the 
<strong><code>IN</code></strong> message 
instead.</p></td></tr></tbody></table></div><p>See <a shape="rect" 
href="scripting-languages.html">Scripting Languages</a> for the list of 
languages with explicit DSL support.</p><h3 
id="BookLanguagesAppendix-PassingAdditionalArgumentstotheScriptin
 gEngine.2">Passing Additional Arguments to 
the&#160;<code>ScriptingEngine</code></h3><p><strong>Available from Camel 
2.8</strong></p><p>You can provide additional arguments to the 
<strong><code>ScriptingEngine</code></strong> using a header on the Camel 
message with the key 
<strong><code>CamelScriptArguments</code></strong>.</p><p>Example:</p><div 
class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h3 
id="BookLanguagesAppendix-ScriptContextOptions.2"><code>ScriptContext</code> 
Options</h3><p>&#160;</p><p>The&#160;<code>JSR-223</code> scripting 
language's&#160;<strong><code>ScriptContext</code></strong> is pre-configured 
with the following attributes all set at 
<strong><code>ENGINE_SCOPE</code></strong>.</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Attribute</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Value</p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span><code>camelContext</code><br 
clear="none"></span></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.CamelContext</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Camel 
Context.</p></td></tr><tr><td colspan="1"
  rowspan="1" class="confluenceTd"><p><code>context</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.CamelContext</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Camel Context (cannot be 
used in groovy).</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>exchange</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Exchange</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The current 
Exchange.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>properties</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.builder.script.PropertiesFunction</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> 
Function with a <strong><code>resolve</code></strong> method to make it easier 
to use Camels <a shape="rect" href="properties.html">Properties</a> compon
 ent from scripts. See further below for example.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>request</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Message</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p>The&#160;<strong><code>IN</code></strong> 
message.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>response</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Message</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Deprecated</strong>: 
The&#160;<strong><code>OUT</code></strong> message. 
The&#160;<strong><code>OUT</code></strong> message 
is&#160;<strong><code>null</code></strong> by default. Use the 
<strong><code>IN</code></strong> message 
instead.</p></td></tr></tbody></table></div><p>See <a shape="rect" 
href="scripting-languages.html">Scripting Languages</a> for the list of 
languages with explicit D
 SL support.</p><h3 
id="BookLanguagesAppendix-PassingAdditionalArgumentstotheScriptingEngine.2">Passing
 Additional Arguments to 
the&#160;<code>ScriptingEngine</code></h3><p><strong>Available from Camel 
2.8</strong></p><p>You can provide additional arguments to the 
<strong><code>ScriptingEngine</code></strong> using a header on the Camel 
message with the key 
<strong><code>CamelScriptArguments</code></strong>.</p><p>Example:</p><div 
class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">public void 
testArgumentsExample() throws Exception {
     getMockEndpoint("mock:result").expectedMessageCount(0);
     getMockEndpoint("mock:unmatched").expectedMessageCount(1);
@@ -549,8 +549,8 @@ This is done using the following syntax:
  &lt;artifactId&gt;camel-script&lt;/artifactId&gt;
  &lt;version&gt;x.x.x&lt;/version&gt;
 &lt;/dependency&gt;</pre>
-</div></div>
-<h2 id="BookLanguagesAppendix-Groovy">Groovy</h2><p>Camel supports <a 
shape="rect" class="external-link" href="http://groovy.codehaus.org/"; 
rel="nofollow">Groovy</a> among other <a shape="rect" 
href="scripting-languages.html">Scripting Languages</a> to allow an <a 
shape="rect" href="expression.html">Expression</a> or <a shape="rect" 
href="predicate.html">Predicate</a> to be used in the <a shape="rect" 
href="dsl.html">DSL</a> or <a shape="rect" href="xml-configuration.html">Xml 
Configuration</a>.</p><p>To use a Groovy expression use the following Java 
code</p><div class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div></div></div>
+<div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h2 
id="BookLanguagesAppendix-Groovy">Groovy</h2><p>Camel supports <a shape="rect" 
class="external-link" href="http://groovy.codehaus.org/"; 
rel="nofollow">Groovy</a> among other <a shape="rect" 
href="scripting-languages.html">Scripting Languages</a> to allow an <a 
shape="rect" href="expression.html">Expression</a> or <a shape="rect" 
href="predicate.html">Predicate</a> to be used in the <a shape="rect" 
href="dsl.html">DSL</a> or <a shape="rect" href="xml-configuration.html">Xml 
Configuration</a>.</p><p>To use a Groovy expression use the following Java 
code</p><div class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">... 
groovy("someGroovyExpression") ... 
 </pre>
 </div></div><p>For example you could use the <strong>groovy</strong> function 
to create an <a shape="rect" href="predicate.html">Predicate</a> in a <a 
shape="rect" href="message-filter.html">Message Filter</a> or as an <a 
shape="rect" href="expression.html">Expression</a> for a <a shape="rect" 
href="recipient-list.html">Recipient List</a></p><h3 
id="BookLanguagesAppendix-Dependency">Dependency</h3><p>You should add the 
camel-groovy dependeny when using Groovy language with Camel. The generic 
camel-script is not optimized for best Groovy experience, and hence you should 
add camel-groovy as dependency.</p><h3 
id="BookLanguagesAppendix-CustomizingGroovyShell">Customizing Groovy 
Shell</h3><p>Sometimes you may need to use custom <code>GroovyShell</code> 
instance in your Groovy expressions. To provide custom 
<code>GroovyShell</code>, add implementation of 
the&#160;<code>org.apache.camel.language.groovy.GroovyShellFactory</code> SPI 
interface to your Camel registry. For example after addin
 g the following bean to your Spring context...</p><div class="code panel pdl 
conf-macro output-block" data-hasbody="true" data-macro-name="code" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
@@ -578,7 +578,7 @@ from("queue:foo").filter(groovy("request
             &lt;/filter&gt;
         &lt;/route&gt;
 </pre>
-</div></div><p></p><h3 
id="BookLanguagesAppendix-ScriptContextOptions.3"><code>ScriptContext</code> 
Options</h3><p>&#160;</p><p>The&#160;<code>JSR-223</code> scripting 
language's&#160;<strong><code>ScriptContext</code></strong> is pre-configured 
with the following attributes all set at 
<strong><code>ENGINE_SCOPE</code></strong>.</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Attribute</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Value</p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span><code>camelContext</code><br 
clear="none"></span></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.CamelContext</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Camel 
Context.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>context</code></p></td
 ><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p><code>org.apache.camel.CamelContext</code></p></td><td
 > colspan="1" rowspan="1" class="confluenceTd"><p>The Camel Context (cannot be 
 >used in groovy).</p></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p><code>exchange</code></p></td><td colspan="1" 
 >rowspan="1" 
 >class="confluenceTd"><p><code>org.apache.camel.Exchange</code></p></td><td 
 >colspan="1" rowspan="1" class="confluenceTd"><p>The current 
 >Exchange.</p></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p><code>properties</code></p></td><td colspan="1" 
 >rowspan="1" 
 >class="confluenceTd"><p><code>org.apache.camel.builder.script.PropertiesFunction</code></p></td><td
 > colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> 
 >Function with a <strong><code>resolve</code></strong> method to make it 
 >easier to use Camels <a shape="rect" href="properties.html">Properties</a> 
 >component from scripts. See further below for example.</p></td></tr><tr
 ><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p><code>request</code></p></td><td colspan="1" 
 >rowspan="1" 
 >class="confluenceTd"><p><code>org.apache.camel.Message</code></p></td><td 
 >colspan="1" rowspan="1" 
 >class="confluenceTd"><p>The&#160;<strong><code>IN</code></strong> 
 >message.</p></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p><code>response</code></p></td><td colspan="1" 
 >rowspan="1" 
 >class="confluenceTd"><p><code>org.apache.camel.Message</code></p></td><td 
 >colspan="1" rowspan="1" class="confluenceTd"><p><strong>Deprecated</strong>: 
 >The&#160;<strong><code>OUT</code></strong> message. 
 >The&#160;<strong><code>OUT</code></strong> message 
 >is&#160;<strong><code>null</code></strong> by default. Use the 
 ><strong><code>IN</code></strong> message 
 >instead.</p></td></tr></tbody></table></div><p>See <a shape="rect" 
 >href="scripting-languages.html">Scripting Languages</a> for the list of 
 >languages with explicit DSL support.</p><h3 
 >id="BookLanguagesAppendix-PassingAdditionalArg
 umentstotheScriptingEngine.3">Passing Additional Arguments to 
the&#160;<code>ScriptingEngine</code></h3><p><strong>Available from Camel 
2.8</strong></p><p>You can provide additional arguments to the 
<strong><code>ScriptingEngine</code></strong> using a header on the Camel 
message with the key 
<strong><code>CamelScriptArguments</code></strong>.</p><p>Example:</p><div 
class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><p></p><div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h3 
id="BookLanguagesAppendix-ScriptContextOptions.3"><code>ScriptContext</code> 
Options</h3><p>&#160;</p><p>The&#160;<code>JSR-223</code> scripting 
language's&#160;<strong><code>ScriptContext</code></strong> is pre-configured 
with the following attributes all set at 
<strong><code>ENGINE_SCOPE</code></strong>.</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Attribute</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Value</p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span><code>camelContext</code><br 
clear="none"></span></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.CamelContext</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Camel Context.</p></td></tr>
 <tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>context</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.CamelContext</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Camel Context (cannot be 
used in groovy).</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>exchange</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Exchange</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The current 
Exchange.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>properties</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.builder.script.PropertiesFunction</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> 
Function with a <strong><code>resolve</code></strong> method to make it easier 
to use Camels <a shape="rect" href="properties.html">Pr
 operties</a> component from scripts. See further below for 
example.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>request</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Message</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p>The&#160;<strong><code>IN</code></strong> 
message.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>response</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Message</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Deprecated</strong>: 
The&#160;<strong><code>OUT</code></strong> message. 
The&#160;<strong><code>OUT</code></strong> message 
is&#160;<strong><code>null</code></strong> by default. Use the 
<strong><code>IN</code></strong> message 
instead.</p></td></tr></tbody></table></div><p>See <a shape="rect" 
href="scripting-languages.html">Scripting Languages</a> for the list of langua
 ges with explicit DSL support.</p><h3 
id="BookLanguagesAppendix-PassingAdditionalArgumentstotheScriptingEngine.3">Passing
 Additional Arguments to 
the&#160;<code>ScriptingEngine</code></h3><p><strong>Available from Camel 
2.8</strong></p><p>You can provide additional arguments to the 
<strong><code>ScriptingEngine</code></strong> using a header on the Camel 
message with the key 
<strong><code>CamelScriptArguments</code></strong>.</p><p>Example:</p><div 
class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">public void 
testArgumentsExample() throws Exception {
     getMockEndpoint("mock:result").expectedMessageCount(0);
     getMockEndpoint("mock:unmatched").expectedMessageCount(1);
@@ -607,8 +607,8 @@ from("queue:foo").filter(groovy("request
  &lt;artifactId&gt;camel-script&lt;/artifactId&gt;
  &lt;version&gt;x.x.x&lt;/version&gt;
 &lt;/dependency&gt;</pre>
-</div></div>
-<h2 id="BookLanguagesAppendix-Python">Python</h2><p>Camel supports <a 
shape="rect" class="external-link" href="http://www.python.org/"; 
rel="nofollow">Python</a> among other <a shape="rect" 
href="scripting-languages.html">Scripting Languages</a> to allow an <a 
shape="rect" href="expression.html">Expression</a> or <a shape="rect" 
href="predicate.html">Predicate</a> to be used in the <a shape="rect" 
href="dsl.html">DSL</a> or <a shape="rect" href="xml-configuration.html">Xml 
Configuration</a>.</p><p>To use a Python expression use the following Java 
code</p><div class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div></div><p></p></div>
+<div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h2 
id="BookLanguagesAppendix-Python">Python</h2><p>Camel supports <a shape="rect" 
class="external-link" href="http://www.python.org/"; rel="nofollow">Python</a> 
among other <a shape="rect" href="scripting-languages.html">Scripting 
Languages</a> to allow an <a shape="rect" href="expression.html">Expression</a> 
or <a shape="rect" href="predicate.html">Predicate</a> to be used in the <a 
shape="rect" href="dsl.html">DSL</a> or <a shape="rect" 
href="xml-configuration.html">Xml Configuration</a>.</p><p>To use a Python 
expression use the following Java code</p><div class="code panel pdl conf-macro 
output-block" data-hasbody="true" data-macro-name="code" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; 
gutter: false; theme: Default" data-theme="Default">... 
python("somePythonExpression") ... 
 </pre>
 </div></div><p>For example you could use the <strong>python</strong> function 
to create an <a shape="rect" href="predicate.html">Predicate</a> in a <a 
shape="rect" href="message-filter.html">Message Filter</a> or as an <a 
shape="rect" href="expression.html">Expression</a> for a <a shape="rect" 
href="recipient-list.html">Recipient List</a></p><h3 
id="BookLanguagesAppendix-Example.2">Example</h3><p>In the sample below we use 
Python to create a <a shape="rect" href="predicate.html">Predicate</a> use in 
the route path, to route exchanges from admin users to a special queue.</p><div 
class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
@@ -632,7 +632,7 @@ from("queue:foo").filter(groovy("request
         &lt;/choice&gt;
     &lt;/route&gt;
 </pre>
-</div></div><p></p><h3 
id="BookLanguagesAppendix-ScriptContextOptions.4"><code>ScriptContext</code> 
Options</h3><p>&#160;</p><p>The&#160;<code>JSR-223</code> scripting 
language's&#160;<strong><code>ScriptContext</code></strong> is pre-configured 
with the following attributes all set at 
<strong><code>ENGINE_SCOPE</code></strong>.</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Attribute</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Value</p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span><code>camelContext</code><br 
clear="none"></span></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.CamelContext</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Camel 
Context.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>context</code></p></td
 ><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p><code>org.apache.camel.CamelContext</code></p></td><td
 > colspan="1" rowspan="1" class="confluenceTd"><p>The Camel Context (cannot be 
 >used in groovy).</p></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p><code>exchange</code></p></td><td colspan="1" 
 >rowspan="1" 
 >class="confluenceTd"><p><code>org.apache.camel.Exchange</code></p></td><td 
 >colspan="1" rowspan="1" class="confluenceTd"><p>The current 
 >Exchange.</p></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p><code>properties</code></p></td><td colspan="1" 
 >rowspan="1" 
 >class="confluenceTd"><p><code>org.apache.camel.builder.script.PropertiesFunction</code></p></td><td
 > colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> 
 >Function with a <strong><code>resolve</code></strong> method to make it 
 >easier to use Camels <a shape="rect" href="properties.html">Properties</a> 
 >component from scripts. See further below for example.</p></td></tr><tr
 ><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p><code>request</code></p></td><td colspan="1" 
 >rowspan="1" 
 >class="confluenceTd"><p><code>org.apache.camel.Message</code></p></td><td 
 >colspan="1" rowspan="1" 
 >class="confluenceTd"><p>The&#160;<strong><code>IN</code></strong> 
 >message.</p></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p><code>response</code></p></td><td colspan="1" 
 >rowspan="1" 
 >class="confluenceTd"><p><code>org.apache.camel.Message</code></p></td><td 
 >colspan="1" rowspan="1" class="confluenceTd"><p><strong>Deprecated</strong>: 
 >The&#160;<strong><code>OUT</code></strong> message. 
 >The&#160;<strong><code>OUT</code></strong> message 
 >is&#160;<strong><code>null</code></strong> by default. Use the 
 ><strong><code>IN</code></strong> message 
 >instead.</p></td></tr></tbody></table></div><p>See <a shape="rect" 
 >href="scripting-languages.html">Scripting Languages</a> for the list of 
 >languages with explicit DSL support.</p><h3 
 >id="BookLanguagesAppendix-PassingAdditionalArg
 umentstotheScriptingEngine.4">Passing Additional Arguments to 
the&#160;<code>ScriptingEngine</code></h3><p><strong>Available from Camel 
2.8</strong></p><p>You can provide additional arguments to the 
<strong><code>ScriptingEngine</code></strong> using a header on the Camel 
message with the key 
<strong><code>CamelScriptArguments</code></strong>.</p><p>Example:</p><div 
class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><p></p><div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h3 
id="BookLanguagesAppendix-ScriptContextOptions.4"><code>ScriptContext</code> 
Options</h3><p>&#160;</p><p>The&#160;<code>JSR-223</code> scripting 
language's&#160;<strong><code>ScriptContext</code></strong> is pre-configured 
with the following attributes all set at 
<strong><code>ENGINE_SCOPE</code></strong>.</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Attribute</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Value</p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span><code>camelContext</code><br 
clear="none"></span></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.CamelContext</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Camel Context.</p></td></tr>
 <tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>context</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.CamelContext</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Camel Context (cannot be 
used in groovy).</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>exchange</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Exchange</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The current 
Exchange.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>properties</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.builder.script.PropertiesFunction</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> 
Function with a <strong><code>resolve</code></strong> method to make it easier 
to use Camels <a shape="rect" href="properties.html">Pr
 operties</a> component from scripts. See further below for 
example.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>request</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Message</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p>The&#160;<strong><code>IN</code></strong> 
message.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>response</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Message</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Deprecated</strong>: 
The&#160;<strong><code>OUT</code></strong> message. 
The&#160;<strong><code>OUT</code></strong> message 
is&#160;<strong><code>null</code></strong> by default. Use the 
<strong><code>IN</code></strong> message 
instead.</p></td></tr></tbody></table></div><p>See <a shape="rect" 
href="scripting-languages.html">Scripting Languages</a> for the list of langua
 ges with explicit DSL support.</p><h3 
id="BookLanguagesAppendix-PassingAdditionalArgumentstotheScriptingEngine.4">Passing
 Additional Arguments to 
the&#160;<code>ScriptingEngine</code></h3><p><strong>Available from Camel 
2.8</strong></p><p>You can provide additional arguments to the 
<strong><code>ScriptingEngine</code></strong> using a header on the Camel 
message with the key 
<strong><code>CamelScriptArguments</code></strong>.</p><p>Example:</p><div 
class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">public void 
testArgumentsExample() throws Exception {
     getMockEndpoint("mock:result").expectedMessageCount(0);
     getMockEndpoint("mock:unmatched").expectedMessageCount(1);
@@ -661,8 +661,8 @@ from("queue:foo").filter(groovy("request
  &lt;artifactId&gt;camel-script&lt;/artifactId&gt;
  &lt;version&gt;x.x.x&lt;/version&gt;
 &lt;/dependency&gt;</pre>
-</div></div> 
-<h2 id="BookLanguagesAppendix-PHP">PHP</h2>
+</div></div></div><p></p></div> 
+<div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h2 id="BookLanguagesAppendix-PHP">PHP</h2>
 
 <p>Camel supports <a shape="rect" class="external-link" 
href="http://www.php.net/"; rel="nofollow">PHP</a> among other <a shape="rect" 
href="scripting-languages.html">Scripting Languages</a> to allow an <a 
shape="rect" href="expression.html">Expression</a> or <a shape="rect" 
href="predicate.html">Predicate</a> to be used in the <a shape="rect" 
href="dsl.html">DSL</a> or <a shape="rect" href="xml-configuration.html">Xml 
Configuration</a>.</p>
 
@@ -676,7 +676,7 @@ from("queue:foo").filter(groovy("request
 
 <p>For example you could use the <strong>php</strong> function to create an <a 
shape="rect" href="predicate.html">Predicate</a> in a <a shape="rect" 
href="message-filter.html">Message Filter</a> or as an <a shape="rect" 
href="expression.html">Expression</a> for a <a shape="rect" 
href="recipient-list.html">Recipient List</a></p>
 
-<h3 
id="BookLanguagesAppendix-ScriptContextOptions.5"><code>ScriptContext</code> 
Options</h3><p>&#160;</p><p>The&#160;<code>JSR-223</code> scripting 
language's&#160;<strong><code>ScriptContext</code></strong> is pre-configured 
with the following attributes all set at 
<strong><code>ENGINE_SCOPE</code></strong>.</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Attribute</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Value</p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span><code>camelContext</code><br 
clear="none"></span></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.CamelContext</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Camel 
Context.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>context</code></p></td><td colspan="1" ro
 wspan="1" 
class="confluenceTd"><p><code>org.apache.camel.CamelContext</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Camel Context (cannot be 
used in groovy).</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>exchange</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Exchange</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The current 
Exchange.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>properties</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.builder.script.PropertiesFunction</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> 
Function with a <strong><code>resolve</code></strong> method to make it easier 
to use Camels <a shape="rect" href="properties.html">Properties</a> component 
from scripts. See further below for example.</p></td></tr><tr><td colspan="1" ro
 wspan="1" class="confluenceTd"><p><code>request</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Message</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p>The&#160;<strong><code>IN</code></strong> 
message.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>response</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Message</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Deprecated</strong>: 
The&#160;<strong><code>OUT</code></strong> message. 
The&#160;<strong><code>OUT</code></strong> message 
is&#160;<strong><code>null</code></strong> by default. Use the 
<strong><code>IN</code></strong> message 
instead.</p></td></tr></tbody></table></div><p>See <a shape="rect" 
href="scripting-languages.html">Scripting Languages</a> for the list of 
languages with explicit DSL support.</p><h3 
id="BookLanguagesAppendix-PassingAdditionalArgumentstotheScriptin
 gEngine.5">Passing Additional Arguments to 
the&#160;<code>ScriptingEngine</code></h3><p><strong>Available from Camel 
2.8</strong></p><p>You can provide additional arguments to the 
<strong><code>ScriptingEngine</code></strong> using a header on the Camel 
message with the key 
<strong><code>CamelScriptArguments</code></strong>.</p><p>Example:</p><div 
class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h3 
id="BookLanguagesAppendix-ScriptContextOptions.5"><code>ScriptContext</code> 
Options</h3><p>&#160;</p><p>The&#160;<code>JSR-223</code> scripting 
language's&#160;<strong><code>ScriptContext</code></strong> is pre-configured 
with the following attributes all set at 
<strong><code>ENGINE_SCOPE</code></strong>.</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Attribute</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Value</p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span><code>camelContext</code><br 
clear="none"></span></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.CamelContext</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Camel 
Context.</p></td></tr><tr><td colspan="1"
  rowspan="1" class="confluenceTd"><p><code>context</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.CamelContext</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Camel Context (cannot be 
used in groovy).</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>exchange</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Exchange</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The current 
Exchange.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>properties</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.builder.script.PropertiesFunction</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> 
Function with a <strong><code>resolve</code></strong> method to make it easier 
to use Camels <a shape="rect" href="properties.html">Properties</a> compon
 ent from scripts. See further below for example.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>request</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Message</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p>The&#160;<strong><code>IN</code></strong> 
message.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>response</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Message</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Deprecated</strong>: 
The&#160;<strong><code>OUT</code></strong> message. 
The&#160;<strong><code>OUT</code></strong> message 
is&#160;<strong><code>null</code></strong> by default. Use the 
<strong><code>IN</code></strong> message 
instead.</p></td></tr></tbody></table></div><p>See <a shape="rect" 
href="scripting-languages.html">Scripting Languages</a> for the list of 
languages with explicit D
 SL support.</p><h3 
id="BookLanguagesAppendix-PassingAdditionalArgumentstotheScriptingEngine.5">Passing
 Additional Arguments to 
the&#160;<code>ScriptingEngine</code></h3><p><strong>Available from Camel 
2.8</strong></p><p>You can provide additional arguments to the 
<strong><code>ScriptingEngine</code></strong> using a header on the Camel 
message with the key 
<strong><code>CamelScriptArguments</code></strong>.</p><p>Example:</p><div 
class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">public void 
testArgumentsExample() throws Exception {
     getMockEndpoint("mock:result").expectedMessageCount(0);
     getMockEndpoint("mock:unmatched").expectedMessageCount(1);
@@ -705,8 +705,8 @@ from("queue:foo").filter(groovy("request
  &lt;artifactId&gt;camel-script&lt;/artifactId&gt;
  &lt;version&gt;x.x.x&lt;/version&gt;
 &lt;/dependency&gt;</pre>
-</div></div>
-<h2 id="BookLanguagesAppendix-Ruby">Ruby</h2>
+</div></div></div></div>
+<div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h2 id="BookLanguagesAppendix-Ruby">Ruby</h2>
 
 <p>Camel supports <a shape="rect" class="external-link" 
href="http://www.ruby-lang.org/en/"; rel="nofollow">Ruby</a> among other <a 
shape="rect" href="scripting-languages.html">Scripting Languages</a> to allow 
an <a shape="rect" href="expression.html">Expression</a> or <a shape="rect" 
href="predicate.html">Predicate</a> to be used in the <a shape="rect" 
href="dsl.html">DSL</a> or <a shape="rect" href="xml-configuration.html">Xml 
Configuration</a>.</p>
 
@@ -750,7 +750,7 @@ from("queue:foo").filter(groovy("request
 </pre>
 </div></div>
 
-<h3 
id="BookLanguagesAppendix-ScriptContextOptions.6"><code>ScriptContext</code> 
Options</h3><p>&#160;</p><p>The&#160;<code>JSR-223</code> scripting 
language's&#160;<strong><code>ScriptContext</code></strong> is pre-configured 
with the following attributes all set at 
<strong><code>ENGINE_SCOPE</code></strong>.</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Attribute</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Value</p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span><code>camelContext</code><br 
clear="none"></span></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.CamelContext</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Camel 
Context.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>context</code></p></td><td colspan="1" ro
 wspan="1" 
class="confluenceTd"><p><code>org.apache.camel.CamelContext</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Camel Context (cannot be 
used in groovy).</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>exchange</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Exchange</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The current 
Exchange.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>properties</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.builder.script.PropertiesFunction</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> 
Function with a <strong><code>resolve</code></strong> method to make it easier 
to use Camels <a shape="rect" href="properties.html">Properties</a> component 
from scripts. See further below for example.</p></td></tr><tr><td colspan="1" ro
 wspan="1" class="confluenceTd"><p><code>request</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Message</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p>The&#160;<strong><code>IN</code></strong> 
message.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>response</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Message</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Deprecated</strong>: 
The&#160;<strong><code>OUT</code></strong> message. 
The&#160;<strong><code>OUT</code></strong> message 
is&#160;<strong><code>null</code></strong> by default. Use the 
<strong><code>IN</code></strong> message 
instead.</p></td></tr></tbody></table></div><p>See <a shape="rect" 
href="scripting-languages.html">Scripting Languages</a> for the list of 
languages with explicit DSL support.</p><h3 
id="BookLanguagesAppendix-PassingAdditionalArgumentstotheScriptin
 gEngine.6">Passing Additional Arguments to 
the&#160;<code>ScriptingEngine</code></h3><p><strong>Available from Camel 
2.8</strong></p><p>You can provide additional arguments to the 
<strong><code>ScriptingEngine</code></strong> using a header on the Camel 
message with the key 
<strong><code>CamelScriptArguments</code></strong>.</p><p>Example:</p><div 
class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h3 
id="BookLanguagesAppendix-ScriptContextOptions.6"><code>ScriptContext</code> 
Options</h3><p>&#160;</p><p>The&#160;<code>JSR-223</code> scripting 
language's&#160;<strong><code>ScriptContext</code></strong> is pre-configured 
with the following attributes all set at 
<strong><code>ENGINE_SCOPE</code></strong>.</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Attribute</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Value</p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span><code>camelContext</code><br 
clear="none"></span></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.CamelContext</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Camel 
Context.</p></td></tr><tr><td colspan="1"
  rowspan="1" class="confluenceTd"><p><code>context</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.CamelContext</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Camel Context (cannot be 
used in groovy).</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>exchange</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Exchange</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The current 
Exchange.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>properties</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.builder.script.PropertiesFunction</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> 
Function with a <strong><code>resolve</code></strong> method to make it easier 
to use Camels <a shape="rect" href="properties.html">Properties</a> compon
 ent from scripts. See further below for example.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>request</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Message</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p>The&#160;<strong><code>IN</code></strong> 
message.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>response</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>org.apache.camel.Message</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Deprecated</strong>: 
The&#160;<strong><code>OUT</code></strong> message. 
The&#160;<strong><code>OUT</code></strong> message 
is&#160;<strong><code>null</code></strong> by default. Use the 
<strong><code>IN</code></strong> message 
instead.</p></td></tr></tbody></table></div><p>See <a shape="rect" 
href="scripting-languages.html">Scripting Languages</a> for the list of 
languages with explicit D
 SL support.</p><h3 
id="BookLanguagesAppendix-PassingAdditionalArgumentstotheScriptingEngine.6">Passing
 Additional Arguments to 
the&#160;<code>ScriptingEngine</code></h3><p><strong>Available from Camel 
2.8</strong></p><p>You can provide additional arguments to the 
<strong><code>ScriptingEngine</code></strong> using a header on the Camel 
message with the key 
<strong><code>CamelScriptArguments</code></strong>.</p><p>Example:</p><div 
class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">public void 
testArgumentsExample() throws Exception {
     getMockEndpoint("mock:result").expectedMessageCount(0);
     getMockEndpoint("mock:unmatched").expectedMessageCount(1);
@@ -779,8 +779,8 @@ from("queue:foo").filter(groovy("request
  &lt;artifactId&gt;camel-script&lt;/artifactId&gt;
  &lt;version&gt;x.x.x&lt;/version&gt;
 &lt;/dependency&gt;</pre>
-</div></div>

[... 60 lines stripped ...]

Reply via email to