camel-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From build...@apache.org
Subject svn commit: r962314 [1/2] - in /websites/production/camel/content: book-component-appendix.html book-in-one-page.html cache/main.pageCache jcr.html
Date Wed, 19 Aug 2015 10:19:59 GMT
Author: buildbot
Date: Wed Aug 19 10:19:58 2015
New Revision: 962314

Log:
Production update by buildbot for camel

Modified:
    websites/production/camel/content/book-component-appendix.html
    websites/production/camel/content/book-in-one-page.html
    websites/production/camel/content/cache/main.pageCache
    websites/production/camel/content/jcr.html

Modified: websites/production/camel/content/book-component-appendix.html
==============================================================================
--- websites/production/camel/content/book-component-appendix.html (original)
+++ websites/production/camel/content/book-component-appendix.html Wed Aug 19 10:19:58 2015
@@ -948,7 +948,7 @@ commetdComponent.setSslContextParameters
           password="keystorePassword"/>
     </camel:keyManagers>
   </camel:sslContextParameters>...
-?
+ 
   <bean id="cometd" class="org.apache.camel.component.cometd.CometdComponent">
     <property name="sslContextParameters" ref="sslContextParameters"/>
   </bean>
@@ -1219,11 +1219,11 @@ template.send("direct:alias-verify&
 ]]></script>
 </div></div><p></p><h3 id="BookComponentAppendix-SeeAlso.8">See Also</h3>
 <ul><li><a shape="rect" href="configuring-camel.html">Configuring Camel</a></li><li><a shape="rect" href="component.html">Component</a></li><li><a shape="rect" href="endpoint.html">Endpoint</a></li><li><a shape="rect" href="getting-started.html">Getting Started</a></li></ul><ul><li><a shape="rect" href="crypto.html">Crypto</a> Crypto is also available as a <a shape="rect" href="data-format.html">Data Format</a></li></ul> <h2 id="BookComponentAppendix-CXFComponent">CXF Component</h2><div class="confluence-information-macro confluence-information-macro-note"><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>When using CXF as a consumer, the <a shape="rect" href="cxf-bean-component.html">CXF Bean Component</a> allows you to factor out how message payloads are received from their processing as a RESTful or SOAP web service. This has the potential of using a multitude of transports to cons
 ume web services. The bean component's configuration is also simpler and provides the fastest method to implement web services using Camel and CXF.</p></div></div><div class="confluence-information-macro confluence-information-macro-tip"><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>When using CXF in streaming modes (see DataFormat option), then also read about <a shape="rect" href="stream-caching.html">Stream caching</a>.</p></div></div><p>The <strong>cxf:</strong> component provides integration with <a shape="rect" href="http://cxf.apache.org">Apache CXF</a> for connecting to JAX-WS services hosted in CXF.</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1439464655875 {padding: 0px;}
-div.rbtoc1439464655875 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1439464655875 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1439979470988 {padding: 0px;}
+div.rbtoc1439979470988 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1439979470988 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1439464655875">
+/*]]>*/</style></p><div class="toc-macro rbtoc1439979470988">
 <ul class="toc-indentation"><li><a shape="rect" href="#BookComponentAppendix-CXFComponent">CXF Component</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#BookComponentAppendix-URIformat">URI format</a></li><li><a shape="rect" href="#BookComponentAppendix-Options">Options</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#BookComponentAppendix-Thedescriptionsofthedataformats">The descriptions of the dataformats</a>
@@ -4242,7 +4242,7 @@ public class PatientLookupService {
 ]]></script>
 </div></div><p><strong>sync=true</strong> indicates that this listener is synchronous and therefore will return a HL7 response to the caller. The HL7 codec is setup with <strong>encoder=#hl7encoder </strong>and<strong> decoder=#hl7decoder</strong>. Note that <code>hl7encoder</code> and <code>hl7decoder</code> are just bean IDs, so they could be named differently. The beans can be set in the Spring XML file:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[    &lt;bean id=&quot;hl7decoder&quot; class=&quot;org.apache.camel.component.hl7.HL7MLLPNettyDecoderFactory&quot;/&gt;
-?   &lt;bean id=&quot;hl7encoder&quot; class=&quot;org.apache.camel.component.hl7.HL7MLLPNettyEncoderFactory&quot;/&gt;]]></script>
+    &lt;bean id=&quot;hl7encoder&quot; class=&quot;org.apache.camel.component.hl7.HL7MLLPNettyEncoderFactory&quot;/&gt;]]></script>
 </div></div><p>The endpoint <strong>hl7NettyListener</strong> can then be used in a route as a consumer, as this Java DSL example illustrates:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[    from(&quot;hl7NettyListener&quot;).beanRef(&quot;patientLookupService&quot;);
 ]]></script>
@@ -4303,7 +4303,7 @@ String patientId = msg.getQRD().getWhoSu
       .setHeader(&quot;PATIENT_ID&quot;,terser(&quot;QRD-8(0)-1&quot;))
       .to(&quot;mock:test1&quot;);
 
