Author: buildbot
Date: Thu Apr 21 13:20:48 2016
New Revision: 986241

Log:
Production update by buildbot for camel

Modified:
    websites/production/camel/content/book-in-one-page.html
    websites/production/camel/content/book-pattern-appendix.html
    websites/production/camel/content/cache/main.pageCache
    websites/production/camel/content/hystrix-eip.html
    websites/production/camel/content/recipient-list.html

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 Thu Apr 21 13:20:48 
2016
@@ -122,7 +122,7 @@ ConnectionFactory connectionFactory = ne
 // Note we can explicit name the component
 context.addComponent("test-jms", 
JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
 ]]></script>
-</div></div><p>The above works with any JMS provider. If we know we are using 
<a shape="rect" href="activemq.html">ActiveMQ</a> we can use an even simpler 
form using the <a shape="rect" class="external-link" 
href="http://activemq.apache.org/maven/5.5.0/activemq-camel/apidocs/org/apache/activemq/camel/component/ActiveMQComponent.html#activeMQComponent%28java.lang.String%29";><code>activeMQComponent()</code>
 method</a> while specifying the <a shape="rect" class="external-link" 
href="http://activemq.apache.org/configuring-transports.html";>brokerURL</a> 
used to connect to ActiveMQ</p><div class="error"><span class="error">Error 
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, 
Size: 20</span> </div><p>In normal use, an external system would be firing 
messages or events directly into Camel through one if its <a shape="rect" 
href="components.html">Components</a> but we are going to use the <a 
shape="rect" class="external-link" href="http://camel.apache.org/maven/cu
 
rrent/camel-core/apidocs/org/apache/camel/ProducerTemplate.html">ProducerTemplate</a>
 which is a really easy way for testing your configuration:</p><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>The above works with any JMS provider. If we know we are using 
<a shape="rect" href="activemq.html">ActiveMQ</a> we can use an even simpler 
form using the <a shape="rect" class="external-link" 
href="http://activemq.apache.org/maven/5.5.0/activemq-camel/apidocs/org/apache/activemq/camel/component/ActiveMQComponent.html#activeMQComponent%28java.lang.String%29";><code>activeMQComponent()</code>
 method</a> while specifying the <a shape="rect" class="external-link" 
href="http://activemq.apache.org/configuring-transports.html";>brokerURL</a> 
used to connect to ActiveMQ</p>An error occurred: Unable to retrieve the URL: 
https://git-wip-us.apache.org/repos/asf?p=activemq.git;a=blob_plain;hb=HEAD;f=trunk/activemq-camel/src/test/java/org/apache/activemq/camel/component/ActiveMQRouteTest.java
 status code: 404. The error has been recorded.<p>In normal use, an external 
system would be firing messages or events directly into Camel through one if 
its <a shape="rect" href="components.ht
 ml">Components</a> but we are going to use the <a shape="rect" 
class="external-link" 
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/ProducerTemplate.html";>ProducerTemplate</a>
 which is a really easy way for testing your configuration:</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[
 ProducerTemplate template = context.createProducerTemplate();
 ]]></script>
@@ -1092,7 +1092,7 @@ disruptor-vm:someName[?&lt;option&gt;]
 </div></div></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Apache</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Integration with the Normalized Message Router BUS in 
<a shape="rect" class="external-link" 
href="http://servicemix.apache.org/SMX4NMR/index.html";>ServiceMix 
4.x</a></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" class="external-link" 
href="https://rhiot.gitbooks.io/rhiotdocumentation/content/backend/camel_components/camel_openimaj_component.html";
 rel="nofollow">OpenIMAJ</a> / camel-openimaj in <a shape="rect" 
class="external-link" 
href="https://rhiot.gitbooks.io/rhiotdocumentation/content/"; 
rel="nofollow">rhiot.io project</a><a shape="rect" class="external-link" 
href="https://github.com/rhiot/rhiot/tree/master/docs"; 
rel="nofollow"></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[pi4j-gpio://gpioId[?options]
 ]]></script>
-</div></div></td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;Apache</td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;Camel <a shape="rect" class="external-link" 
href="http://www.openimaj.org/"; rel="nofollow">OpenIMAJ</a> component can be 
used to detect faces in images.</p><p>&#160;</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a shape="rect" 
href="pi4j-gpio.html">pi4j-gpio</a> / camel-pi4j in <a shape="rect" 
class="external-link" 
href="https://rhiot.gitbooks.io/rhiotdocumentation/content/"; 
rel="nofollow">rhiot.io project</a></p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div></td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;Apache</td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;Camel <a shape="rect" class="external-link" 
href="http://www.openimaj.org/"; rel="nofollow">OpenIMAJ</a> component can be 
used to detect faces in images.</p><p>&#160;</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a shape="rect" class="unresolved" 
href="#">pi4j-gpio</a> / camel-pi4j in <a shape="rect" class="external-link" 
href="https://rhiot.gitbooks.io/rhiotdocumentation/content/"; 
rel="nofollow">rhiot.io project</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[pi4j-gpio://gpioId[?options]
 ]]></script>
 </div></div></td><td colspan="1" rowspan="1" 
class="confluenceTd">Apache</td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>GPIO&#160;Component for RaspberryPi based on pi4j 
lib</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"; 
rel="nofollow">pi4j-i2c</a> / camel-pi4j in <a shape="rect" 
class="external-link" 
href="https://rhiot.gitbooks.io/rhiotdocumentation/content/"; 
rel="nofollow">rhiot.io project</a></p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
@@ -2660,96 +2660,7 @@ public class CamelSpringDelegatingTestCo
 }
 // end::example[]
 ]]></script>
-</div></div><h4 
id="BookInOnePage-SpringTestwithXMLConfigandDeclarativeConfigurationExample">Spring
 Test with XML Config and Declarative Configuration Example</h4><p>Here is a 
Camel test support enhanced&#160;<a shape="rect" 
href="spring-testing.html">Spring Testing</a>&#160;<a shape="rect" 
class="external-link" 
href="https://svn.apache.org/repos/asf/camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/spring/CamelSpringJUnit4ClassRunnerPlainTest.java";>example
 using XML Config and pure Spring Test based configuration of the Camel 