-  ?// continue processing if extracted field equals a message header
+   // continue processing if extracted field equals a message header
    from(&quot;direct:test2&quot;)
       .filter(terser(&quot;QRD-8(0)-1&quot;).isEqualTo(header(&quot;PATIENT_ID&quot;))
       .to(&quot;mock:test2&quot;);
@@ -4576,9 +4576,9 @@ ProtocolSocketFactory factory =
 
 Protocol.registerProtocol(&quot;https&quot;,
         new Protocol(
-??????? &quot;https&quot;,
-??????? factory,
-??????? 443));
+        &quot;https&quot;,
+        factory,
+        443));
 
 from(&quot;direct:start&quot;)
         .to(&quot;https://mail.google.com/mail/&quot;).to(&quot;mock:results&quot;);
@@ -5208,7 +5208,7 @@ We store big input streams (by default,
 </div></div><h3 id="BookComponentAppendix-URIformat.31">URI format</h3><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[jcr://user:password@repository/path/to/node
 ]]></script>
-</div></div><div class="confluence-information-macro confluence-information-macro-tip"><p class="title">Consumer added</p><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>From <strong>Camel 2.10</strong> onwards you can use consumer as an EventListener in JCR or a producer to read a node by identifier.</p></div></div><h3 id="BookComponentAppendix-Usage.2">Usage</h3><p>The <code>repository</code> element of the URI is used to look up the JCR <code>Repository</code> object in the Camel context registry.</p><h4 id="BookComponentAppendix-Producer.1">Producer</h4><div class="confluenceTableSmall"><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan
 ="1" rowspan="1" class="confluenceTd"><p><code>CamelJcrOperation</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelJcrInsert</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>CamelJcrInsert or CamelJcrGetById operation to use</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelJcrNodeName</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Used to determine the node name to use.</p></td></tr></tbody></table></div></div><p>When a message is sent to a JCR producer endpoint:</p><ul><li>If the operation is CamelJcrInsert: A new node is created in the content repository, all the message headers of the IN message are transformed to <code><a shape="rect" class="external-link" href="http://www.day.com/specs/javax.jcr/javadocs/jcr-2.0/javax/jcr/Value.html" rel="nofollow">javax.jcr.Value</a></code> instances and added to the new 
 node and the node's UUID is returned in the OUT message.</li><li>If the operation is CamelJcrGetById: A new node is retrieved from the repository using the message body as node identifier.</li></ul><div class="confluence-information-macro confluence-information-macro-note"><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Please note that the JCR Producer used message properties instead of message headers in Camel versions earlier than 2.12.3. See <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/CAMEL-7067">https://issues.apache.org/jira/browse/CAMEL-7067</a> for more details.</p></div></div><p>&#160;</p><h4 id="BookComponentAppendix-Consumer.1">Consumer</h4><p>The consumer will connect to JCR periodically and return a List&lt;<a shape="rect" class="external-link" href="http://www.day.com/specs/javax.jcr/javadocs/jcr-2.0/javax/jcr/observation/Event.htm
 l" rel="nofollow">javax.jcr.observation.Event</a>&gt; in the message body.</p><div class="confluenceTableSmall"><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>eventTypes</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A combination of one or more event types encoded as a bit mask value such as javax.jcr.observation.Event.NODE_ADDED, javax.jcr.observation.Event.NODE_REMOVED, etc.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>deep</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><
 p>When it is true, events whose associated parent node is at current path or within its subgraph are received.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>uuids</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Only events whose associated parent node has one of the identifiers in the comma separated uuid list will be received.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>nodeTypeNames</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Only events whose associated parent node has one of the node types (or a subtype of one of the node types) in this list will be received.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>noLocal</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code><
 /p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>If <code>noLocal</code> is <code>true</code>, then events generated by the session through which the listener was registered are ignored. Otherwise, they are not ignored.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>sessionLiveCheckInterval</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>60000</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Interval in milliseconds to wait before each session live checking.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>sessionLiveCheckIntervalOnStart</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>3000</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Interval in milliseconds to wait before the first session live checking.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="font-family: monospace;">username</span></p><
 /td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.15:</strong> Allows to specify the username as a uri parameter instead of in the authority section of the uri</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="font-family: monospace;">password</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.15:</strong> Allows to specify the password as a uri parameter instead of in the authority section of the uri</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="font-family: monospace;">workspaceName</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong><span> Allows to specify a workspace different from default</span></p></td></t
 r></tbody></table></div></div><h3 id="BookComponentAppendix-Example.2">Example</h3><p>The snippet below creates a node named <code>node</code> under the <code>/home/test</code> node in the content repository. One additional property is added to the node as well: <code>my.contents.property</code> which will contain the body of the message being sent.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><div class="confluence-information-macro confluence-information-macro-tip"><p class="title">Consumer added</p><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>From <strong>Camel 2.10</strong> onwards you can use consumer as an EventListener in JCR or a producer to read a node by identifier.</p></div></div><h3 id="BookComponentAppendix-Usage.2">Usage</h3><p>The <code>repository</code> element of the URI is used to look up the JCR <code>Repository</code> object in the Camel context registry.</p><h4 id="BookComponentAppendix-Producer.1">Producer</h4><div class="confluenceTableSmall"><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan
 ="1" rowspan="1" class="confluenceTd"><p><code>CamelJcrOperation</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelJcrInsert</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>CamelJcrInsert or CamelJcrGetById operation to use</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelJcrNodeName</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Used to determine the node name to use.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>CamelJcrNodeType</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>null</code></td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.16:</strong> To use a specify primary node type when creating adding a new node.</td></tr></tbody></table></div></div><p>When a message is sent to a JCR producer endpoint:</p><ul><li>If the operation is CamelJcrIn
 sert: A new node is created in the content repository, all the message headers of the IN message are transformed to <code><a shape="rect" class="external-link" href="http://www.day.com/specs/javax.jcr/javadocs/jcr-2.0/javax/jcr/Value.html" rel="nofollow">javax.jcr.Value</a></code> instances and added to the new node and the node's UUID is returned in the OUT message.</li><li>If the operation is CamelJcrGetById: A new node is retrieved from the repository using the message body as node identifier.</li></ul><div class="confluence-information-macro confluence-information-macro-note"><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Please note that the JCR Producer used message properties instead of message headers in Camel versions earlier than 2.12.3. See <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/CAMEL-7067">https://issues.apache.org/jira/browse/
 CAMEL-7067</a> for more details.</p></div></div><p>&#160;</p><h4 id="BookComponentAppendix-Consumer.1">Consumer</h4><p>The consumer will connect to JCR periodically and return a List&lt;<a shape="rect" class="external-link" href="http://www.day.com/specs/javax.jcr/javadocs/jcr-2.0/javax/jcr/observation/Event.html" rel="nofollow">javax.jcr.observation.Event</a>&gt; in the message body.</p><div class="confluenceTableSmall"><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>eventTypes</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A combination of one or more event types encoded as a bit mask value such a
 s javax.jcr.observation.Event.NODE_ADDED, javax.jcr.observation.Event.NODE_REMOVED, etc.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>deep</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>When it is true, events whose associated parent node is at current path or within its subgraph are received.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>uuids</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Only events whose associated parent node has one of the identifiers in the comma separated uuid list will be received.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>nodeTypeNames</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceT
 d"><p>Only events whose associated parent node has one of the node types (or a subtype of one of the node types) in this list will be received.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>noLocal</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>If <code>noLocal</code> is <code>true</code>, then events generated by the session through which the listener was registered are ignored. Otherwise, they are not ignored.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>sessionLiveCheckInterval</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>60000</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Interval in milliseconds to wait before each session live checking.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>sessionLiveCheckIntervalOnStart</code></p></td><td colspan="1" r
 owspan="1" class="confluenceTd"><p><code>3000</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Interval in milliseconds to wait before the first session live checking.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="font-family: monospace;">username</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.15:</strong> Allows to specify the username as a uri parameter instead of in the authority section of the uri</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="font-family: monospace;">password</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.15:</strong> Allows to specify the password as a uri parameter instead of in the authority section of the uri</p></td></tr><tr><td colspan="1" rowspan="1" class="conflue
 nceTd"><p><span style="font-family: monospace;">workspaceName</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong><span> Allows to specify a workspace different from default</span></p></td></tr></tbody></table></div></div><h3 id="BookComponentAppendix-Example.2">Example</h3><p>The snippet below creates a node named <code>node</code> under the <code>/home/test</code> node in the content repository. One additional property is added to the node as well: <code>my.contents.property</code> which will contain the body of the message being sent.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[from(&quot;direct:a&quot;).setHeader(JcrConstants.JCR_NODE_NAME, constant(&quot;node&quot;))
     .setHeader(&quot;my.contents.property&quot;, body())
     .to(&quot;jcr://user:pass@repository/home/test&quot;);]]></script>
@@ -6135,7 +6135,7 @@ but the following listed types were not
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[public class Jt400RouteBuilder extends RouteBuilder {
     @Override
     public void configure() throws Exception {
-       from(&quot;direct:work&quot;).to(&quot;jt400://GRUPO:ATWORK@server/QSYS.LIB/assets.LIB/compute.PGM?fieldsLength=10,10,512&amp;ouputFieldsIdx=2,3&quot;).to(?direct:play?);
+       from(&quot;direct:work&quot;).to(&quot;jt400://GRUPO:ATWORK@server/QSYS.LIB/assets.LIB/compute.PGM?fieldsLength=10,10,512&amp;ouputFieldsIdx=2,3&quot;).to(“direct:play”);
     }
 }
 ]]></script>

Modified: websites/production/camel/content/book-in-one-page.html
==============================================================================
--- websites/production/camel/content/book-in-one-page.html (original)
+++ websites/production/camel/content/book-in-one-page.html Wed Aug 19 10:19:58 2015
@@ -648,7 +648,7 @@ disruptor-vm:someName[?&lt;option&gt;]
 <script class="brush: plain; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[gtask://queue-name[?options]
 ]]></script>
 </div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Supports asynchronous message processing on Google App Engine by using the <a shape="rect" class="external-link" href="http://code.google.com/appengine/docs/java/taskqueue/" rel="nofollow">task queueing service</a> as message queue. See also <a shape="rect" href="gae.html">Camel Components for Google App Engine</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="googlecalendar.html">Google Calendar</a> / <a shape="rect" href="googlecalendar.html">camel-google-calendar</a></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[google-calendar://endpoint-prefix/endpoint?[options]?]]></script>
+<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[google-calendar://endpoint-prefix/endpoint?[options] ]]></script>
 </div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Supports interaction with <a shape="rect" class="external-link" href="https://developers.google.com/google-apps/calendar/v3/reference/" rel="nofollow">Google Calendar's REST API</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="googledrive.html">Google Drive</a> / <a shape="rect" href="googledrive.html">camel-google-drive</a></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[google-drive://endpoint-prefix/endpoint?[options]]]></script>
 </div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Supports interaction with <a shape="rect" class="external-link" href="https://developers.google.com/drive/v2/reference/" rel="nofollow">Google Drive's REST API</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="googlemail.html">Google Mail</a> / <a shape="rect" href="googlemail.html">camel-google-mail</a></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
@@ -660,7 +660,7 @@ disruptor-vm:someName[?&lt;option&gt;]
 <script class="brush: plain; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[gora:instanceName[?options]
 ]]></script>
 </div></div><p><span><br clear="none"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd">Supports to work with NoSQL databases using the&#160;<a shape="rect" class="external-link" href="http://gora.apache.org/">Apache Gora</a>&#160;framework.</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="gora.html">G</a><a shape="rect" href="grape.html">rape</a>/ camel-grape</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: plain; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[?grape:defaultMavenCoordinates]]></script>
+<script class="brush: plain; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[ grape:defaultMavenCoordinates]]></script>
 </div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><a shape="rect" class="external-link" href="http://docs.groovy-lang.org/latest/html/documentation/grape.html" rel="nofollow">Grape</a> component allows you to fetch, load and manage additional jars when CamelContext is running.</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="geocoder.html">Geocoder</a> / camel-geocoder</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: plain; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[geocoder:&lt;address|latlng:latitude,longitude&gt;[?options]
 ]]></script>