Context</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[
-// tag::example[]
-@RunWith(CamelSpringJUnit4ClassRunner.class)
-// must tell Spring to bootstrap with Camel
-@BootstrapWith(CamelTestContextBootstrapper.class)
-@ContextConfiguration()
-// Put here to prevent Spring context caching across tests and test methods 
since some tests inherit
-// from this test and therefore use the same Spring context.  Also because we 
want to reset the
-// Camel context and mock endpoints between test methods automatically.
-@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)
-public class CamelSpringJUnit4ClassRunnerPlainTest {
-    
-    @Autowired
-    protected CamelContext camelContext;
-    
-    @Autowired
-    protected CamelContext camelContext2;
-    
-    @EndpointInject(uri = &quot;mock:a&quot;, context = 
&quot;camelContext&quot;)
-    protected MockEndpoint mockA;
-    
-    @EndpointInject(uri = &quot;mock:b&quot;, context = 
&quot;camelContext&quot;)
-    protected MockEndpoint mockB;
-    
-    @EndpointInject(uri = &quot;mock:c&quot;, context = 
&quot;camelContext2&quot;)
-    protected MockEndpoint mockC;
-    
-    @Produce(uri = &quot;direct:start&quot;, context = 
&quot;camelContext&quot;)
-    protected ProducerTemplate start;
-    
-    @Produce(uri = &quot;direct:start2&quot;, context = 
&quot;camelContext2&quot;)
-    protected ProducerTemplate start2;
-    
-    @Test
-    public void testPositive() throws Exception {
-        assertEquals(ServiceStatus.Started, camelContext.getStatus());
-        assertEquals(ServiceStatus.Started, camelContext2.getStatus());
-        
-        mockA.expectedBodiesReceived(&quot;David&quot;);
-        mockB.expectedBodiesReceived(&quot;Hello David&quot;);
-        mockC.expectedBodiesReceived(&quot;David&quot;);
-        
-        start.sendBody(&quot;David&quot;);
-        start2.sendBody(&quot;David&quot;);
-        
-        MockEndpoint.assertIsSatisfied(camelContext);
-        MockEndpoint.assertIsSatisfied(camelContext2);
-    }
-    
-    @Test
-    public void testJmx() throws Exception {
-        assertEquals(DefaultManagementStrategy.class, 
camelContext.getManagementStrategy().getClass());
-    }
-    
-    @Test
-    public void testShutdownTimeout() throws Exception {
-        assertEquals(10, camelContext.getShutdownStrategy().getTimeout());
-        assertEquals(TimeUnit.SECONDS, 
camelContext.getShutdownStrategy().getTimeUnit());
-    }
-    
-    @Test
-    public void testStopwatch() {
-        StopWatch stopWatch = StopWatchTestExecutionListener.getStopWatch();
-        
-        assertNotNull(stopWatch);
-        assertTrue(stopWatch.taken() &lt; 100);
-    }
-    
-    @Test
-    public void testExcludedRoute() {
-        assertNotNull(camelContext.getRoute(&quot;excludedRoute&quot;));
-    }
-    
-    @Test
-    public void testProvidesBreakpoint() {
-        assertNull(camelContext.getDebugger());
-        assertNull(camelContext2.getDebugger());
-    }
-
-    @SuppressWarnings(&quot;deprecation&quot;)
-    @Test
-    public void testLazyLoadTypeConverters() {
-        assertTrue(camelContext.isLazyLoadTypeConverters());
-        assertTrue(camelContext2.isLazyLoadTypeConverters());
-    }
-}
-// end::example[]
-]]></script>
-</div></div>Notice how a custom test runner is used with 
the&#160;<code>@RunWith</code>&#160;annotation to support the features 
of&#160;<code>CamelTestSupport</code>&#160;through annotations on the test 
class. See&#160;<a shape="rect" href="spring-testing.html">Spring 
Testing</a>&#160;for a list of annotations you can use in your tests.<h4 
id="BookInOnePage-BlueprintTest">Blueprint Test</h4><p>Here is the <a 
shape="rect" href="blueprint-testing.html">Blueprint Testing</a> <a 
shape="rect" class="external-link" 
href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/DebugBlueprintTest.java";>example
 using XML Config</a>:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+</div></div><h4 
id="BookInOnePage-SpringTestwithXMLConfigandDeclarativeConfigurationExample">Spring
 Test with XML Config and Declarative Configuration Example</h4><p>Here is a 
Camel test support enhanced&#160;<a shape="rect" 
href="spring-testing.html">Spring Testing</a>&#160;<a shape="rect" 
class="external-link" 
href="https://svn.apache.org/repos/asf/camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/spring/CamelSpringJUnit4ClassRunnerPlainTest.java";>example
 using XML Config and pure Spring Test based configuration of the Camel 
Context</a>:An error occurred: Unable to retrieve the URL: 
https://git-wip-us.apache.org/repos/asf?p=camel.git;a=blob_plain;hb=HEAD;f=components/camel-test-spring/src/test/java/org/apache/camel/test/spring/CamelSpringJUnit4ClassRunnerPlainTest.java
 status code: 404. The error has been recorded.Notice how a custom test runner 
is used with the&#160;<code>@RunWith</code>&#160;annotation to support the 
features of&#160;<code>CamelTestSup
 port</code>&#160;through annotations on the test class. See&#160;<a 
shape="rect" href="spring-testing.html">Spring Testing</a>&#160;for a list of 
annotations you can use in your tests.</p><h4 
id="BookInOnePage-BlueprintTest">Blueprint Test</h4><p>Here is the <a 
shape="rect" href="blueprint-testing.html">Blueprint Testing</a> <a 
shape="rect" class="external-link" 
href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/DebugBlueprintTest.java";>example
 using XML Config</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[
 // tag::example[]
 // to use camel-test-blueprint, then extend the CamelBlueprintTestSupport 
class,
@@ -3701,11 +3612,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.rbtoc1460711882990 {padding: 0px;}
-div.rbtoc1460711882990 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1460711882990 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1461244685104 {padding: 0px;}
+div.rbtoc1461244685104 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1461244685104 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1460711882990">
+/*]]>*/</style></p><div class="toc-macro rbtoc1461244685104">
 <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>
@@ -5820,11 +5731,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.rbtoc1460711883991 {padding: 0px;}
-div.rbtoc1460711883991 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1460711883991 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1461244686087 {padding: 0px;}
+div.rbtoc1461244686087 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1461244686087 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1460711883991">
+/*]]>*/</style><div class="toc-macro rbtoc1461244686087">
 <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>
@@ -12730,7 +12641,7 @@ public String slip(String body, @Propert
 </div></div><p>In the above we can use the <a shape="rect" 
href="parameter-binding-annotations.html">Parameter Binding Annotations</a> to 
bind different parts of the <a shape="rect" href="message.html">Message</a> to 
method parameters or use an <a shape="rect" 
href="expression.html">Expression</a> such as using <a shape="rect" 
href="xpath.html">XPath</a> or <a shape="rect" 
href="xquery.html">XQuery</a>.</p><p>The method can be invoked in a number of 
ways as described in the <a shape="rect" href="bean-integration.html">Bean 
Integration</a> such as</p><ul><li><a shape="rect" 
href="pojo-producing.html">POJO Producing</a></li><li><a shape="rect" 
href="spring-remoting.html">Spring Remoting</a></li><li><a shape="rect" 
href="bean.html">Bean</a> component</li></ul><p></p><h4 
id="BookInOnePage-UsingThisPattern.16">Using This Pattern</h4>
 
 <p>If you would like to use this EIP Pattern then please read the <a 
shape="rect" href="getting-started.html">Getting Started</a>, you may also find 
the <a shape="rect" href="architecture.html">Architecture</a> useful 
particularly the description of <a shape="rect" 
href="endpoint.html">Endpoint</a> and <a shape="rect" 
href="uris.html">URIs</a>. Then you could try out some of the <a shape="rect" 
href="examples.html">Examples</a> first before trying this pattern out.</p>
-<h3 id="BookInOnePage-RecipientList">Recipient List</h3><p>The <a shape="rect" 
class="external-link" 
href="http://www.enterpriseintegrationpatterns.com/RecipientList.html"; 
rel="nofollow">Recipient List</a> from the <a shape="rect" 
href="enterprise-integration-patterns.html">EIP patterns</a> allows you to 
route messages to a number of dynamically specified recipients.</p><p><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://www.enterpriseintegrationpatterns.com/img/RecipientList.gif"; 
data-image-src="http://www.enterpriseintegrationpatterns.com/img/RecipientList.gif";></span></p><p>The
 recipients will receive a copy of the <strong>same</strong> <a shape="rect" 
href="exchange.html">Exchange</a>, and Camel will execute them 
sequentially.</p><h3 id="BookInOnePage-Options.10">Options</h3><div 
class="confluenceTableSmall"><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" c
 lass="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>delimiter</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>,</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Delimiter used if the <a 
shape="rect" href="expression.html">Expression</a> returned multiple endpoints. 
<strong>Camel 2.13</strong> can be disabled using "false"</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>strategyRef</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>An <a shape="rect" class="external-link" 
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/aggregate/AggregationStrategy.html";>AggregationStrategy</a>
 that will assemble th
 e replies from recipients into a single outgoing message from the <a 
shape="rect" href="recipient-list.html">Recipient List</a>. By default Camel 
will use the last reply as the outgoing message. From <strong>Camel 
2.12</strong> onwards you can also use a POJO as the 
<code>AggregationStrategy</code>, see the <a shape="rect" 
href="aggregator2.html">Aggregator</a> page for more details. If an exception 
is thrown from the aggregate method in the AggregationStrategy, then by 
default, that exception&#160;is not handled by the error handler. The error 
handler can be enabled to react if enabling the shareUnitOfWork 
option.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>strategyMethodName</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.12:</strong> This option can be used to 
explicitly declare the method name to use, when using POJOs as the 
<code>AggregationStrate
 gy</code>. See the <a shape="rect" 
href="aggregator2.html">Aggregator</a><span>&#160;</span>page for more 
details.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>strategyMethodAllowNull</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> If 
this option is <code>false</code> then the aggregate method is not used if 
there was no data to enrich. If this option is <code>true</code> then 
<code>null</code> is used as the <code>oldExchange</code> (when no data to 
enrich), when using POJOs as the <code>AggregationStrategy</code>. See the <a 
shape="rect" href="aggregator2.html">Aggregator</a> page for more 
details.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>parallelProcessing</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenc
 eTd"><p><strong>Camel 2.2:</strong> If enabled, messages are sent to the 
recipients concurrently. Note that the calling thread will still wait until all 
messages have been fully processed before it continues; it is the sending and 
processing of replies from recipients which happens in parallel.</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>parallelAggregate</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.14:</strong> If enabled 
then the <code>aggregate</code> method on <code>AggregationStrategy</code> can 
be called concurrently. Notice that this would require the implementation of 
<code>AggregationStrategy</code> to be implemented as thread-safe. By default 
this is <code>false</code> meaning that Camel synchronizes the call to the 
<code>aggregate</code> method. Though in some 
 use-cases this can be used to archive higher performance when the 
<code>AggregationStrategy</code> is implemented as 
thread-safe.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>executorServiceRef</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.2:</strong> A custom <a shape="rect" 
href="threading-model.html">Thread Pool</a> to use for parallel processing. 
Note that enabling this option implies parallel processing, so you need not 
enable that option as well.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>stopOnException</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.2:</strong> Whether to 
immediately stop processing when an exception occurs. If disabled, Camel will 
send the message to all recipients regardless of any
  individual failures. You can process exceptions in an <a shape="rect" 
class="external-link" 
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/aggregate/AggregationStrategy.html";>AggregationStrategy</a>
 implementation, which supports full control of error 
handling.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>ignoreInvalidEndpoints</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.3:</strong> 
Whether to ignore an endpoint URI that could not be resolved. If disabled, 
Camel will throw an exception identifying the invalid endpoint 
URI.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>streaming</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.5:</strong> If enabled, 
Camel
  will process replies out-of-order - that is, in the order received in reply 
from each recipient. If disabled, Camel will process replies in the same order 
as specified by the <a shape="rect" 
href="expression.html">Expression</a>.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>timeout</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.5:</strong> Specifies a 
processing timeout in milliseconds. If the <a shape="rect" 
href="recipient-list.html">Recipient List</a> hasn't been able to send and 
process all replies within this timeframe, then the timeout triggers and the <a 
shape="rect" href="recipient-list.html">Recipient List</a> breaks out, with 
message flow continuing to the next element. Note that if you provide a <a 
shape="rect" class="external-link" 
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/aggregate/TimeoutAw
 areAggregationStrategy.html">TimeoutAwareAggregationStrategy</a>, its 
<code>timeout</code> method is invoked before breaking out. 
<strong>Beware:</strong> If the timeout is reached with running tasks still 
remaining, certain tasks (for which it is difficult for Camel to shut down in a 
graceful manner) may continue to run. So use this option with caution. We may 
be able to improve this functionality in future Camel 
releases.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>onPrepareRef</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.8:</strong> A custom <a shape="rect" 
href="processor.html">Processor</a> to prepare the copy of the <a shape="rect" 
href="exchange.html">Exchange</a> each recipient will receive. This allows you 
to perform arbitrary transformations, such as deep-cloning the message payload 
(or any other custom logic).</p></td></tr><tr><td colspan
 ="1" rowspan="1" 
class="confluenceTd"><p><code>shareUnitOfWork</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.8:</strong> Whether the 
unit of work should be shared. See <a shape="rect" 
href="splitter.html#Splitter-Sharingunitofwork">the same option on Splitter</a> 
for more details.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>cacheSize</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>1000</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.13.1/2.12.4:</strong> 
Allows to configure the cache size for the <code>ProducerCache</code> which 
caches producers for reuse in the recipient list. Will by default use the 
default cache size which is 1000. Setting the value to -1 allows to turn off 
the cache completely.</p></td></tr></tbody></table></div></div><h4 
id="BookInOnePage-StaticRecipientList
 ">Static Recipient List</h4><p>The following example shows how to route a 
request from an input <strong>queue:a</strong> endpoint to a static list of 
destinations</p><p><strong>Using Annotations</strong><br clear="none"> You can 
use the <a shape="rect" href="recipientlist-annotation.html">RecipientList 
Annotation</a> on a POJO to create a Dynamic Recipient List. For more details 
see the <a shape="rect" href="bean-integration.html">Bean 
Integration</a>.</p><p><strong>Using the <a shape="rect" 
href="fluent-builders.html">Fluent Builders</a></strong></p><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<h3 id="BookInOnePage-RecipientList">Recipient List</h3><p>The <a shape="rect" 
class="external-link" 
href="http://www.enterpriseintegrationpatterns.com/RecipientList.html"; 
rel="nofollow">Recipient List</a> from the <a shape="rect" 
href="enterprise-integration-patterns.html">EIP patterns</a> allows you to 
route messages to a number of dynamically specified recipients.</p><p><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://www.enterpriseintegrationpatterns.com/img/RecipientList.gif"; 
data-image-src="http://www.enterpriseintegrationpatterns.com/img/RecipientList.gif";></span></p><p>The
 recipients will receive a copy of the <strong>same</strong> <a shape="rect" 
href="exchange.html">Exchange</a>, and Camel will execute them 
sequentially.</p><h3 id="BookInOnePage-Options.10">Options</h3><div 
class="confluenceTableSmall"><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" c
 lass="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>delimiter</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>,</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Delimiter used if the <a 
shape="rect" href="expression.html">Expression</a> returned multiple endpoints 
(like "<span style="color: rgb(0,0,0);">direct:foo,direct:bar"</span>). From 
<strong>Camel 2.13</strong> onwards this can be disabled by setting delimiter 
to "false".</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>strategyRef</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>An <a shape="rect" class="external-link" 
href="http://camel.apache.org/maven/current/camel-core/apidocs/
 
org/apache/camel/processor/aggregate/AggregationStrategy.html">AggregationStrategy</a>
 that will assemble the replies from recipients into a single outgoing message 
from the <a shape="rect" href="recipient-list.html">Recipient List</a>. By 
default Camel will use the last reply as the outgoing message. From 
<strong>Camel 2.12</strong> onwards you can also use a POJO as the 
<code>AggregationStrategy</code>, see the <a shape="rect" 
href="aggregator2.html">Aggregator</a> page for more details. If an exception 
is thrown from the aggregate method in the AggregationStrategy, then by 
default, that exception&#160;is not handled by the error handler. The error 
handler can be enabled to react if enabling the shareUnitOfWork 
option.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>strategyMethodName</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.12:</strong> This opti
 on can be used to explicitly declare the method name to use, when using POJOs 
as the <code>AggregationStrategy</code>. See the <a shape="rect" 
href="aggregator2.html">Aggregator</a><span>&#160;</span>page for more 
details.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>strategyMethodAllowNull</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> If 
this option is <code>false</code> then the aggregate method is not used if 
there was no data to enrich. If this option is <code>true</code> then 
<code>null</code> is used as the <code>oldExchange</code> (when no data to 
enrich), when using POJOs as the <code>AggregationStrategy</code>. See the <a 
shape="rect" href="aggregator2.html">Aggregator</a> page for more 
details.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>parallelProcessing</code></p></td><td colspan="1"
  rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.2:</strong> If 
enabled, messages are sent to the recipients concurrently. Note that the 
calling thread will still wait until all messages have been fully processed 
before it continues; it is the sending and processing of replies from 
recipients which happens in parallel.</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>parallelAggregate</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.14:</strong> If enabled 
then the <code>aggregate</code> method on <code>AggregationStrategy</code> can 
be called concurrently. Notice that this would require the implementation of 
<code>AggregationStrategy</code> to be implemented as thread-safe. By default 
this is <code
 >false</code> meaning that Camel synchronizes the call to the 
 ><code>aggregate</code> method. Though in some use-cases this can be used to 
 >archive higher performance when the <code>AggregationStrategy</code> is 
 >implemented as thread-safe.</p></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p><code>executorServiceRef</code></p></td><td 
 >colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td 
 >colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.2:</strong> A 
 >custom <a shape="rect" href="threading-model.html">Thread Pool</a> to use for 
 >parallel processing. Note that enabling this option implies parallel 
 >processing, so you need not enable that option as well.</p></td></tr><tr><td 
 >colspan="1" rowspan="1" 
 >class="confluenceTd"><p><code>stopOnException</code></p></td><td colspan="1" 
 >rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td 
 >colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.2:</strong> 
 >Whether to immediately stop proce
 ssing when an exception occurs. If disabled, Camel will send the message to 
all recipients regardless of any individual failures. You can process 
exceptions in an <a shape="rect" class="external-link" 
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/aggregate/AggregationStrategy.html";>AggregationStrategy</a>
 implementation, which supports full control of error 
handling.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>ignoreInvalidEndpoints</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.3:</strong> 
Whether to ignore an endpoint URI that could not be resolved. If disabled, 
Camel will throw an exception identifying the invalid endpoint 
URI.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>streaming</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</cod
 e></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 
2.5:</strong> If enabled, Camel will process replies out-of-order - that is, in 
the order received in reply from each recipient. If disabled, Camel will 
process replies in the same order as specified by the <a shape="rect" 
href="expression.html">Expression</a>. <span style="color: rgb(0,0,0);">So this 
specifies whether the response messages are aggregated as they come in, 
or</span><span> i</span><span style="color: rgb(0,0,0);">n the exact order as 
the recipient list was evaluated. </span>Only relevant if you enable 
parallelProcessing.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>timeout</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.5:</strong> Specifies a processing 
timeout in milliseconds. If the <a shape="rect" 
href="recipient-list.html">Recipient List</a> hasn't been able
  to send and process all replies within this timeframe, then the timeout 
triggers and the <a shape="rect" href="recipient-list.html">Recipient List</a> 
breaks out, with message flow continuing to the next element. Note that if you 
provide a <a shape="rect" class="external-link" 
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/aggregate/TimeoutAwareAggregationStrategy.html";>TimeoutAwareAggregationStrategy</a>,
 its <code>timeout</code> method is invoked before breaking out. 
<strong>Beware:</strong> If the timeout is reached with running tasks still 
remaining, certain tasks (for which it is difficult for Camel to shut down in a 
graceful manner) may continue to run. So use this option with caution. We may 
be able to improve this functionality in future Camel 
releases.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>onPrepareRef</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan
 ="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.8:</strong> A custom 
<a shape="rect" href="processor.html">Processor</a> to prepare the copy of the 
<a shape="rect" href="exchange.html">Exchange</a> each recipient will receive. 
This allows you to perform arbitrary transformations, such as deep-cloning the 
message payload (or any other custom logic).</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>shareUnitOfWork</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.8:</strong> 
Whether the unit of work should be shared. See <a shape="rect" 
href="splitter.html#Splitter-Sharingunitofwork">the same option on Splitter</a> 
for more details.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>cacheSize</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>1000</code></p></td><td colspan="1" 
rowspan="1" class
 ="confluenceTd"><p><strong>Camel 2.13.1/2.12.4:</strong> Allows to configure 
the cache size for the <code>ProducerCache</code> which caches producers for 
reuse in the recipient list. Will by default use the default cache size which 
is 1000. Setting the value to -1 allows to turn off the cache 
completely.</p></td></tr></tbody></table></div></div><h4 
id="BookInOnePage-StaticRecipientList">Static Recipient List</h4><p>The 
following example shows how to route a request from an input 
<strong>queue:a</strong> endpoint to a static list of 
destinations</p><p><strong>Using Annotations</strong><br clear="none"> You can 
use the <a shape="rect" href="recipientlist-annotation.html">RecipientList 
Annotation</a> on a POJO to create a Dynamic Recipient List. For more details 
see the <a shape="rect" href="bean-integration.html">Bean 
Integration</a>.</p><p><strong>Using the <a shape="rect" 
href="fluent-builders.html">Fluent Builders</a></strong></p><div class="code 
panel pdl" style="border-width: 1px
 ;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
 RouteBuilder builder = new RouteBuilder() {
     public void configure() {
@@ -12819,7 +12730,7 @@ from(&quot;direct:a&quot;).recipientList
        &lt;/recipientList&gt;
    &lt;/route&gt;
 ]]></script>
-</div></div><p><strong>Note:</strong> You can combine 
<code>parallelProcessing</code> and <code>stopOnException</code> and have them 
both <code>true</code>.</p><h3 id="BookInOnePage-Ignoreinvalidendpoints">Ignore 
invalid endpoints</h3><p><strong>Available as of Camel 2.3</strong></p><p>The 
<a shape="rect" href="recipient-list.html">Recipient List</a> now supports 
<code>ignoreInvalidEndpoints</code> which the <a shape="rect" 
href="routing-slip.html">Routing Slip</a> also supports. You can use it to skip 
endpoints which are invalid.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p><strong>Note:</strong> You can combine 
<code>parallelProcessing</code> and <code>stopOnException</code> and have them 
both <code>true</code>.</p><h3 id="BookInOnePage-Ignoreinvalidendpoints">Ignore 
invalid endpoints</h3><p><strong>Available as of Camel 2.3</strong></p><p>The 
<a shape="rect" href="recipient-list.html">Recipient List</a> now supports 
<code>ignoreInvalidEndpoints</code> (like the <a shape="rect" 
href="routing-slip.html">Routing Slip</a>). You can use it to skip endpoints 
which are invalid.</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;).recipientList(header(&quot;myHeader&quot;)).ignoreInvalidEndpoints();
 ]]></script>
 </div></div><p>And in Spring XML it is an attribute on the recipient list 