@@ -680,9 +680,9 @@ disruptor-vm:someName[?&lt;option&gt;]
 <script class="brush: plain; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[hdfs://hostName[:port][/path][?options]
 ]]></script>
 </div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For reading/writing from/to an <a shape="rect" class="external-link" href="http://hadoop.apache.org/hdfs/">HDFS</a> filesystem using Hadoop 1.x</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="hdfs2.html">HDFS2</a> / camel-hdfs2</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: plain; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[?hdfs2://hostName[:port][/path][?options]]]></script>
+<script class="brush: plain; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[ hdfs2://hostName[:port][/path][?options]]]></script>
 </div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><span>For reading/writing from/to an </span><a shape="rect" class="external-link" href="http://hadoop.apache.org/hdfs/">HDFS</a><span> filesystem using Hadoop 2.x</span></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="hipchat.html">Hipchat</a> / camel-hipchat</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: plain; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[?hipchat://[host][:port]?options]]></script>
+<script class="brush: plain; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[ hipchat://[host][:port]?options]]></script>
 </div></div></td><td colspan="1" rowspan="1" class="confluenceTd">&#160;For sending/receiving messages to <a shape="rect" class="external-link" href="https://www.hipchat.com" rel="nofollow">Hipchat</a> using v2 API</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="hl7.html">HL7</a> / camel-hl7</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: plain; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[mina2:tcp://hostName[:port][?options]
 ]]></script>
@@ -767,7 +767,7 @@ disruptor-vm:someName[?&lt;option&gt;]
 <script class="brush: plain; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[lucene:searcherName:&lt;insert|query&gt;[?options]
 ]]></script>
 </div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Uses Apache Lucene to perform Java-based indexing and full text based searches using advanced analysis/tokenization capabilities</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="metrics-component.html">Metrics</a> / camel-metrics</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: plain; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[?metrics:[meter|counter|histogram|timer]:metricname[?options]]]></script>
+<script class="brush: plain; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[ metrics:[meter|counter|histogram|timer]:metricname[?options]]]></script>
 </div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="line-height: 1.4285715;">Uses </span><a shape="rect" class="external-link" href="http://metrics.codahale.com/" style="line-height: 1.4285715;" rel="nofollow">Metrics</a><span style="line-height: 1.4285715;">&#160;</span><span style="line-height: 1.4285715;"> to collect application statistics directly from Camel routes.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="mina.html">MINA</a> / camel-mina</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: plain; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[mina:[tcp|udp|vm]:host[:port][?options]
 ]]></script>
@@ -937,7 +937,7 @@ disruptor-vm:someName[?&lt;option&gt;]
 
 ]]></script>
 </div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For working with <a shape="rect" class="external-link" href="http://docs.splunk.com/Documentation/Splunk" rel="nofollow">Splunk</a></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="springbatch.html">SpringBatch</a> / camel-spring-batch</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: plain; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[?spring-batch://jobName[?options]]]></script>
+<script class="brush: plain; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[ spring-batch://jobName[?options]]]></script>
 </div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To bridge Camel and <a shape="rect" class="external-link" href="http://www.springsource.org/spring-batch" rel="nofollow">Spring Batch</a></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="springintegration.html">SpringIntegration</a> / camel-spring-integration</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: plain; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[spring-integration:defaultChannelName[?options]
 ]]></script>
@@ -1067,7 +1067,7 @@ disruptor-vm:someName[?&lt;option&gt;]
 <script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[pi4j-i2c://busId/deviceId[?options]
 ]]></script>
 </div></div><p>&#160;</p><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd">Apache</td><td colspan="1" rowspan="1" class="confluenceTd"><p>i2c Component for RaspberryPi</p><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="https://github.com/camel-labs/camel-labs/tree/master/iot#camel-pubnub-component" rel="nofollow">PubNub</a> / camel-pubnub in <a shape="rect" class="external-link" href="https://github.com/camel-labs/camel-labs/tree/master/iot" rel="nofollow">Camel IoT Labs</a></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[?pubnub://pubnubEndpointType:channel[?options]]]></script>
+<script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[ pubnub://pubnubEndpointType:channel[?options]]]></script>
 </div></div></td><td colspan="1" rowspan="1" class="confluenceTd">Apache</td><td colspan="1" rowspan="1" class="confluenceTd">Camel <a shape="rect" class="external-link" href="https://www.pubnub.com/" rel="nofollow">PubNub</a> component.</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="rcode.html">RCode</a> / camel-rcode in <a shape="rect" class="external-link" href="http://code.google.com/p/camel-extra/" rel="nofollow">camel-extra</a></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[rcode://host[:port]/operation[?options]
 ]]></script>