tag.</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
@@ -12846,7 +12757,7 @@ from(&quot;direct:a&quot;).recipientList
 
    &lt;bean id=&quot;myStrategy&quot; 
class=&quot;com.mycompany.MyOwnAggregationStrategy&quot;/&gt;
 ]]></script>
-</div></div><h4 
id="BookInOnePage-KnowingwhichendpointwhenusingcustomAggregationStrategy">Knowing
 which endpoint when using custom 
<code>AggregationStrategy</code></h4><p><strong>Available as of Camel 
2.12</strong></p><p>When using a custom <code>AggregationStrategy</code> then 
the <code>aggregate</code> method is always invoked in sequential order (also 
if parallel processing is enabled) of the endpoints the <a shape="rect" 
href="recipient-list.html">Recipient List</a> is using. However from Camel 2.12 
onwards this is easier to know as the <code>newExchange</code> <a shape="rect" 
href="exchange.html">Exchange</a> has a property stored (key is 
<code>Exchange.RECIPIENT_LIST_ENDPOINT</code> with the uri of the <a 
shape="rect" href="endpoint.html">Endpoint</a>.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h4 
id="BookInOnePage-KnowingwhichendpointwhenusingcustomAggregationStrategy">Knowing
 which endpoint when using custom 
<code>AggregationStrategy</code></h4><p><strong>Available as of Camel 
2.12</strong></p><p>When using a custom <code>AggregationStrategy</code> then 
the <code>aggregate</code> method is always invoked in sequential order (also 
if parallel processing is enabled) of the endpoints the <a shape="rect" 
href="recipient-list.html">Recipient List</a> is using. However from Camel 2.12 
onwards this is easier to know as the <code>newExchange</code> <a shape="rect" 
href="exchange.html">Exchange</a>&#160;now has a property stored (key is 
<code>Exchange.RECIPIENT_LIST_ENDPOINT</code> with the uri of the <a 
shape="rect" href="endpoint.html">Endpoint</a>. So you know which endpoint you 
are aggregating from. The code block shows how to access this property in your 
<a shape="rect" href="aggregator2.html">Aggregator</a>.&#160;</p><div 
class="code panel pdl" style="border-wi
 dth: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[    @Override
     public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
         String uri = newExchange.getProperty(Exchange.RECIPIENT_LIST_ENDPOINT, 
String.class);
@@ -16645,7 +16556,10 @@ public class BlogService {
 <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 
class="alternate"><li><a shape="rect" href="rss.html">RSS</a></li></ul> <h2 
id="BookInOnePage-BeanComponent.1">Bean Component</h2><p>The 
<strong>bean:</strong> component binds beans to Camel message exchanges.</p><h3 
id="BookInOnePage-URIformat.4">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[bean:beanID[?options]
 ]]></script>
-</div></div><p>Where <strong>beanID</strong> can be any string which is used 
to look up the bean in the <a shape="rect" 
href="registry.html">Registry</a></p><h3 
id="BookInOnePage-Options.23">Options</h3><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>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>method</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The method name from the bean that will be 
invoked. If not provided, Camel will try to determine the method itself. In 
case o
 f ambiguity an exception will be thrown. See <a shape="rect" 
href="bean-binding.html">Bean Binding</a> for more details. From <strong>Camel 
2.8</strong> onwards you can specify type qualifiers to pin-point the exact 
method to use for overloaded methods. From <strong>Camel 2.9</strong> onwards 
you can specify parameter values directly in the method syntax. See more 
details at <a shape="rect" href="bean-binding.html">Bean 
Binding</a>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>cache</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>boolean</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 enabled, Camel will cache the result of 
the first <a shape="rect" href="registry.html">Registry</a> look-up. Cache can 
be enabled if the bean in the <a shape="rect" href="registry.html">Registry</a> 
is defined as a singleton scope.</p></td></tr><tr>
 <td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>multiParameterArray</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>boolean</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>How to treat the parameters which are 
passed from the message body; if it is <code>true</code>, the In message body 
should be an array of parameters.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>bean.xxx</p></td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>null</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong style="line-height: 1.42857;">Camel 
2.17:</strong>&#160;To configure additional options on the create bean instance 
from the class name. For example to configure a foo option on the bean, use 
bean.foo=123.</p></td></tr></tbody></table></div></div><p>You can append query 
 options to the URI in the following format, 
<code>?option=value&amp;option=value&amp;...</code></p><h3 
id="BookInOnePage-Using">Using</h3><p>The object instance that is used to 
consume messages must be explicitly registered with the <a shape="rect" 
href="registry.html">Registry</a>. For example, if you are using Spring you 
must define the bean in the Spring configuration, <code>spring.xml</code>; or 
if you don't use Spring, by registering the bean in JNDI.</p><div 
class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>Once an 
endpoint has been registered, you can build Camel routes that use it to process 
exchanges.<div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div><p>Where <strong>beanID</strong> can be any string which is used 
to look up the bean in the <a shape="rect" 
href="registry.html">Registry</a></p><h3 
id="BookInOnePage-Options.23">Options</h3><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>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>method</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The method name from the bean that will be 
invoked. If not provided, Camel will try to determine the method itself. In 
case o
 f ambiguity an exception will be thrown. See <a shape="rect" 
href="bean-binding.html">Bean Binding</a> for more details. From <strong>Camel 
2.8</strong> onwards you can specify type qualifiers to pin-point the exact 
method to use for overloaded methods. From <strong>Camel 2.9</strong> onwards 
you can specify parameter values directly in the method syntax. See more 
details at <a shape="rect" href="bean-binding.html">Bean 
Binding</a>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>cache</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>boolean</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 enabled, Camel will cache the result of 
the first <a shape="rect" href="registry.html">Registry</a> look-up. Cache can 
be enabled if the bean in the <a shape="rect" href="registry.html">Registry</a> 
is defined as a singleton scope.</p></td></tr><tr>
 <td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>multiParameterArray</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>boolean</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>How to treat the parameters which are 
passed from the message body; if it is <code>true</code>, the In message body 
should be an array of parameters.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>bean.xxx</p></td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>null</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong style="line-height: 1.42857;">Camel 
2.17:</strong>&#160;To configure additional options on the create bean instance 
from the class name. For example to configure a foo option on the bean, use 
bean.foo=123.</p></td></tr></tbody></table></div></div><p>You can append query 
 options to the URI in the following format, 
<code>?option=value&amp;option=value&amp;...</code></p><h3 
id="BookInOnePage-Using">Using</h3><p>The object instance that is used to 
consume messages must be explicitly registered with the <a shape="rect" 
href="registry.html">Registry</a>. For example, if you are using Spring you 
must define the bean in the Spring configuration, <code>spring.xml</code>; or 
if you don't use Spring, by registering the bean in JNDI.</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[
+]]></script>
+</div></div>Once an endpoint has been registered, you can build Camel routes 
that use it to process exchanges.<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[
 // lets add simple route
 camelContext.addRoutes(new RouteBuilder() {
@@ -17254,11 +17168,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.rbtoc1460711932883 {padding: 0px;}
-div.rbtoc1460711932883 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1460711932883 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1461244714180 {padding: 0px;}
+div.rbtoc1461244714180 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1461244714180 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1460711932883">
+/*]]>*/</style></p><div class="toc-macro rbtoc1461244714180">
 <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>
@@ -18651,7 +18565,10 @@ Exchange.FILE_NAME = foo/bye.txt =&gt; /
   &lt;/properties&gt;
 &lt;/persistence-unit&gt;
 ]]></script>
-</div></div>Then we need to setup a Spring <code>jpaTemplate</code> in the 
spring XML file:<div class="error"><span class="error">Error formatting macro: 
snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> 
</div>And finally we can create our JPA idempotent repository in the spring XML 
file as well:<div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div>Then we need to setup a Spring <code>jpaTemplate</code> in the 
spring XML file:<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[
+]]></script>
+</div></div>And finally we can create our JPA idempotent repository in the 
spring XML file as well:<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;!-- we define our jpa based idempotent repository we want to use in the 
file consumer --&gt;
 &lt;bean id=&quot;jpaStore&quot; 
class=&quot;org.apache.camel.processor.idempotent.jpa.JpaMessageIdRepository&quot;&gt;
@@ -21147,7 +21064,7 @@ public void configure() throws Exception
   &lt;/route&gt;
 &lt;/camelContext&gt;
 
-&lt;!-- Just add a demo to show how to bind a date source for camel in 
Spring--&gt;
+&lt;!-- Just add a demo to show how to bind a data source for camel in 
Spring--&gt;
 &lt;jdbc:embedded-database id=&quot;testdb&quot; type=&quot;DERBY&quot;&gt;
        &lt;jdbc:script location=&quot;classpath:sql/init.sql&quot;/&gt;
 &lt;/jdbc:embedded-database&gt;
@@ -21945,7 +21862,10 @@ public class MultiSteps {
   &lt;/properties&gt;
 &lt;/persistence-unit&gt;
 ]]></script>
-</div></div>Second we have to setup a 
<code>org.springframework.orm.jpa.JpaTemplate</code> which is used by the 
<code>org.apache.camel.processor.idempotent.jpa.JpaMessageIdRepository</code>:<div
 class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> 
</div>Afterwards we can configure our 
<code>org.apache.camel.processor.idempotent.jpa.JpaMessageIdRepository</code>:<div
 class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div>Second we have to setup a 