@@ -3033,22 +3033,22 @@ public class FilterTest extends Abstract
 @ContextConfiguration
 public class MyCamelTest {
 
-? ? @Autowired
-? ? protected CamelContext camelContext;
+    @Autowired
+    protected CamelContext camelContext;
 
-? ? @EndpointInject(uri = &quot;mock:foo&quot;)
-? ? protected MockEndpoint foo;
+    @EndpointInject(uri = &quot;mock:foo&quot;)
+    protected MockEndpoint foo;
 
 
     @Test
     @DirtiesContext
-? ? public void testMocksAreValid() throws Exception {
-        ...? ? ? ?
+    public void testMocksAreValid() throws Exception {
+        ...       
 
-? ? ? ? foo.message(0).header(&quot;bar&quot;).isEqualTo(&quot;ABC&quot;);
+        foo.message(0).header(&quot;bar&quot;).isEqualTo(&quot;ABC&quot;);
 
-? ? ? ? MockEndpoint.assertIsSatisfied(camelContext);
-? ? }
+        MockEndpoint.assertIsSatisfied(camelContext);
+    }
 }
 ]]></script>
 </div></div><h4 id="BookInOnePage-PlainSpringTestusingJUnit4.1.xRunnerwithXMLConfig">Plain Spring Test using JUnit 4.1.x Runner with XML Config</h4><p>You can avoid extending Spring classes by using the SpringJUnit4ClassRunner provided by Spring Test. &#160;This custom JUnit runner means you are free to choose your own class hierarchy while retaining all the capabilities of Spring Test.</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>When using Spring 4.1 onwards, you need to use the @BootstrapWith annotation to configure it to use Camel testing, as shown below.</p></div></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
@@ -3057,22 +3057,22 @@ public class MyCamelTest {
 @ContextConfiguration
 public class MyCamelTest {
 
-? ? @Autowired
-? ? protected CamelContext camelContext;
+    @Autowired
+    protected CamelContext camelContext;
 
-? ? @EndpointInject(uri = &quot;mock:foo&quot;)
-? ? protected MockEndpoint foo;
+    @EndpointInject(uri = &quot;mock:foo&quot;)
+    protected MockEndpoint foo;
 
 
     @Test
     @DirtiesContext
-? ? public void testMocksAreValid() throws Exception {
-        ...? ? ? ?
+    public void testMocksAreValid() throws Exception {
+        ...       
 
-? ? ? ? foo.message(0).header(&quot;bar&quot;).isEqualTo(&quot;ABC&quot;);
+        foo.message(0).header(&quot;bar&quot;).isEqualTo(&quot;ABC&quot;);
 
-? ? ? ? MockEndpoint.assertIsSatisfied(camelContext);
-? ? }
+        MockEndpoint.assertIsSatisfied(camelContext);
+    }
 }
 ]]></script>
 </div></div><h3 id="BookInOnePage-CamelEnhancedSpringTest"><span style="line-height: 1.5625;">Camel Enhanced Spring Test</span></h3><p>Using org.apache.camel.test.junit4.CamelSpringJUnit4ClassRunner&#160;runner with the&#160;<strong>@RunWith</strong>&#160;annotation or extending org.apache.camel.testng.AbstractCamelTestNGSpringContextTests provides the full feature set of Spring Test with support for the feature set provided in the CamelTestSupport classes. &#160;A number of Camel specific annotations have been developed in order to provide for declarative manipulation of the Camel context(s) involved in the test. &#160;These annotations free your test classes from having to inherit from the CamelSpringTestSupport classes and also reduce the amount of code required to customize the tests.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Annotation Class</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p
 >Applies To</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Behavioir If Not Present</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Behavior If Present</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>org.apache.camel.test.spring.DisableJmx</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Class</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Indicates if JMX should be globally disabled in the CamelContexts that are bootstrapped &#160;during the test through the use of Spring Test loaded application contexts.</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>JMX is disabled</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>JMX is disabled</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>org.apache.camel.test.spring.ExcludeRoutes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Cla
 ss</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Indicates if certain route builder classes should be excluded from discovery. &#160;Initializes a org.apache.camel.spi.PackageScanClassResolver&#160;to exclude a set of given classes from being resolved. Typically this is used at test time to exclude certain routes,&#160;which might otherwise be just noisy, from being discovered and initialized.</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Not enabled and no routes are excluded</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No routes are excluded</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>org.apache.camel.test.spring.LazyLoadTypeConverters (Deprecated)</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Class</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Indicates if the&#160;CamelContexts that are bootstrapped during the test through the use of Spring Test&#160;loaded application contexts should
  use lazy loading of type converters.</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Type converters are not lazy loaded</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Type converters are not lazy loaded</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>org.apache.camel.test.spring.MockEndpoints</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Class</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Triggers the auto-mocking of endpoints whose URIs match the provided filter.&#160; The default&#160;filter is "*" which matches all endpoints. &#160;See&#160;org.apache.camel.impl.InterceptSendToMockEndpointStrategy&#160;for&#160;more details on the registration of the mock endpoints.</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Not enabled</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>All endpoints are sniffed and recorded in a mock endpoint.</p></td></tr><tr><td colspan="1" rowspan="1" class="
 confluenceTd"><p>org.apache.camel.test.spring.MockEndpointsAndSkip</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Class</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Triggers the auto-mocking of endpoints whose URIs match the provided filter.&#160; The default&#160;filter is "*", which matches all endpoints. &#160;See&#160;<a shape="rect" class="external-link" href="http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/InterceptSendToMockEndpointStrategy.java?view=markup">org.apache.camel.impl.InterceptSendToMockEndpointStrategy</a>&#160;for&#160;more details on the registration of the mock endpoints. &#160;This annotation will also skip sending the message to matched endpoints as well.</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Not enabled</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>All endpoints are sniffed and recorded in a mock endpoint. &#160;The original endpoint is not invoked.</p></
 td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>org.apache.camel.test.spring.ProvidesBreakpoint</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Method</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Indicates that the annotated method returns an&#160;org.apache.camel.spi.Breakpoint&#160;for use in the test.&#160; Useful for intercepting&#160;traffic to all endpoints or simply for setting a break point in an IDE for debugging.&#160; The method must&#160;be public, static, take no arguments, and return org.apache.camel.spi.Breakpoint.</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>N/A</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The returned Breakpoint is registered in the CamelContext(s)</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>org.apache.camel.test.spring.ShutdownTimeout</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Class</p></td><td colspan="1" rowspan="1" class="confluence
 Td"><p>Indicates to set the shutdown timeout of all CamelContexts instantiated through the&#160;use of Spring Test loaded application contexts.&#160; If no annotation is used, the timeout is&#160;automatically reduced to 10 seconds by the test framework.</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>10 seconds</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>10 seconds</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>org.apache.camel.test.spring.UseAdviceWith</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Class</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Indicates the use of adviceWith() within the test class.&#160; If a class is annotated with&#160;this annotation and UseAdviceWith#value()&#160;returns true, any&#160;CamelContexts bootstrapped during the test through the use of Spring Test loaded&#160;application contexts will not be started automatically.&#160; The test author is responsible for&#160;injecti
 ng the Camel contexts into the test and executing CamelContext#start()&#160;on them&#160;at the appropriate time after any advice has been applied to the routes in the CamelContext(s).</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>CamelContexts do not automatically start.</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>CamelContexts do not automatically start.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">org.apache.camel.test.spring.UseOverridePropertiesWithPropertiesComponent</td><td colspan="1" rowspan="1" class="confluenceTd">Method</td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.16:</strong>Indicates that the annotated method returns a java.util.Properties for use in the test, and that those properties override any existing properties configured on the PropertiesComponent</td><td colspan="1" rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" class="confluenceTd">Override properties</td></tr>
 </tbody></table></div><p>The following example illustrates the use of the <strong>@MockEndpoints</strong>&#160;annotation in order to setup mock endpoints as interceptors on all endpoints using the Camel Log component and the <strong>@DisableJmx</strong> annotation to enable JMX which is disabled during tests by default. &#160;Note that we still use the <strong>@DirtiesContext</strong> annotation to ensure that the CamelContext, routes, and mock endpoints are reinitialized between test methods.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