<code>org.springframework.orm.jpa.JpaTemplate</code> which is used by the 
<code>org.apache.camel.processor.idempotent.jpa.JpaMessageIdRepository</code>:<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[
+]]></script>
+</div></div>Afterwards we can configure our 
<code>org.apache.camel.processor.idempotent.jpa.JpaMessageIdRepository</code>:<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;!-- we define our jpa based idempotent repository we want to use in the 
file consumer --&gt;
 &lt;bean id=&quot;jpaStore&quot; 
class=&quot;org.apache.camel.processor.idempotent.jpa.JpaMessageIdRepository&quot;&gt;
@@ -23941,7 +23861,7 @@ TargetCompID=YOUR_TARGET
         .withField(ExecTransType.FIELD, Integer.toString(ExecTransType.STATUS))
         .withField(OrderID.FIELD, request.getString(OrderID.FIELD)));
 ]]></script>
-</div></div><h4 id="BookInOnePage-Example.28">Example</h4><p>The source code 
contains an example called <code>RequestReplyExample</code> that demonstrates 
the InOut exchanges<br clear="none"> for a consumer and producer. This example 
creates a simple HTTP server endpoint that accepts order<br clear="none"> 
status requests. The HTTP request is converted to a FIX 
OrderStatusRequestMessage, is augmented with a<br clear="none"> correlation 
criteria, and is then routed to a quickfix endpoint. The response is then 
converted to a<br clear="none"> JSON-formatted string and sent back to the HTTP 
server endpoint to be provided as the web response.</p><p>The Spring 
configuration have changed from Camel 2.9 onwards. See further below for 
example.</p><h3 id="BookInOnePage-SpringConfiguration">Spring 
Configuration</h3><p><strong>Camel 2.6 - 2.8.x</strong></p><p>The QuickFIX/J 
component includes a Spring <code>FactoryBean</code> for configuring the 
session settings within a Spring context. A type 
 converter for QuickFIX/J session ID strings is also included. The following 
example shows a simple configuration of an acceptor and initiator session with 
default settings for both sessions.</p><div class="error"><span 
class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> 
</div><p><strong>Camel 2.9 onwards</strong></p><p>The QuickFIX/J component 
includes a <code>QuickfixjConfiguration</code> class for configuring the 
session settings. A type converter for QuickFIX/J session ID strings is also 
included. The following example shows a simple configuration of an acceptor and 
initiator session with default settings for both sessions.</p><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h4 id="BookInOnePage-Example.28">Example</h4><p>The source code 
contains an example called <code>RequestReplyExample</code> that demonstrates 
the InOut exchanges<br clear="none"> for a consumer and producer. This example 
creates a simple HTTP server endpoint that accepts order<br clear="none"> 
status requests. The HTTP request is converted to a FIX 
OrderStatusRequestMessage, is augmented with a<br clear="none"> correlation 
criteria, and is then routed to a quickfix endpoint. The response is then 
converted to a<br clear="none"> JSON-formatted string and sent back to the HTTP 
server endpoint to be provided as the web response.</p><p>The Spring 
configuration have changed from Camel 2.9 onwards. See further below for 
example.</p><h3 id="BookInOnePage-SpringConfiguration">Spring 
Configuration</h3><p><strong>Camel 2.6 - 2.8.x</strong></p><p>The QuickFIX/J 
component includes a Spring <code>FactoryBean</code> for configuring the 
session settings within a Spring context. A type 
 converter for QuickFIX/J session ID strings is also included. The following 
example shows a simple configuration of an acceptor and initiator session with 
default settings for both sessions.</p>An error occurred: Unable to retrieve 
the URL: 
https://git-wip-us.apache.org/repos/asf?p=camel.git;a=blob_plain;hb=HEAD;f=branches/camel-2.8.x/components/camel-quickfix/src/test/resources/org/apache/camel/component/quickfixj/QuickfixjSpringTest-context.xml
 status code: 404. The error has been recorded.<p><strong>Camel 2.9 
onwards</strong></p><p>The QuickFIX/J component includes a 
<code>QuickfixjConfiguration</code> class for configuring the session settings. 
A type converter for QuickFIX/J session ID strings is also included. The 
following example shows a simple configuration of an acceptor and initiator 
session with default settings for both sessions.</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;!-- tag::e1[] --&gt;
 &lt;!-- camel route --&gt;
@@ -24308,71 +24228,7 @@ from(&quot;direct:start&quot;)
     .multicast().placeholder(&quot;stopOnException&quot;, &quot;stop&quot;)
         .to(&quot;mock:a&quot;).throwException(new 
IllegalAccessException(&quot;Damn&quot;)).to(&quot;mock:b&quot;);
 ]]></script>
-</div></div><h3 
id="BookInOnePage-UsingBlueprintpropertyplaceholderwithCamelroutes">Using 
Blueprint property placeholder with Camel routes</h3><p><strong>Available as of 
Camel 2.7</strong></p><p>Camel supports <a shape="rect" 
href="using-osgi-blueprint-with-camel.html">Blueprint</a> which also offers a 
property placeholder service. Camel supports convention over configuration, so 
all you have to do is to define the OSGi Blueprint property placeholder in the 
XML file as shown below:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 
1px;"><b>Using OSGi blueprint property placeholders in Camel 
routes</b></div><div class="codeContent panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
-&lt;blueprint xmlns=&quot;http://www.osgi.org/xmlns/blueprint/v1.0.0&quot;
-           xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
-           
xmlns:cm=&quot;http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0&quot;
-           xsi:schemaLocation=&quot;
-           http://www.osgi.org/xmlns/blueprint/v1.0.0 
https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd&quot;&gt;
-
-    &lt;!-- OSGI blueprint property placeholder --&gt;
-    &lt;cm:property-placeholder id=&quot;myblueprint.placeholder&quot; 
persistent-id=&quot;camel.blueprint&quot;&gt;
-        &lt;!-- list some properties for this test --&gt;
-        &lt;cm:default-properties&gt;
-            &lt;cm:property name=&quot;result&quot; 
value=&quot;mock:result&quot;/&gt;
-        &lt;/cm:default-properties&gt;
-    &lt;/cm:property-placeholder&gt;
-
-    &lt;camelContext 
xmlns=&quot;http://camel.apache.org/schema/blueprint&quot;&gt;
-
-        &lt;!-- in the route we can use {{ }} placeholders which will lookup 
in blueprint
-             as Camel will auto detect the OSGi blueprint property placeholder 
and use it --&gt;
-        &lt;route&gt;
-            &lt;from uri=&quot;direct:start&quot;/&gt;
-            &lt;to uri=&quot;mock:foo&quot;/&gt;
-            &lt;to uri=&quot;{{result}}&quot;/&gt;
-        &lt;/route&gt;
-
-    &lt;/camelContext&gt;
-
-&lt;/blueprint&gt;
-]]></script>
-</div></div>By default Camel detects and uses OSGi blueprint property 
placeholder service. You can disable this by setting the attribute 
<code>useBlueprintPropertyResolver</code> to false on the 
<code>&lt;camelContext&gt;</code> definition.<div 
class="confluence-information-macro 
confluence-information-macro-information"><p class="title">About placeholder 
syntaxes</p><span class="aui-icon aui-icon-small aui-iconfont-info 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Notice how we can use the Camel 
syntax for placeholders {{ }} in the Camel route, which will lookup the value 
from OSGi blueprint.<br clear="none"> The blueprint syntax for placeholders is 
${ }. So outside the &lt;camelContext&gt; you must use the ${ } syntax. Where 
as inside &lt;camelContext&gt; you must use {{ }} syntax.<br clear="none"> OSGi 
blueprint allows you to configure the syntax, so you can actually align those 
if you want.</p></div></div><p>You can also explicit re
 fer to a specific OSGi blueprint property placeholder by its id. For that you 