@@ -3685,11 +3685,11 @@ The tutorial has been designed in two pa
 While not actual tutorials you might find working through the source of the various <a shape="rect" href="examples.html">Examples</a> useful.</li></ul>
 
 <h2 id="BookInOnePage-TutorialonSpringRemotingwithJMS">Tutorial on Spring Remoting with JMS</h2><p>&#160;</p><div class="confluence-information-macro confluence-information-macro-information"><p class="title">Thanks</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>This tutorial was kindly donated to Apache Camel by Martin Gilday.</p></div></div><h2 id="BookInOnePage-Preface">Preface</h2><p>This tutorial aims to guide the reader through the stages of creating a project which uses Camel to facilitate the routing of messages from a JMS queue to a <a shape="rect" class="external-link" href="http://www.springramework.org" rel="nofollow">Spring</a> service. The route works in a synchronous fashion returning a response to the client.</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1439464682212 {padding: 0px;}
-div.rbtoc1439464682212 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1439464682212 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1439979495412 {padding: 0px;}
+div.rbtoc1439979495412 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1439979495412 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1439464682212">
+/*]]>*/</style></p><div class="toc-macro rbtoc1439979495412">
 <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-TutorialonSpringRemotingwithJMS">Tutorial on Spring Remoting with JMS</a></li><li><a shape="rect" href="#BookInOnePage-Preface">Preface</a></li><li><a shape="rect" href="#BookInOnePage-Prerequisites">Prerequisites</a></li><li><a shape="rect" href="#BookInOnePage-Distribution">Distribution</a></li><li><a shape="rect" href="#BookInOnePage-About">About</a></li><li><a shape="rect" href="#BookInOnePage-CreatetheCamelProject">Create the Camel Project</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-UpdatethePOMwithDependencies">Update the POM with Dependencies</a></li></ul>
 </li><li><a shape="rect" href="#BookInOnePage-WritingtheServer">Writing the Server</a>
@@ -5789,11 +5789,11 @@ So we completed the last piece in the pi
 <p>This example has been removed from <strong>Camel 2.9</strong> onwards. Apache Axis 1.4 is a very old and unsupported framework. We encourage users to use <a shape="rect" href="cxf.html">CXF</a> instead of Axis.</p></div></div>
 
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1439464683014 {padding: 0px;}
-div.rbtoc1439464683014 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1439464683014 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1439979495911 {padding: 0px;}
+div.rbtoc1439979495911 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1439979495911 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1439464683014">
+/*]]>*/</style><div class="toc-macro rbtoc1439979495911">
 <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-TutorialusingAxis1.4withApacheCamel">Tutorial using Axis 1.4 with Apache Camel</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-Prerequisites">Prerequisites</a></li><li><a shape="rect" href="#BookInOnePage-Distribution">Distribution</a></li><li><a shape="rect" href="#BookInOnePage-Introduction">Introduction</a></li><li><a shape="rect" href="#BookInOnePage-SettinguptheprojecttorunAxis">Setting up the project to run Axis</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-Maven2">Maven 2</a></li><li><a shape="rect" href="#BookInOnePage-wsdl">wsdl</a></li><li><a shape="rect" href="#BookInOnePage-ConfiguringAxis">Configuring Axis</a></li><li><a shape="rect" href="#BookInOnePage-RunningtheExample">Running the Example</a></li></ul>
@@ -7895,7 +7895,7 @@ result = body * 2 + 1
 ]]></script>
 </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="BookInOnePage-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 adding the following bean to your Spring context...</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[public class CustomGroovyShellFactory implements GroovyShellFactory {
-?
+ 
   public GroovyShell createGroovyShell(Exchange exchange) {
     ImportCustomizer importCustomizer = new ImportCustomizer();
     importCustomizer.addStaticStars(&quot;com.example.Utils&quot;);
@@ -8241,7 +8241,7 @@ simple(&quot;There are ${body.length} li
 </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[// exact equals match
 simple(&quot;${in.header.foo} == &#39;foo&#39;&quot;)
-?
+ 
 // ignore case when comparing, so if the header has value FOO this will match
 simple(&quot;${in.header.foo} =~ &#39;foo&#39;&quot;)
 
@@ -9476,7 +9476,7 @@ oldCSV.setDelimiter(&quot;|&quot;);
 from(&quot;direct:start&quot;)
     .marshal(oldCSV)
     .to(&quot;mock:result&quot;)
-?
+ 
 // Camel version &gt;= 2.15
 from(&quot;direct:start&quot;)
     .marshal(new CsvDataFormat().setDelimiter(&#39;|&#39;))
@@ -9883,7 +9883,7 @@ format.setUnmarshalType(MyPojo.class);]]
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[    &lt;bean id=&quot;myJacksonModule&quot; class=&quot;com.foo.MyModule&quot;&gt;
       ... // configure the module as you want
     &lt;/bean&gt;
-?
+ 
     &lt;dataFormats&gt;
       &lt;json id=&quot;json&quot; library=&quot;Jackson&quot; useList=&quot;true&quot; unmarshalTypeName=&quot;com.foo.MyPojo&quot; moduleRefs=&quot;myJacksonModule&quot;/&gt;
     &lt;/dataFormats&gt;]]></script>
@@ -9910,9 +9910,9 @@ Invoice invoice = exchange.getIn().getBo
  &lt;/dataFormats&gt;]]></script>
 </div></div><p><span style="line-height: 1.5625;">And in Java DSL:</span></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[from(&quot;direct:inPretty&quot;).marshal().json(true);
-?
+ 
 from(&quot;direct:inPretty&quot;).marshal().json(JsonLibrary.Jackson, true);
-?
+ 
 from(&quot;direct:inPretty&quot;).marshal().json(JsonLibrary.Gson, true);]]></script>
 </div></div><p><span style="line-height: 1.5625;">Please note that as of Camel 2.16 there&#8217;re 5 different overloaded <code>json()</code> DSL methods which support the <code>prettyPrint</code> option in combination with other settings for <code>JsonLibrary</code>, <code>unmarshalType</code>, <code>jsonView</code> etc.&#160;</span></p><h3 id="BookInOnePage-DependenciesforXStream"><span style="line-height: 1.5625;">Dependencies for XStream</span></h3><p>To use JSON in your camel routes you need to add the a dependency on <strong>camel-xstream</strong> which implements this data format.</p><p>If you use maven you could just add the following to your pom.xml, substituting the version number for the latest &amp; greatest release (see <a shape="rect" href="download.html">the download page for the latest versions</a>).</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[&lt;dependency&gt;
@@ -9972,7 +9972,7 @@ from(&quot;direct:start&quot;).marshal()
 <p>In this example we unmarshal&#160;a zipped&#160;payload from an ActiveMQ queue called MY_QUEUE&#160;to its original format,&#160;and forward it for&#160;processing&#160;to the UnZippedMessageProcessor. Note that the compression Level employed during the marshalling should be identical to the one employed during unmarshalling to avoid errors.</p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
-from(&quot;activemq:queue:MY_QUEUE&quot;).unmarshal().zip().process(new UnZippedMessageProcessor());?
+from(&quot;activemq:queue:MY_QUEUE&quot;).unmarshal().zip().process(new UnZippedMessageProcessor()); 
 ]]></script>
 </div></div>
 
@@ -10703,7 +10703,7 @@ public class Security {
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[// Camel 2.15 or older (configure by package name)
 DataFormat bindy = new BindyCsvDataFormat(&quot;com.acme.model&quot;);
 
-?
+ 
 // Camel 2.16 onwards (configure by class name)
 DataFormat bindy = new BindyCsvDataFormat(com.acme.model.MyModel.class);]]></script>
 </div></div><h4 id="BookInOnePage-Settinglocale">Setting locale</h4><p>Bindy supports configuring the locale on the dataformat, such as&#160;</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
@@ -10790,7 +10790,7 @@ bindy.setLocale(Locale.getDefault().getI
 
 	&lt;camelContext xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
 
-?
+ 
         &lt;dataFormats&gt;
           &lt;bindy id=&quot;bindyDataformat&quot; type=&quot;Csv&quot; classType=&quot;org.apache.camel.bindy.model.Order&quot;/&gt;
         &lt;/dataFormats&gt;
@@ -11638,13 +11638,13 @@ from(&quot;direct:start&quot;)
  List&lt;String&gt; expectedSigUserIds = new ArrayList&lt;String&gt;();
  expectedSigUserIds.add(&quot;Trusted company1&quot;);
  expectedSigUserIds.add(&quot;Trusted company2&quot;);
-?
+ 
  PGPDataFormat pgpVerifyWithSpecificKeysAndDecrypt = new PGPDataFormat();
  pgpVerifyWithSpecificKeysAndDecrypt.setPassword(&quot;my password&quot;); // for decrypting with private key
  pgpVerifyWithSpecificKeysAndDecrypt.setKeyFileName(keyfileName);
  pgpVerifyWithSpecificKeysAndDecrypt.setSignatureKeyFileName(signatgureKeyfileName);
  pgpVerifyWithSpecificKeysAndDecrypt.setSignatureKeyUserids(expectedSigUserIds); // if you have only one signer identity then you can also use setSignatureKeyUserid(&quot;expected Signer&quot;)
-?
+ 
 from(&quot;direct:start&quot;)
          ...     
         .unmarshal(pgpVerifyWithSpecificKeysAndDecrypt)
@@ -11660,7 +11660,7 @@ from(&quot;direct:start&quot;)
  signerUserIds.add(&quot;company old key&quot;);
  signerUserIds.add(&quot;company new key&quot;);
  pgpSignAndEncryptSeveralSignerKeys.setSignatureKeyUserids(signerUserIds);
-?
+ 
 from(&quot;direct:start&quot;)
          ...     
         .marshal(pgpSignAndEncryptSeveralSignerKeys)
@@ -12936,7 +12936,7 @@ RouteBuilder builder = new RouteBuilder(
 </div></div><p>For further examples of this pattern in use you could look at one of the <a shape="rect" class="external-link" href="http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SplitterTest.java?view=markup">junit test case</a></p><h3 id="BookInOnePage-SplittingaCollection,IteratororArray">Splitting a Collection, Iterator or Array</h3><p>A common use case is to split a Collection, Iterator or Array from the <span class="confluence-link">message</span>. In the sample below we simply use an&#160;<a shape="rect" href="expression.html">Expression</a> to identify the value to split.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[from(&quot;direct:splitUsingBody&quot;).split(body()).to(&quot;mock:result&quot;);
 
-from(&quot;direct:splitUsingHeader&quot;).split(header(&quot;foo&quot;)).to(&quot;mock:result&quot;);?]]></script>
+from(&quot;direct:splitUsingHeader&quot;).split(header(&quot;foo&quot;)).to(&quot;mock:result&quot;); ]]></script>
 </div></div><p>In Spring XML you can use the <a shape="rect" href="simple.html">Simple</a> language to identify the value to split.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[&lt;split&gt;
    &lt;simple&gt;${body}&lt;/simple&gt;
@@ -12946,7 +12946,7 @@ from(&quot;direct:splitUsingHeader&quot;
 &lt;split&gt;
    &lt;simple&gt;${header.foo}&lt;/simple&gt;
    &lt;to uri=&quot;mock:result&quot;/&gt;
-&lt;/split&gt; ?]]></script>
+&lt;/split&gt;  ]]></script>
 </div></div><h3 id="BookInOnePage-UsingTokenizerfrom*">Using Tokenizer from <a shape="rect" href="spring-xml-extensions.html">Spring XML Extensions</a>*</h3><p>You can use the tokenizer expression in the Spring DSL to split bodies or headers using a token. This is a common use-case, so we provided a special <strong>tokenizer</strong> tag for this.<br clear="none"> In the sample below we split the body using a @ as separator. You can of course use comma or space or even a regex pattern, also set regex=true.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
 &lt;camelContext xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
@@ -13544,7 +13544,7 @@ public final class MyListOfNumbersStrate
 ]]></script>
 </div></div><h3 id="BookInOnePage-UsingAggregateController">Using AggregateController</h3><p><strong>Available as of Camel 2.16</strong></p><p>The&#160;<code>org.apache.camel.processor.aggregate.AggregateController</code> allows you to control the aggregate at runtime using Java or JMX API. This can be used to force completing groups of exchanges, or query its current runtime statistics.</p><p>The aggregator provides a default implementation if no custom have been configured, which can be accessed using&#160;<code>getAggregateController()</code>&#160;method. Though it may be easier to configure a controller in the route using aggregateController as shown below:</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[private AggregateController controller = new DefaultAggregateController();
-?
+ 
 from(&quot;direct:start&quot;)
    .aggregate(header(&quot;id&quot;), new MyAggregationStrategy()).completionSize(10).id(&quot;myAggregator&quot;)
       .aggregateController(controller)
@@ -13555,7 +13555,7 @@ from(&quot;direct:start&quot;)
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[int groups = controller.forceCompletionOfAllGroups();]]></script>
 </div></div><p>&#160;</p><p>To configure this from XML DSL</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[&lt;bean id=&quot;myController&quot; class=&quot;org.apache.camel.processor.aggregate.DefaultAggregateController&quot;/&gt;