need to use the Camel's &lt;propertyPlaceholder&gt; as shown in the example 
below:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeHeader panelHeader pdl" style="border-bottom-width: 
1px;"><b>Explicit referring to a OSGi blueprint placeholder in 
Camel</b></div><div class="codeContent panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
-&lt;blueprint xmlns=&quot;http://www.osgi.org/xmlns/blueprint/v1.0.0&quot;
-           xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
-           
xmlns:cm=&quot;http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0&quot;
-           xsi:schemaLocation=&quot;
-           http://www.osgi.org/xmlns/blueprint/v1.0.0 
https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd&quot;&gt;
-
-    &lt;!-- OSGI blueprint property placeholder --&gt;
-    &lt;cm:property-placeholder id=&quot;myblueprint.placeholder&quot; 
persistent-id=&quot;camel.blueprint&quot;&gt;
-        &lt;!-- list some properties for this test --&gt;
-        &lt;cm:default-properties&gt;
-            &lt;cm:property name=&quot;prefix.result&quot; 
value=&quot;mock:result&quot;/&gt;
-        &lt;/cm:default-properties&gt;
-    &lt;/cm:property-placeholder&gt;
-
-    &lt;camelContext 
xmlns=&quot;http://camel.apache.org/schema/blueprint&quot;&gt;
-
-        &lt;!-- using Camel properties component and refer to the blueprint 
property placeholder by its id --&gt;
-        &lt;propertyPlaceholder id=&quot;properties&quot; 
location=&quot;blueprint:myblueprint.placeholder&quot;
-                             prefixToken=&quot;[[&quot; 
suffixToken=&quot;]]&quot;
-                             propertyPrefix=&quot;prefix.&quot;/&gt;
-
-        &lt;!-- in the route we can use {{ }} placeholders which will lookup 
in blueprint --&gt;
-        &lt;route&gt;
-            &lt;from uri=&quot;direct:start&quot;/&gt;
-            &lt;to uri=&quot;mock:foo&quot;/&gt;
-            &lt;to uri=&quot;[[result]]&quot;/&gt;
-        &lt;/route&gt;
-
-    &lt;/camelContext&gt;
-
-&lt;/blueprint&gt;
-]]></script>
-</div></div>Notice how we use the <code>blueprint</code> scheme to refer to 
the OSGi blueprint placeholder by its id. This allows you to mix and match, for 
example you can also have additional schemes in the location. For example to 
load a file from the classpath you can do:<div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 
id="BookInOnePage-UsingBlueprintpropertyplaceholderwithCamelroutes">Using 
Blueprint property placeholder with Camel routes</h3><p><strong>Available as of 
Camel 2.7</strong></p><p>Camel supports <a shape="rect" 
href="using-osgi-blueprint-with-camel.html">Blueprint</a> which also offers a 
property placeholder service. Camel supports convention over configuration, so 
all you have to do is to define the OSGi Blueprint property placeholder in the 
XML file as shown below:An error occurred: Unable to retrieve the URL: 
https://git-wip-us.apache.org/repos/asf?p=camel.git;a=blob_plain;hb=HEAD;f=tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/blueprint/blueprint-17.xml
 status code: 404. The error has been recorded.By default Camel detects and 
uses OSGi blueprint property placeholder service. You can disable this by 
setting the attribute <code>useBlueprintPropertyResolver</code> to false on the 
<code>&lt;camelContext&gt;</code> definition.</p><div class="co
 nfluence-information-macro confluence-information-macro-information"><p 
class="title">About placeholder syntaxes</p><span class="aui-icon 
aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Notice how we can use the Camel 
syntax for placeholders {{ }} in the Camel route, which will lookup the value 
from OSGi blueprint.<br clear="none"> The blueprint syntax for placeholders is 
${ }. So outside the &lt;camelContext&gt; you must use the ${ } syntax. Where 
as inside &lt;camelContext&gt; you must use {{ }} syntax.<br clear="none"> OSGi 
blueprint allows you to configure the syntax, so you can actually align those 
if you want.</p></div></div><p>You can also explicit refer to a specific OSGi 
blueprint property placeholder by its id. For that you need to use the Camel's 
&lt;propertyPlaceholder&gt; as shown in the example below:An error occurred: 
Unable to retrieve the URL: https://git-wip-us.apache.org/repos/asf?p=camel
 
.git;a=blob_plain;hb=HEAD;f=tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/blueprint/blueprint-16.xml
 status code: 404. The error has been recorded.Notice how we use the 
<code>blueprint</code> scheme to refer to the OSGi blueprint placeholder by its 
id. This allows you to mix and match, for example you can also have additional 
schemes in the location. For example to load a file from the classpath you can 
do:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[location=&quot;blueprint:myblueprint.placeholder,classpath:myproperties.properties&quot;
 ]]></script>
 </div></div><p>Each location is separated by comma.</p><h4 
id="BookInOnePage-OverridingBlueprintpropertyplaceholdersoutsideCamelContext">Overriding
 Blueprint property placeholders outside CamelContext</h4><p><strong>Available 
as of Camel 2.10.4</strong></p><p>When using Blueprint property placeholder in 
the Blueprint XML file, you can declare the properties directly in the XML file 
as shown below:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
@@ -25204,150 +25060,7 @@ from(&quot;servlet:hello?matchOnUriPrefi
   &lt;/servlet&gt; 
 &lt;web-app&gt;
 ]]></script>
-</div></div><h4 id="BookInOnePage-SamplewhenusingOSGi">Sample when using 
OSGi</h4><p>From <strong>Camel 2.6.0</strong>, you can publish the <a 
shape="rect" class="external-link" 
href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/CamelHttpTransportServlet.java";>CamelHttpTransportServlet</a>
 as an OSGi service with help of SpringDM like this.</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;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot;