-?
+ 
   &lt;camelContext xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
         &lt;route&gt;
             &lt;from uri=&quot;direct:start&quot;/&gt;
@@ -16452,7 +16452,7 @@ from(&quot;direct:tap&quot;)
             &lt;constructor-arg value=&quot;com.mycompany.mylogger&quot; /&gt;
         &lt;/bean&gt;
 
-       ?&lt;route id=&quot;moo&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
+        &lt;route id=&quot;moo&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
             &lt;from uri=&quot;direct:moo&quot;/&gt;
             &lt;log message=&quot;Me Got ${body}&quot; loggingLevel=&quot;INFO&quot; loggerRef=&quot;myLogger&quot;/&gt;
             &lt;to uri=&quot;mock:baz&quot;/&gt;
@@ -17328,7 +17328,7 @@ commetdComponent.setSslContextParameters
           password=&quot;keystorePassword&quot;/&gt;
     &lt;/camel:keyManagers&gt;
   &lt;/camel:sslContextParameters&gt;...
-?
+ 
   &lt;bean id=&quot;cometd&quot; class=&quot;org.apache.camel.component.cometd.CometdComponent&quot;&gt;
     &lt;property name=&quot;sslContextParameters&quot; ref=&quot;sslContextParameters&quot;/&gt;
   &lt;/bean&gt;
@@ -17599,11 +17599,11 @@ template.send(&quot;direct:alias-verify&
 ]]></script>
 </div></div><p></p><h3 id="BookInOnePage-SeeAlso.28">See Also</h3>
 <ul><li><a shape="rect" href="configuring-camel.html">Configuring Camel</a></li><li><a shape="rect" href="component.html">Component</a></li><li><a shape="rect" href="endpoint.html">Endpoint</a></li><li><a shape="rect" href="getting-started.html">Getting Started</a></li></ul><ul><li><a shape="rect" href="crypto.html">Crypto</a> Crypto is also available as a <a shape="rect" href="data-format.html">Data Format</a></li></ul> <h2 id="BookInOnePage-CXFComponent">CXF Component</h2><div class="confluence-information-macro confluence-information-macro-note"><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>When using CXF as a consumer, the <a shape="rect" href="cxf-bean-component.html">CXF Bean Component</a> allows you to factor out how message payloads are received from their processing as a RESTful or SOAP web service. This has the potential of using a multitude of transports to consume web 
 services. The bean component's configuration is also simpler and provides the fastest method to implement web services using Camel and CXF.</p></div></div><div class="confluence-information-macro confluence-information-macro-tip"><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>When using CXF in streaming modes (see DataFormat option), then also read about <a shape="rect" href="stream-caching.html">Stream caching</a>.</p></div></div><p>The <strong>cxf:</strong> component provides integration with <a shape="rect" href="http://cxf.apache.org">Apache CXF</a> for connecting to JAX-WS services hosted in CXF.</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1439464703168 {padding: 0px;}
-div.rbtoc1439464703168 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1439464703168 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1439979514466 {padding: 0px;}
+div.rbtoc1439979514466 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1439979514466 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1439464703168">
+/*]]>*/</style></p><div class="toc-macro rbtoc1439979514466">
 <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-CXFComponent">CXF Component</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-URIformat">URI format</a></li><li><a shape="rect" href="#BookInOnePage-Options">Options</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-Thedescriptionsofthedataformats">The descriptions of the dataformats</a>
@@ -20622,7 +20622,7 @@ public class PatientLookupService {
 ]]></script>
 </div></div><p><strong>sync=true</strong> indicates that this listener is synchronous and therefore will return a HL7 response to the caller. The HL7 codec is setup with <strong>encoder=#hl7encoder </strong>and<strong> decoder=#hl7decoder</strong>. Note that <code>hl7encoder</code> and <code>hl7decoder</code> are just bean IDs, so they could be named differently. The beans can be set in the Spring XML file:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[    &lt;bean id=&quot;hl7decoder&quot; class=&quot;org.apache.camel.component.hl7.HL7MLLPNettyDecoderFactory&quot;/&gt;
-?   &lt;bean id=&quot;hl7encoder&quot; class=&quot;org.apache.camel.component.hl7.HL7MLLPNettyEncoderFactory&quot;/&gt;]]></script>
+    &lt;bean id=&quot;hl7encoder&quot; class=&quot;org.apache.camel.component.hl7.HL7MLLPNettyEncoderFactory&quot;/&gt;]]></script>
 </div></div><p>The endpoint <strong>hl7NettyListener</strong> can then be used in a route as a consumer, as this Java DSL example illustrates:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[    from(&quot;hl7NettyListener&quot;).beanRef(&quot;patientLookupService&quot;);
 ]]></script>
@@ -20683,7 +20683,7 @@ String patientId = msg.getQRD().getWhoSu
       .setHeader(&quot;PATIENT_ID&quot;,terser(&quot;QRD-8(0)-1&quot;))
       .to(&quot;mock:test1&quot;);
 
-  ?// continue processing if extracted field equals a message header
+   // continue processing if extracted field equals a message header
    from(&quot;direct:test2&quot;)
       .filter(terser(&quot;QRD-8(0)-1&quot;).isEqualTo(header(&quot;PATIENT_ID&quot;))
       .to(&quot;mock:test2&quot;);
@@ -20956,9 +20956,9 @@ ProtocolSocketFactory factory =
 
 Protocol.registerProtocol(&quot;https&quot;,
         new Protocol(
-??????? &quot;https&quot;,
-??????? factory,
-??????? 443));
+        &quot;https&quot;,
+        factory,
+        443));
 
 from(&quot;direct:start&quot;)
         .to(&quot;https://mail.google.com/mail/&quot;).to(&quot;mock:results&quot;);
@@ -21588,7 +21588,7 @@ We store big input streams (by default,
 </div></div><h3 id="BookInOnePage-URIformat.32">URI format</h3><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[jcr://user:password@repository/path/to/node
 ]]></script>
-</div></div><div class="confluence-information-macro confluence-information-macro-tip"><p class="title">Consumer added</p><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>From <strong>Camel 2.10</strong> onwards you can use consumer as an EventListener in JCR or a producer to read a node by identifier.</p></div></div><h3 id="BookInOnePage-Usage.3">Usage</h3><p>The <code>repository</code> element of the URI is used to look up the JCR <code>Repository</code> object in the Camel context registry.</p><h4 id="BookInOnePage-Producer.1">Producer</h4><div class="confluenceTableSmall"><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1"
  class="confluenceTd"><p><code>CamelJcrOperation</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelJcrInsert</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>CamelJcrInsert or CamelJcrGetById operation to use</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelJcrNodeName</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Used to determine the node name to use.</p></td></tr></tbody></table></div></div><p>When a message is sent to a JCR producer endpoint:</p><ul><li>If the operation is CamelJcrInsert: A new node is created in the content repository, all the message headers of the IN message are transformed to <code><a shape="rect" class="external-link" href="http://www.day.com/specs/javax.jcr/javadocs/jcr-2.0/javax/jcr/Value.html" rel="nofollow">javax.jcr.Value</a></code> instances and added to the new node and the nod
 e's UUID is returned in the OUT message.</li><li>If the operation is CamelJcrGetById: A new node is retrieved from the repository using the message body as node identifier.</li></ul><div class="confluence-information-macro confluence-information-macro-note"><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Please note that the JCR Producer used message properties instead of message headers in Camel versions earlier than 2.12.3. See <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/CAMEL-7067">https://issues.apache.org/jira/browse/CAMEL-7067</a> for more details.</p></div></div><p>&#160;</p><h4 id="BookInOnePage-Consumer.1">Consumer</h4><p>The consumer will connect to JCR periodically and return a List&lt;<a shape="rect" class="external-link" href="http://www.day.com/specs/javax.jcr/javadocs/jcr-2.0/javax/jcr/observation/Event.html" rel="nofollow">javax.
 jcr.observation.Event</a>&gt; in the message body.</p><div class="confluenceTableSmall"><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>eventTypes</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A combination of one or more event types encoded as a bit mask value such as javax.jcr.observation.Event.NODE_ADDED, javax.jcr.observation.Event.NODE_REMOVED, etc.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>deep</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>When it is true, event
 s whose associated parent node is at current path or within its subgraph are received.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>uuids</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Only events whose associated parent node has one of the identifiers in the comma separated uuid list will be received.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>nodeTypeNames</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Only events whose associated parent node has one of the node types (or a subtype of one of the node types) in this list will be received.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>noLocal</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
 rowspan="1" class="confluenceTd"><p>If <code>noLocal</code> is <code>true</code>, then events generated by the session through which the listener was registered are ignored. Otherwise, they are not ignored.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>sessionLiveCheckInterval</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>60000</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Interval in milliseconds to wait before each session live checking.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>sessionLiveCheckIntervalOnStart</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>3000</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Interval in milliseconds to wait before the first session live checking.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="font-family: monospace;">username</span></p></td><td colspan="1" rows
 pan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.15:</strong> Allows to specify the username as a uri parameter instead of in the authority section of the uri</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="font-family: monospace;">password</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.15:</strong> Allows to specify the password as a uri parameter instead of in the authority section of the uri</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="font-family: monospace;">workspaceName</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong><span> Allows to specify a workspace different from default</span></p></td></tr></tbody></table></div>
 </div><h3 id="BookInOnePage-Example.21">Example</h3><p>The snippet below creates a node named <code>node</code> under the <code>/home/test</code> node in the content repository. One additional property is added to the node as well: <code>my.contents.property</code> which will contain the body of the message being sent.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><div class="confluence-information-macro confluence-information-macro-tip"><p class="title">Consumer added</p><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>From <strong>Camel 2.10</strong> onwards you can use consumer as an EventListener in JCR or a producer to read a node by identifier.</p></div></div><h3 id="BookInOnePage-Usage.3">Usage</h3><p>The <code>repository</code> element of the URI is used to look up the JCR <code>Repository</code> object in the Camel context registry.</p><h4 id="BookInOnePage-Producer.1">Producer</h4><div class="confluenceTableSmall"><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1"
  class="confluenceTd"><p><code>CamelJcrOperation</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelJcrInsert</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>CamelJcrInsert or CamelJcrGetById operation to use</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelJcrNodeName</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Used to determine the node name to use.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>CamelJcrNodeType</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>null</code></td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.16:</strong> To use a specify primary node type when creating adding a new node.</td></tr></tbody></table></div></div><p>When a message is sent to a JCR producer endpoint:</p><ul><li>If the operation is CamelJcrInsert: A new node
  is created in the content repository, all the message headers of the IN message are transformed to <code><a shape="rect" class="external-link" href="http://www.day.com/specs/javax.jcr/javadocs/jcr-2.0/javax/jcr/Value.html" rel="nofollow">javax.jcr.Value</a></code> instances and added to the new node and the node's UUID is returned in the OUT message.</li><li>If the operation is CamelJcrGetById: A new node is retrieved from the repository using the message body as node identifier.</li></ul><div class="confluence-information-macro confluence-information-macro-note"><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Please note that the JCR Producer used message properties instead of message headers in Camel versions earlier than 2.12.3. See <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/CAMEL-7067">https://issues.apache.org/jira/browse/CAMEL-7067</a> f
 or more details.</p></div></div><p>&#160;</p><h4 id="BookInOnePage-Consumer.1">Consumer</h4><p>The consumer will connect to JCR periodically and return a List&lt;<a shape="rect" class="external-link" href="http://www.day.com/specs/javax.jcr/javadocs/jcr-2.0/javax/jcr/observation/Event.html" rel="nofollow">javax.jcr.observation.Event</a>&gt; in the message body.</p><div class="confluenceTableSmall"><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>eventTypes</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A combination of one or more event types encoded as a bit mask value such as javax.jcr.observation.
 Event.NODE_ADDED, javax.jcr.observation.Event.NODE_REMOVED, etc.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>deep</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>When it is true, events whose associated parent node is at current path or within its subgraph are received.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>uuids</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Only events whose associated parent node has one of the identifiers in the comma separated uuid list will be received.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>nodeTypeNames</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Only events whose 
 associated parent node has one of the node types (or a subtype of one of the node types) in this list will be received.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>noLocal</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>If <code>noLocal</code> is <code>true</code>, then events generated by the session through which the listener was registered are ignored. Otherwise, they are not ignored.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>sessionLiveCheckInterval</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>60000</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Interval in milliseconds to wait before each session live checking.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>sessionLiveCheckIntervalOnStart</code></p></td><td colspan="1" rowspan="1" class="conflu
 enceTd"><p><code>3000</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Interval in milliseconds to wait before the first session live checking.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="font-family: monospace;">username</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.15:</strong> Allows to specify the username as a uri parameter instead of in the authority section of the uri</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="font-family: monospace;">password</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.15:</strong> Allows to specify the password as a uri parameter instead of in the authority section of the uri</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="f
 ont-family: monospace;">workspaceName</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong><span> Allows to specify a workspace different from default</span></p></td></tr></tbody></table></div></div><h3 id="BookInOnePage-Example.21">Example</h3><p>The snippet below creates a node named <code>node</code> under the <code>/home/test</code> node in the content repository. One additional property is added to the node as well: <code>my.contents.property</code> which will contain the body of the message being sent.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[from(&quot;direct:a&quot;).setHeader(JcrConstants.JCR_NODE_NAME, constant(&quot;node&quot;))
     .setHeader(&quot;my.contents.property&quot;, body())
     .to(&quot;jcr://user:pass@repository/home/test&quot;);]]></script>
@@ -22515,7 +22515,7 @@ but the following listed types were not
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[public class Jt400RouteBuilder extends RouteBuilder {
     @Override
     public void configure() throws Exception {
-       from(&quot;direct:work&quot;).to(&quot;jt400://GRUPO:ATWORK@server/QSYS.LIB/assets.LIB/compute.PGM?fieldsLength=10,10,512&amp;ouputFieldsIdx=2,3&quot;).to(?direct:play?);
+       from(&quot;direct:work&quot;).to(&quot;jt400://GRUPO:ATWORK@server/QSYS.LIB/assets.LIB/compute.PGM?fieldsLength=10,10,512&amp;ouputFieldsIdx=2,3&quot;).to(“direct:play”);
     }
 }
 ]]></script>

Modified: websites/production/camel/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.



Mime
View raw message