-       xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
-       xmlns:osgi=&quot;http://www.springframework.org/schema/osgi&quot;
-       xsi:schemaLocation=&quot;
-       http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd
-       http://www.springframework.org/schema/osgi  
http://www.springframework.org/schema/osgi/spring-osgi.xsd&quot;&gt;
-    
-    &lt;bean id=&quot;camelServlet&quot; 
class=&quot;org.apache.camel.component.servlet.CamelHttpTransportServlet&quot;&gt;
-    &lt;/bean&gt;
-    
-    &lt;!-- 
-       Enlist it in OSGi service registry 
-       This will cause two things:
-       1) As the pax web whiteboard extender is running the CamelServlet will
-          be registered with the OSGi HTTP Service
-       2) It will trigger the HttpRegistry in other bundles so the servlet is
-          made known there too
-    --&gt;
-    &lt;osgi:service ref=&quot;camelServlet&quot;&gt;
-       &lt;osgi:interfaces&gt;
-               &lt;value&gt;javax.servlet.Servlet&lt;/value&gt;
-               
&lt;value&gt;org.apache.camel.component.http.CamelServlet&lt;/value&gt;
-       &lt;/osgi:interfaces&gt;
-        &lt;osgi:service-properties&gt;
-            &lt;entry key=&quot;alias&quot; value=&quot;/camel/services&quot; 
/&gt;
-            &lt;entry key=&quot;matchOnUriPrefix&quot; value=&quot;true&quot; 
/&gt;
-            &lt;entry key=&quot;servlet-name&quot; 
value=&quot;CamelServlet&quot;/&gt;
-        &lt;/osgi:service-properties&gt;
-    &lt;/osgi:service&gt;
-
-&lt;/beans&gt;
-]]></script>
-</div></div><p>Then use this service in your camel route like this:</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;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot;
-       xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
-       xmlns:camel=&quot;http://camel.apache.org/schema/spring&quot;
-       xmlns:osgi=&quot;http://www.springframework.org/schema/osgi&quot;
-       xsi:schemaLocation=&quot;
-       http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd
-       http://www.springframework.org/schema/osgi  
http://www.springframework.org/schema/osgi/spring-osgi.xsd
-       http://camel.apache.org/schema/spring 
http://camel.apache.org/schema/spring/camel-spring.xsd&quot;&gt;
-
-       &lt;osgi:reference id=&quot;servletref&quot; 
interface=&quot;org.apache.camel.component.http.CamelServlet&quot;&gt;
-               &lt;osgi:listener bind-method=&quot;register&quot; 
unbind-method=&quot;unregister&quot;&gt;
-               &lt;ref bean=&quot;httpRegistry&quot;/&gt;
-               &lt;/osgi:listener&gt;
-       &lt;/osgi:reference&gt;
-       
-       &lt;bean id=&quot;httpRegistry&quot; 
class=&quot;org.apache.camel.component.servlet.DefaultHttpRegistry&quot;/&gt;
-        
-       &lt;bean id=&quot;servlet&quot; 
class=&quot;org.apache.camel.component.servlet.ServletComponent&quot;&gt;
-       &lt;property name=&quot;httpRegistry&quot; ref=&quot;httpRegistry&quot; 
/&gt;
-       &lt;/bean&gt;
-
-       &lt;bean id=&quot;servletProcessor&quot; 
class=&quot;org.apache.camel.itest.osgi.servlet.ServletProcessor&quot; /&gt;
-
-    &lt;camelContext 
xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
-        &lt;route&gt;
-            &lt;!-- notice how we can use the servlet scheme which is that 
osgi:reference above --&gt;
-            &lt;from uri=&quot;servlet:///hello&quot;/&gt;
-            &lt;process ref=&quot;servletProcessor&quot;/&gt;
-        &lt;/route&gt;
-    &lt;/camelContext&gt;
-
-&lt;/beans&gt;
-]]></script>
-</div></div><p>For versions prior to Camel 2.6 you can use an 
<code>Activator</code> to publish the <a shape="rect" class="external-link" 
href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/CamelHttpTransportServlet.java";>CamelHttpTransportServlet</a>
 on the OSGi platform</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[
-import java.util.Dictionary;
-import java.util.Hashtable;
-
-import org.apache.camel.component.servlet.CamelHttpTransportServlet;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.http.HttpContext;
-import org.osgi.service.http.HttpService;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.osgi.context.BundleContextAware;
-
-public final class ServletActivator implements BundleActivator, 
BundleContextAware {
-    private static final Logger LOG = 
LoggerFactory.getLogger(ServletActivator.class);
-    private static boolean registerService;
-    
-    /**
-     * HttpService reference.
-     */
-    private ServiceReference&lt;?&gt; httpServiceRef;
-    
-    /**
-     * Called when the OSGi framework starts our bundle
-     */
-    public void start(BundleContext bc) throws Exception {
-        registerServlet(bc);
-    }
-
-    /**
-     * Called when the OSGi framework stops our bundle
-     */
-    public void stop(BundleContext bc) throws Exception {
-        if (httpServiceRef != null) {
-            bc.ungetService(httpServiceRef);
-            httpServiceRef = null;
-        }
-    }
-    
-    protected void registerServlet(BundleContext bundleContext) throws 
Exception {
-        httpServiceRef = 
bundleContext.getServiceReference(HttpService.class.getName());
-        
-        if (httpServiceRef != null &amp;&amp; !registerService) {
-            LOG.info(&quot;Register the servlet service&quot;);
-            final HttpService httpService = 
(HttpService)bundleContext.getService(httpServiceRef);
-            if (httpService != null) {
-                // create a default context to share between registrations
-                final HttpContext httpContext = 
httpService.createDefaultHttpContext();
-                // register the hello world servlet
-                final Dictionary&lt;String, String&gt; initParams = new 
Hashtable&lt;String, String&gt;();
-                initParams.put(&quot;matchOnUriPrefix&quot;, 
&quot;false&quot;);
-                initParams.put(&quot;servlet-name&quot;, 
&quot;CamelServlet&quot;);
-                httpService.registerServlet(&quot;/camel/services&quot;, // 
alias
-                    new CamelHttpTransportServlet(), // register servlet
-                    initParams, // init params
-                    httpContext // http context
-                );
-                registerService = true;
-            }
-        }
-    }
-
-    public void setBundleContext(BundleContext bc) {
-        try {
-            registerServlet(bc);
-        } catch (Exception e) {
-            LOG.error(&quot;Cannot register the servlet, the reason is &quot; 
+ e);
-        }
-    }
-
-}
-]]></script>
-</div></div><p></p><h3 id="BookInOnePage-SeeAlso.76">See Also</h3>
+</div></div><h4 id="BookInOnePage-SamplewhenusingOSGi">Sample when using 
OSGi</h4><p>From <strong>Camel 2.6.0</strong>, you can publish the <a 
shape="rect" class="external-link" 
href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/CamelHttpTransportServlet.java";>CamelHttpTransportServlet</a>
 as an OSGi service with help of SpringDM like this.</p>An error occurred: 
Unable to retrieve the URL: 
https://git-wip-us.apache.org/repos/asf?p=camel.git;a=blob_plain;hb=HEAD;f=tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/servlet/ServletServiceContext.xml
 status code: 404. The error has been recorded.<p>Then use this service in your 
camel route like this:</p>An error occurred: Unable to retrieve the URL: 
https://git-wip-us.apache.org/repos/asf?p=camel.git;a=blob_plain;hb=HEAD;f=tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/servlet/CamelServletWithServletServiceContext.xml
 statu
 s code: 404. The error has been recorded.<p>For versions prior to Camel 2.6 
you can use an <code>Activator</code> to publish the <a shape="rect" 
class="external-link" 
href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/CamelHttpTransportServlet.java";>CamelHttpTransportServlet</a>
 on the OSGi platform</p>An error occurred: Unable to retrieve the URL: 
https://git-wip-us.apache.org/repos/asf?p=camel.git;a=blob_plain;hb=HEAD;f=tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/servlet/support/ServletActivator.java
 status code: 404. The error has been recorded.<p></p><h3 
id="BookInOnePage-SeeAlso.76">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 
class="alternate"><li><a shape="rect" 
href="servlet-tomcat-example.html">Servlet Tomcat Example</a></li><li><a 
shape="rect" href="servlet-tomcat-no-spring-example.html">Servlet Tomcat No 
Spring Example</a></li><li><a shape="rect" href="http.html">HTTP</a></li><li><a 
shape="rect" href="jetty.html">Jetty</a></li></ul> <h2 
id="BookInOnePage-ShiroSecurityComponent">Shiro Security 
Component</h2><p><strong>Available as of Camel 2.5</strong></p><p>The 
<strong>shiro-security</strong> component in Camel is a security focused 
component, based on the Apache Shiro security project.</p><p>Apache Shiro is a 
powerful and flexible open-source security framework that cleanly handles 
authentication, authorization, enterprise s
 ession management and cryptography. The objective of the Apache Shiro project 
is to provide the most robust and comprehensive application security framework 
available while also being very easy to understand and extremely simple to 
use.</p><p>This camel shiro-security component allows authentication and 
authorization support to be applied to different segments of a camel 
route.</p><p>Shiro security is applied on a route using a Camel Policy. A 
Policy in Camel utilizes a strategy pattern for applying interceptors on Camel 
Processors. It offering the ability to apply cross-cutting concerns (for 
example. security, transactions etc) on sections/segments of a camel 
route.</p><p>Maven users will need to add the following dependency to their 
<code>pom.xml</code> for this component:</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;
     &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;


Reply via email to