Author: buildbot
Date: Tue Aug  2 18:19:51 2016
New Revision: 994305

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/jms.html
    websites/production/camel/content/properties.html
    websites/production/camel/content/using-propertyplaceholder.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 Tue Aug  2 
18:19:51 2016
@@ -1040,11 +1040,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.rbtoc1470143921005 {padding: 0px;}
-div.rbtoc1470143921005 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1470143921005 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1470161864567 {padding: 0px;}
+div.rbtoc1470161864567 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1470161864567 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1470143921005">
+/*]]>*/</style></p><div class="toc-macro rbtoc1470161864567">
 <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>
@@ -5421,7 +5421,7 @@ rnc:someLocalOrRemoteResource]]></script
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[from(&quot;jms:SomeQueue?concurrentConsumers=20&quot;)
   .bean(MyClass.class);
 ]]></script>
-</div></div><p>You can configure this option in one of the following 
ways:</p><ul><li>On the <code>JmsComponent</code>,</li><li>On the endpoint URI 
or,</li><li>By invoking <code>setConcurrentConsumers()</code> directly on the 
<code>JmsEndpoint</code>.</li></ul><h4 
id="BookComponentAppendix-ConcurrentConsumingwithasyncconsumer">Concurrent 
Consuming with async consumer</h4><p>Notice that each concurrent consumer will 
only pickup the next available message from the JMS broker, when the current 
message has been fully processed. You can set the option 
<code>asyncConsumer=true</code> to let the consumer pickup the next message 
from the JMS queue, while the previous message is being processed 
asynchronously (by the <a shape="rect" 
href="asynchronous-routing-engine.html">Asynchronous Routing Engine</a>). See 
more details in the table on top of the page about the 
<code>asyncConsumer</code> option.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent 
 pdl">
+</div></div><p>You can configure this option in one of the following 
ways:</p><ul><li><p>On the <code>JmsComponent</code></p></li><li><p>On the 
endpoint URI.</p></li><li><p>By invoking <code>setConcurrentConsumers()</code> 
directly on the <code>JmsEndpoint</code>.</p></li></ul><h4 
id="BookComponentAppendix-ConcurrentConsumingwithasyncconsumer">Concurrent 
Consuming with async consumer</h4><p>Notice that each concurrent consumer will 
only pickup the next available message from the JMS broker, when the current 
message has been fully processed. You can set the option 
<code>asyncConsumer=true</code> to let the consumer pickup the next message 
from the JMS queue, while the previous message is being processed 
asynchronously (by the <a shape="rect" 
href="asynchronous-routing-engine.html">Asynchronous Routing Engine</a>). See 
more details in the table on top of the page about the 
<code>asyncConsumer</code> option.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeCont
 ent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[from(&quot;jms:SomeQueue?concurrentConsumers=20&amp;asyncConsumer=true&quot;)
   .bean(MyClass.class);
 ]]></script>
@@ -5471,7 +5471,7 @@ from(aaa)
   .setHeader(&quot;CamelJmsRequestTimeout&quot;, method(ServiceBean.class, 
&quot;whatIsTheTimeout&quot;))
   .to(&quot;jms:queue:foo?replyTo=bar&amp;requestTimeout=30s&quot;)
   .to(&quot;bean:processReply&quot;);]]></script>
-</div></div><p>When you do fire and forget (<code>InOut</code>) over <a 
shape="rect" href="jms.html">JMS</a> Camel will, by default, 
<strong>not</strong> set a time to live value on the message. The value can be 
configured using the <code>timeToLive</code> option. For example to indicate a 
5 sec., you set <code>timeToLive=5000</code>. The option 
<code>disableTimeToLive</code> can be used to force disabling the time to live, 
also for&#160;<code>InOnly</code> messaging. The <code>requestTimeout</code> 
option is not being used for&#160;<code>InOnly</code> messaging.</p><h3 
id="BookComponentAppendix-EnablingTransactedConsumption">Enabling Transacted 
Consumption</h3><p><span class="confluence-anchor-link" 
id="BookComponentAppendix-transactedConsumption"></span></p><p>A common 
requirement is to consume from a queue in a transaction and then process the 
message using the Camel route. To do this, just ensure that you set the 
following properties on the component/endpoint:</p><ul><li><code>t
 ransacted = true</code></li><li><code>transactionManager</code> = 
&lt;<em>Some</em><em>TransactionManager</em>&gt; (typically the 
<code>JmsTransactionManager)</code></li></ul><p>See the <a shape="rect" 
href="transactional-client.html">Transactional Client</a> EIP pattern for 
further details.</p><div class="confluence-information-macro 
confluence-information-macro-information"><p class="title">Transactions and 
[Request Reply] over JMS</p><span class="aui-icon aui-icon-small 
aui-iconfont-info confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>When using <a shape="rect" 
href="request-reply.html">Request Reply</a> over JMS you cannot use a single 
transaction; JMS will not send any messages until a commit is performed, so the 
server side won't receive anything at all until the transaction commits. 
Therefore to use <a shape="rect" href="request-reply.html">Request Reply</a> 
you must commit a transaction after sending the request and then use a sepa
 rate transaction for receiving the response.</p><p>To address this issue the 
JMS component uses different properties to specify transaction use for oneway 
messaging and request reply messaging:</p><ul><li>The <code>transacted</code> 
property applies <strong>only</strong> to the&#160;<code>InOnly</code> message 
<a shape="rect" href="exchange-pattern.html">Exchange Pattern</a> 
(MEP).</li><li>The <code>transactedInOut</code> property applies to 
the&#160;<code>InOut</code> (<a shape="rect" href="request-reply.html">Request 
Reply</a>) message <a shape="rect" href="exchange-pattern.html">Exchange 
Pattern</a> (MEP). If you want to use transactions with 
the&#160;<code>InOut</code> (<a shape="rect" href="request-reply.html">Request 
Reply</a>) message <a shape="rect" href="exchange-pattern.html">Exchange 
Pattern</a> (MEP), you <strong>must</strong> set 
<code>transactedInOut=true</code>.</li></ul></div></div><p><strong>Avai lable 
as of Camel 2.10</strong></p><p>You can leverage the <a shape="r
 ect" class="external-link" 
href="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/jms/listener/AbstractPollingMessageListenerContainer.html#setSessionTransacted(boolean)"
 rel="nofollow">DMLC transacted session API</a> using the following properties 
on component/endpoint:</p><ul><li><code>transacted = 
true</code></li><li><code>lazyCreateTransactionManager = 
false</code></li></ul><p>The benefit of doing so is that 
the&#160;<code>cacheLevel</code> setting will be honored when using local 
transactions without a configured TransactionManager. When a TransactionManager 
is configured, no caching happens at DMLC level and its necessary to rely on a 
pooled connection factory. For more details about this kind of setup see <a 
shape="rect" class="external-link" 
href="http://tmielke.blogspot.com/2012/03/camel-jms-with-transactions-lessons.html";
 rel="nofollow">here</a> and <a shape="rect" class="external-link" 
href="http://forum.springsource.org/showthread.php?1236
 31-JMS-DMLC-not-caching 
connection-when-using-TX-despite-cacheLevel-CACHE_CONSUMER&amp;p=403530&amp;posted=1#post403530"
 rel="nofollow">here</a>.</p><h3 
id="BookComponentAppendix-UsingJMSReplyToforlatereplies">Using JMSReplyTo for 
late replies</h3><p>When using Camel as a JMS listener, it sets an Exchange 
property with the value of the ReplyTo 
<strong><code>javax.jms.Destination</code></strong> object, having the key 
<code>ReplyTo</code>. You can obtain this <code>Destination</code> as 
follows:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div><p>When you do fire and forget (<code>InOut</code>) over <a 
shape="rect" href="jms.html">JMS</a> Camel will, by default, 
<strong>not</strong> set a time to live value on the message. The value can be 
configured using the <code>timeToLive</code> option. For example to indicate a 
5 sec., you set <code>timeToLive=5000</code>. The option 
<code>disableTimeToLive</code> can be used to force disabling the time to live, 
also for&#160;<code>InOnly</code> messaging. The <code>requestTimeout</code> 
option is not being used for&#160;<code>InOnly</code> messaging.</p><h3 
id="BookComponentAppendix-EnablingTransactedConsumption">Enabling Transacted 
Consumption</h3><p><span class="confluence-anchor-link" 
id="BookComponentAppendix-transactedConsumption"></span></p><p>A common 
requirement is to consume from a queue in a transaction and then process the 
message using the Camel route. To do this, just ensure that you set the 
following properties on the component/endpoint:</p><ul><li><p><cod
 e>transacted = true</code></p></li><li><p><code>transactionManager</code> = 
&lt;<em>Some</em><em>TransactionManager</em>&gt; (typically the 
<code>JmsTransactionManager)</code></p></li></ul><p>See the <a shape="rect" 
href="transactional-client.html">Transactional Client</a> EIP pattern for 
further details.</p><div class="confluence-information-macro 
confluence-information-macro-information"><p class="title">Transactions and 
[Request Reply] over JMS</p><span class="aui-icon aui-icon-small 
aui-iconfont-info confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>When using <a shape="rect" 
href="request-reply.html">Request Reply</a> over JMS you cannot use a single 
transaction; JMS will not send any messages until a commit is performed, so the 
server side won't receive anything at all until the transaction commits. 
Therefore to use <a shape="rect" href="request-reply.html">Request Reply</a> 
you must commit a transaction after sending the request and t
 hen use a separate transaction for receiving the response.</p><p>To address 
this issue the JMS component uses different properties to specify transaction 
use for oneway messaging and request reply messaging:</p><ul><li>The 
<code>transacted</code> property applies <strong>only</strong> to 
the&#160;<code>InOnly</code> message <a shape="rect" 
href="exchange-pattern.html">Exchange Pattern</a> (MEP).</li><li>The 
<code>transactedInOut</code> property applies to the&#160;<code>InOut</code> 
(<a shape="rect" href="request-reply.html">Request Reply</a>) message <a 
shape="rect" href="exchange-pattern.html">Exchange Pattern</a> (MEP). If you 
want to use transactions with the&#160;<code>InOut</code> (<a shape="rect" 
href="request-reply.html">Request Reply</a>) message <a shape="rect" 
href="exchange-pattern.html">Exchange Pattern</a> (MEP), you 
<strong>must</strong> set 
<code>transactedInOut=true</code>.</li></ul></div></div><p><strong>Available as 
of Camel 2.10</strong></p><p>You can leverage th
 e <a shape="rect" class="external-link" 
href="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/jms/listener/AbstractPollingMessageListenerContainer.html#setSessionTransacted(boolean)"
 rel="nofollow">DMLC transacted session API</a> using the following properties 
on component/endpoint:</p><ul><li><p><code>transacted = 
true</code></p></li><li><p><code>lazyCreateTransactionManager = 
false</code></p></li></ul><p>The benefit of doing so is that 
the&#160;<code>cacheLevel</code> setting will be honored when using local 
transactions without a configured TransactionManager. When a TransactionManager 
is configured, no caching happens at DMLC level and its necessary to rely on a 
pooled connection factory. For more details about this kind of setup see <a 
shape="rect" class="external-link" 
href="http://tmielke.blogspot.com/2012/03/camel-jms-with-transactions-lessons.html";
 rel="nofollow">here</a> and <a shape="rect" class="external-link" 
href="http://forum.springsou
 rce.org/showthread.php?123631-JMS-DMLC-not-caching 
connection-when-using-TX-despite-cacheLevel-CACHE_CONSUMER&amp;p=403530&amp;posted=1#post403530"
 rel="nofollow">here</a>.</p><h3 
id="BookComponentAppendix-UsingJMSReplyToforlatereplies">Using JMSReplyTo for 
late replies</h3><p>When using Camel as a JMS listener, it sets an Exchange 
property with the value of the ReplyTo 
<strong><code>javax.jms.Destination</code></strong> object, having the key 
<code>ReplyTo</code>. You can obtain this <code>Destination</code> as 
follows:</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[Destination replyDestination = 
exchange.getIn().getHeader(JmsConstants.JMS_REPLY_DESTINATION, 
Destination.class);
 ]]></script>
 </div></div><p>And then later use it to send a reply using regular JMS or 
Camel.</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
@@ -5563,7 +5563,7 @@ wmq.setDestinationResolver(new Destinati
 });
 ]]></script>
 </div></div><p></p><h3 id="BookComponentAppendix-SeeAlso.32">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="transactional-client.html">Transactional Client</a></li><li><a 
shape="rect" href="bean-integration.html">Bean Integration</a></li><li><a 
shape="rect" 
href="tutorial-jmsremoting.html">Tutorial-JmsRemoting</a></li><li><a 
shape="rect" class="external-link" 
href="http://activemq.apache.org/jmstemplate-gotchas.html";>JMSTemplate 
gotchas</a></li></ul> <h2 id="BookComponentAppendix-JMXComponent">JMX 
Component</h2>
+<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="transactional-client.html">Transactional Client</a></li><li><a 
shape="rect" href="bean-integration.html">Bean Integration</a></li><li><a 
shape="rect" 
href="tutorial-jmsremoting.html">Tutorial-JmsRemoting</a></li><li><a 
shape="rect" class="external-link" 
href="http://activemq.apache.org/jmstemplate-gotchas.html";>JMSTemplate 
gotchas</a></li></ul><div class="firebugResetStyles firebugBlockBackgroundColor 
firebugLayoutBox firebugLayoutBoxOffset" style="left: 10.0px;top: 
307.0px;"><div class="firebugResetStyles firebugLayoutBox" style="padding: 
10.0px 0.0px 0.0px;background-color: rgb(237,255,100);"><div 
class="firebugResetStyles firebugLayoutBox" style="padding: 1.0px;b
 ackground-color: rgb(68,68,68);"></div></div></div> <h2 
id="BookComponentAppendix-JMXComponent">JMX Component</h2>
 <p><strong>Available as of Camel 2.6</strong></p>
 
 <h3 id="BookComponentAppendix-StandardJMXConsumerConfiguration">Standard JMX 
Consumer Configuration</h3>
@@ -8087,7 +8087,61 @@ assertMockEndpointsSatisfied();
                     // which should have the value of {{stop}} key being 
looked up in the properties file
                     .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="BookComponentAppendix-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="error"><span class="error">Error 
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, 
Size: 20</span> </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 
 >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:</p><div class="error"><span class="error">Error formatting 
 >macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 
 >20</span> </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="BookComponentAppendix-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="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 as needed --&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><p><span style="line-height: 1.42857;"><br 
clear="none"></span></p><p><span style="line-height: 1.42857;">By default Camel 
detects and uses OSGi blueprint property placeholder service. You can disable 
this by setting the attribute </span><code style="line-height: 
1.42857;">useBlueprintPropertyResolver</code><span style="line-height: 
1.42857;"> to false on the </span><code style="line-height: 
1.42857;">&lt;camelContext&gt;</code><span style="line-height: 1.42857;"> 
definition.</span></p><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;cam
 elContext&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:</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;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 as needed --&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><p>&#160;</p><p>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="BookComponentAppendix-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">

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 Tue Aug  2 18:19:51 
2016
@@ -3619,11 +3619,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.rbtoc1470143948251 {padding: 0px;}
-div.rbtoc1470143948251 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1470143948251 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1470161891904 {padding: 0px;}
+div.rbtoc1470161891904 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1470161891904 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1470143948251">
+/*]]>*/</style></p><div class="toc-macro rbtoc1470161891904">
 <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>
@@ -5738,11 +5738,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.rbtoc1470143948889 {padding: 0px;}
-div.rbtoc1470143948889 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1470143948889 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1470161892837 {padding: 0px;}
+div.rbtoc1470161892837 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1470161892837 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1470143948889">
+/*]]>*/</style><div class="toc-macro rbtoc1470161892837">
 <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>
@@ -17167,11 +17167,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.rbtoc1470143972801 {padding: 0px;}
-div.rbtoc1470143972801 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1470143972801 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1470161913825 {padding: 0px;}
+div.rbtoc1470161913825 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1470161913825 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1470143972801">
+/*]]>*/</style></p><div class="toc-macro rbtoc1470161913825">
 <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>
@@ -21548,7 +21548,7 @@ rnc:someLocalOrRemoteResource]]></script
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[from(&quot;jms:SomeQueue?concurrentConsumers=20&quot;)
   .bean(MyClass.class);
 ]]></script>
-</div></div><p>You can configure this option in one of the following 
ways:</p><ul><li>On the <code>JmsComponent</code>,</li><li>On the endpoint URI 
or,</li><li>By invoking <code>setConcurrentConsumers()</code> directly on the 
<code>JmsEndpoint</code>.</li></ul><h4 
id="BookInOnePage-ConcurrentConsumingwithasyncconsumer">Concurrent Consuming 
with async consumer</h4><p>Notice that each concurrent consumer will only 
pickup the next available message from the JMS broker, when the current message 
has been fully processed. You can set the option 
<code>asyncConsumer=true</code> to let the consumer pickup the next message 
from the JMS queue, while the previous message is being processed 
asynchronously (by the <a shape="rect" 
href="asynchronous-routing-engine.html">Asynchronous Routing Engine</a>). See 
more details in the table on top of the page about the 
<code>asyncConsumer</code> option.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>You can configure this option in one of the following 
ways:</p><ul><li><p>On the <code>JmsComponent</code></p></li><li><p>On the 
endpoint URI.</p></li><li><p>By invoking <code>setConcurrentConsumers()</code> 
directly on the <code>JmsEndpoint</code>.</p></li></ul><h4 
id="BookInOnePage-ConcurrentConsumingwithasyncconsumer">Concurrent Consuming 
with async consumer</h4><p>Notice that each concurrent consumer will only 
pickup the next available message from the JMS broker, when the current message 
has been fully processed. You can set the option 
<code>asyncConsumer=true</code> to let the consumer pickup the next message 
from the JMS queue, while the previous message is being processed 
asynchronously (by the <a shape="rect" 
href="asynchronous-routing-engine.html">Asynchronous Routing Engine</a>). See 
more details in the table on top of the page about the 
<code>asyncConsumer</code> option.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent pane
 lContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[from(&quot;jms:SomeQueue?concurrentConsumers=20&amp;asyncConsumer=true&quot;)
   .bean(MyClass.class);
 ]]></script>
@@ -21598,7 +21598,7 @@ from(aaa)
   .setHeader(&quot;CamelJmsRequestTimeout&quot;, method(ServiceBean.class, 
&quot;whatIsTheTimeout&quot;))
   .to(&quot;jms:queue:foo?replyTo=bar&amp;requestTimeout=30s&quot;)
   .to(&quot;bean:processReply&quot;);]]></script>
-</div></div><p>When you do fire and forget (<code>InOut</code>) over <a 
shape="rect" href="jms.html">JMS</a> Camel will, by default, 
<strong>not</strong> set a time to live value on the message. The value can be 
configured using the <code>timeToLive</code> option. For example to indicate a 
5 sec., you set <code>timeToLive=5000</code>. The option 
<code>disableTimeToLive</code> can be used to force disabling the time to live, 
also for&#160;<code>InOnly</code> messaging. The <code>requestTimeout</code> 
option is not being used for&#160;<code>InOnly</code> messaging.</p><h3 
id="BookInOnePage-EnablingTransactedConsumption">Enabling Transacted 
Consumption</h3><p><span class="confluence-anchor-link" 
id="BookInOnePage-transactedConsumption"></span></p><p>A common requirement is 
to consume from a queue in a transaction and then process the message using the 
Camel route. To do this, just ensure that you set the following properties on 
the component/endpoint:</p><ul><li><code>transacted = true
 </code></li><li><code>transactionManager</code> = 
&lt;<em>Some</em><em>TransactionManager</em>&gt; (typically the 
<code>JmsTransactionManager)</code></li></ul><p>See the <a shape="rect" 
href="transactional-client.html">Transactional Client</a> EIP pattern for 
further details.</p><div class="confluence-information-macro 
confluence-information-macro-information"><p class="title">Transactions and 
[Request Reply] over JMS</p><span class="aui-icon aui-icon-small 
aui-iconfont-info confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>When using <a shape="rect" 
href="request-reply.html">Request Reply</a> over JMS you cannot use a single 
transaction; JMS will not send any messages until a commit is performed, so the 
server side won't receive anything at all until the transaction commits. 
Therefore to use <a shape="rect" href="request-reply.html">Request Reply</a> 
you must commit a transaction after sending the request and then use a separate 
transaction
  for receiving the response.</p><p>To address this issue the JMS component 
uses different properties to specify transaction use for oneway messaging and 
request reply messaging:</p><ul><li>The <code>transacted</code> property 
applies <strong>only</strong> to the&#160;<code>InOnly</code> message <a 
shape="rect" href="exchange-pattern.html">Exchange Pattern</a> 
(MEP).</li><li>The <code>transactedInOut</code> property applies to 
the&#160;<code>InOut</code> (<a shape="rect" href="request-reply.html">Request 
Reply</a>) message <a shape="rect" href="exchange-pattern.html">Exchange 
Pattern</a> (MEP). If you want to use transactions with 
the&#160;<code>InOut</code> (<a shape="rect" href="request-reply.html">Request 
Reply</a>) message <a shape="rect" href="exchange-pattern.html">Exchange 
Pattern</a> (MEP), you <strong>must</strong> set 
<code>transactedInOut=true</code>.</li></ul></div></div><p><strong>Avai lable 
as of Camel 2.10</strong></p><p>You can leverage the <a shape="rect" class="exte
 rnal-link" 
href="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/jms/listener/AbstractPollingMessageListenerContainer.html#setSessionTransacted(boolean)"
 rel="nofollow">DMLC transacted session API</a> using the following properties 
on component/endpoint:</p><ul><li><code>transacted = 
true</code></li><li><code>lazyCreateTransactionManager = 
false</code></li></ul><p>The benefit of doing so is that 
the&#160;<code>cacheLevel</code> setting will be honored when using local 
transactions without a configured TransactionManager. When a TransactionManager 
is configured, no caching happens at DMLC level and its necessary to rely on a 
pooled connection factory. For more details about this kind of setup see <a 
shape="rect" class="external-link" 
href="http://tmielke.blogspot.com/2012/03/camel-jms-with-transactions-lessons.html";
 rel="nofollow">here</a> and <a shape="rect" class="external-link" 
href="http://forum.springsource.org/showthread.php?123631-JMS-DMLC-not-
 caching 
connection-when-using-TX-despite-cacheLevel-CACHE_CONSUMER&amp;p=403530&amp;posted=1#post403530"
 rel="nofollow">here</a>.</p><h3 
id="BookInOnePage-UsingJMSReplyToforlatereplies">Using JMSReplyTo for late 
replies</h3><p>When using Camel as a JMS listener, it sets an Exchange property 
with the value of the ReplyTo 
<strong><code>javax.jms.Destination</code></strong> object, having the key 
<code>ReplyTo</code>. You can obtain this <code>Destination</code> as 
follows:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div><p>When you do fire and forget (<code>InOut</code>) over <a 
shape="rect" href="jms.html">JMS</a> Camel will, by default, 
<strong>not</strong> set a time to live value on the message. The value can be 
configured using the <code>timeToLive</code> option. For example to indicate a 
5 sec., you set <code>timeToLive=5000</code>. The option 
<code>disableTimeToLive</code> can be used to force disabling the time to live, 
also for&#160;<code>InOnly</code> messaging. The <code>requestTimeout</code> 
option is not being used for&#160;<code>InOnly</code> messaging.</p><h3 
id="BookInOnePage-EnablingTransactedConsumption">Enabling Transacted 
Consumption</h3><p><span class="confluence-anchor-link" 
id="BookInOnePage-transactedConsumption"></span></p><p>A common requirement is 
to consume from a queue in a transaction and then process the message using the 
Camel route. To do this, just ensure that you set the following properties on 
the component/endpoint:</p><ul><li><p><code>transacted = t
 rue</code></p></li><li><p><code>transactionManager</code> = 
&lt;<em>Some</em><em>TransactionManager</em>&gt; (typically the 
<code>JmsTransactionManager)</code></p></li></ul><p>See the <a shape="rect" 
href="transactional-client.html">Transactional Client</a> EIP pattern for 
further details.</p><div class="confluence-information-macro 
confluence-information-macro-information"><p class="title">Transactions and 
[Request Reply] over JMS</p><span class="aui-icon aui-icon-small 
aui-iconfont-info confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>When using <a shape="rect" 
href="request-reply.html">Request Reply</a> over JMS you cannot use a single 
transaction; JMS will not send any messages until a commit is performed, so the 
server side won't receive anything at all until the transaction commits. 
Therefore to use <a shape="rect" href="request-reply.html">Request Reply</a> 
you must commit a transaction after sending the request and then use a separa
 te transaction for receiving the response.</p><p>To address this issue the JMS 
component uses different properties to specify transaction use for oneway 
messaging and request reply messaging:</p><ul><li>The <code>transacted</code> 
property applies <strong>only</strong> to the&#160;<code>InOnly</code> message 
<a shape="rect" href="exchange-pattern.html">Exchange Pattern</a> 
(MEP).</li><li>The <code>transactedInOut</code> property applies to 
the&#160;<code>InOut</code> (<a shape="rect" href="request-reply.html">Request 
Reply</a>) message <a shape="rect" href="exchange-pattern.html">Exchange 
Pattern</a> (MEP). If you want to use transactions with 
the&#160;<code>InOut</code> (<a shape="rect" href="request-reply.html">Request 
Reply</a>) message <a shape="rect" href="exchange-pattern.html">Exchange 
Pattern</a> (MEP), you <strong>must</strong> set 
<code>transactedInOut=true</code>.</li></ul></div></div><p><strong>Available as 
of Camel 2.10</strong></p><p>You can leverage the <a shape="rect
 " class="external-link" 
href="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/jms/listener/AbstractPollingMessageListenerContainer.html#setSessionTransacted(boolean)"
 rel="nofollow">DMLC transacted session API</a> using the following properties 
on component/endpoint:</p><ul><li><p><code>transacted = 
true</code></p></li><li><p><code>lazyCreateTransactionManager = 
false</code></p></li></ul><p>The benefit of doing so is that 
the&#160;<code>cacheLevel</code> setting will be honored when using local 
transactions without a configured TransactionManager. When a TransactionManager 
is configured, no caching happens at DMLC level and its necessary to rely on a 
pooled connection factory. For more details about this kind of setup see <a 
shape="rect" class="external-link" 
href="http://tmielke.blogspot.com/2012/03/camel-jms-with-transactions-lessons.html";
 rel="nofollow">here</a> and <a shape="rect" class="external-link" 
href="http://forum.springsource.org/showthre
 ad.php?123631-JMS-DMLC-not-caching 
connection-when-using-TX-despite-cacheLevel-CACHE_CONSUMER&amp;p=403530&amp;posted=1#post403530"
 rel="nofollow">here</a>.</p><h3 
id="BookInOnePage-UsingJMSReplyToforlatereplies">Using JMSReplyTo for late 
replies</h3><p>When using Camel as a JMS listener, it sets an Exchange property 
with the value of the ReplyTo 
<strong><code>javax.jms.Destination</code></strong> object, having the key 
<code>ReplyTo</code>. You can obtain this <code>Destination</code> as 
follows:</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[Destination replyDestination = 
exchange.getIn().getHeader(JmsConstants.JMS_REPLY_DESTINATION, 
Destination.class);
 ]]></script>
 </div></div><p>And then later use it to send a reply using regular JMS or 
Camel.</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
@@ -21690,7 +21690,7 @@ wmq.setDestinationResolver(new Destinati
 });
 ]]></script>
 </div></div><p></p><h3 id="BookInOnePage-SeeAlso.52">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="transactional-client.html">Transactional Client</a></li><li><a 
shape="rect" href="bean-integration.html">Bean Integration</a></li><li><a 
shape="rect" 
href="tutorial-jmsremoting.html">Tutorial-JmsRemoting</a></li><li><a 
shape="rect" class="external-link" 
href="http://activemq.apache.org/jmstemplate-gotchas.html";>JMSTemplate 
gotchas</a></li></ul> <h2 id="BookInOnePage-JMXComponent">JMX Component</h2>
+<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="transactional-client.html">Transactional Client</a></li><li><a 
shape="rect" href="bean-integration.html">Bean Integration</a></li><li><a 
shape="rect" 
href="tutorial-jmsremoting.html">Tutorial-JmsRemoting</a></li><li><a 
shape="rect" class="external-link" 
href="http://activemq.apache.org/jmstemplate-gotchas.html";>JMSTemplate 
gotchas</a></li></ul><div class="firebugResetStyles firebugBlockBackgroundColor 
firebugLayoutBox firebugLayoutBoxOffset" style="left: 10.0px;top: 
307.0px;"><div class="firebugResetStyles firebugLayoutBox" style="padding: 
10.0px 0.0px 0.0px;background-color: rgb(237,255,100);"><div 
class="firebugResetStyles firebugLayoutBox" style="padding: 1.0px;b
 ackground-color: rgb(68,68,68);"></div></div></div> <h2 
id="BookInOnePage-JMXComponent">JMX Component</h2>
 <p><strong>Available as of Camel 2.6</strong></p>
 
 <h3 id="BookInOnePage-StandardJMXConsumerConfiguration">Standard JMX Consumer 
Configuration</h3>
@@ -24214,7 +24214,61 @@ assertMockEndpointsSatisfied();
                     // which should have the value of {{stop}} key being 
looked up in the properties file
                     .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="error"><span class="error">Error 
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, 
Size: 20</span> </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 c
 lass="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:</p><div 
class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>Notice 
how we use the <code>blueprint</code> scheme to refer to the OSG
 i 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:</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;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 as needed --&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><p><span style="line-height: 1.42857;"><br 
clear="none"></span></p><p><span style="line-height: 1.42857;">By default Camel 
detects and uses OSGi blueprint property placeholder service. You can disable 
this by setting the attribute </span><code style="line-height: 
1.42857;">useBlueprintPropertyResolver</code><span style="line-height: 
1.42857;"> to false on the </span><code style="line-height: 
1.42857;">&lt;camelContext&gt;</code><span style="line-height: 1.42857;"> 
definition.</span></p><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;cam
 elContext&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:</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;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 as needed --&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><p>&#160;</p><p>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">

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

Modified: websites/production/camel/content/jms.html
==============================================================================
--- websites/production/camel/content/jms.html (original)
+++ websites/production/camel/content/jms.html Tue Aug  2 18:19:51 2016
@@ -165,7 +165,7 @@
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[from(&quot;jms:SomeQueue?concurrentConsumers=20&quot;)
   .bean(MyClass.class);
 ]]></script>
-</div></div><p>You can configure this option in one of the following 
ways:</p><ul><li>On the <code>JmsComponent</code>,</li><li>On the endpoint URI 
or,</li><li>By invoking <code>setConcurrentConsumers()</code> directly on the 
<code>JmsEndpoint</code>.</li></ul><h4 
id="JMS-ConcurrentConsumingwithasyncconsumer">Concurrent Consuming with async 
consumer</h4><p>Notice that each concurrent consumer will only pickup the next 
available message from the JMS broker, when the current message has been fully 
processed. You can set the option <code>asyncConsumer=true</code> to let the 
consumer pickup the next message from the JMS queue, while the previous message 
is being processed asynchronously (by the <a shape="rect" 
href="asynchronous-routing-engine.html">Asynchronous Routing Engine</a>). See 
more details in the table on top of the page about the 
<code>asyncConsumer</code> option.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>You can configure this option in one of the following 
ways:</p><ul><li><p>On the <code>JmsComponent</code></p></li><li><p>On the 
endpoint URI.</p></li><li><p>By invoking <code>setConcurrentConsumers()</code> 
directly on the <code>JmsEndpoint</code>.</p></li></ul><h4 
id="JMS-ConcurrentConsumingwithasyncconsumer">Concurrent Consuming with async 
consumer</h4><p>Notice that each concurrent consumer will only pickup the next 
available message from the JMS broker, when the current message has been fully 
processed. You can set the option <code>asyncConsumer=true</code> to let the 
consumer pickup the next message from the JMS queue, while the previous message 
is being processed asynchronously (by the <a shape="rect" 
href="asynchronous-routing-engine.html">Asynchronous Routing Engine</a>). See 
more details in the table on top of the page about the 
<code>asyncConsumer</code> option.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent p
 dl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[from(&quot;jms:SomeQueue?concurrentConsumers=20&amp;asyncConsumer=true&quot;)
   .bean(MyClass.class);
 ]]></script>
@@ -215,7 +215,7 @@ from(aaa)
   .setHeader(&quot;CamelJmsRequestTimeout&quot;, method(ServiceBean.class, 
&quot;whatIsTheTimeout&quot;))
   .to(&quot;jms:queue:foo?replyTo=bar&amp;requestTimeout=30s&quot;)
   .to(&quot;bean:processReply&quot;);]]></script>
-</div></div><p>When you do fire and forget (<code>InOut</code>) over <a 
shape="rect" href="jms.html">JMS</a> Camel will, by default, 
<strong>not</strong> set a time to live value on the message. The value can be 
configured using the <code>timeToLive</code> option. For example to indicate a 
5 sec., you set <code>timeToLive=5000</code>. The option 
<code>disableTimeToLive</code> can be used to force disabling the time to live, 
also for&#160;<code>InOnly</code> messaging. The <code>requestTimeout</code> 
option is not being used for&#160;<code>InOnly</code> messaging.</p><h3 
id="JMS-EnablingTransactedConsumption">Enabling Transacted 
Consumption</h3><p><span class="confluence-anchor-link" 
id="JMS-transactedConsumption"></span></p><p>A common requirement is to consume 
from a queue in a transaction and then process the message using the Camel 
route. To do this, just ensure that you set the following properties on the 
component/endpoint:</p><ul><li><code>transacted = true</code></li><li><cod
 e>transactionManager</code> = &lt;<em>Some</em><em>TransactionManager</em>&gt; 
(typically the <code>JmsTransactionManager)</code></li></ul><p>See the <a 
shape="rect" href="transactional-client.html">Transactional Client</a> EIP 
pattern for further details.</p><div class="confluence-information-macro 
confluence-information-macro-information"><p class="title">Transactions and 
[Request Reply] over JMS</p><span class="aui-icon aui-icon-small 
aui-iconfont-info confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>When using <a shape="rect" 
href="request-reply.html">Request Reply</a> over JMS you cannot use a single 
transaction; JMS will not send any messages until a commit is performed, so the 
server side won't receive anything at all until the transaction commits. 
Therefore to use <a shape="rect" href="request-reply.html">Request Reply</a> 
you must commit a transaction after sending the request and then use a separate 
transaction for receiving the r
 esponse.</p><p>To address this issue the JMS component uses different 
properties to specify transaction use for oneway messaging and request reply 
messaging:</p><ul><li>The <code>transacted</code> property applies 
<strong>only</strong> to the&#160;<code>InOnly</code> message <a shape="rect" 
href="exchange-pattern.html">Exchange Pattern</a> (MEP).</li><li>The 
<code>transactedInOut</code> property applies to the&#160;<code>InOut</code> 
(<a shape="rect" href="request-reply.html">Request Reply</a>) message <a 
shape="rect" href="exchange-pattern.html">Exchange Pattern</a> (MEP). If you 
want to use transactions with the&#160;<code>InOut</code> (<a shape="rect" 
href="request-reply.html">Request Reply</a>) message <a shape="rect" 
href="exchange-pattern.html">Exchange Pattern</a> (MEP), you 
<strong>must</strong> set 
<code>transactedInOut=true</code>.</li></ul></div></div><p><strong>Avai lable 
as of Camel 2.10</strong></p><p>You can leverage the <a shape="rect" 
class="external-link" href="htt
 
p://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/jms/listener/AbstractPollingMessageListenerContainer.html#setSessionTransacted(boolean)"
 rel="nofollow">DMLC transacted session API</a> using the following properties 
on component/endpoint:</p><ul><li><code>transacted = 
true</code></li><li><code>lazyCreateTransactionManager = 
false</code></li></ul><p>The benefit of doing so is that 
the&#160;<code>cacheLevel</code> setting will be honored when using local 
transactions without a configured TransactionManager. When a TransactionManager 
is configured, no caching happens at DMLC level and its necessary to rely on a 
pooled connection factory. For more details about this kind of setup see <a 
shape="rect" class="external-link" 
href="http://tmielke.blogspot.com/2012/03/camel-jms-with-transactions-lessons.html";
 rel="nofollow">here</a> and <a shape="rect" class="external-link" 
href="http://forum.springsource.org/showthread.php?123631-JMS-DMLC-not-caching 
connection-w
 
hen-using-TX-despite-cacheLevel-CACHE_CONSUMER&amp;p=403530&amp;posted=1#post403530"
 rel="nofollow">here</a>.</p><h3 id="JMS-UsingJMSReplyToforlatereplies">Using 
JMSReplyTo for late replies</h3><p>When using Camel as a JMS listener, it sets 
an Exchange property with the value of the ReplyTo 
<strong><code>javax.jms.Destination</code></strong> object, having the key 
<code>ReplyTo</code>. You can obtain this <code>Destination</code> as 
follows:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div><p>When you do fire and forget (<code>InOut</code>) over <a 
shape="rect" href="jms.html">JMS</a> Camel will, by default, 
<strong>not</strong> set a time to live value on the message. The value can be 
configured using the <code>timeToLive</code> option. For example to indicate a 
5 sec., you set <code>timeToLive=5000</code>. The option 
<code>disableTimeToLive</code> can be used to force disabling the time to live, 
also for&#160;<code>InOnly</code> messaging. The <code>requestTimeout</code> 
option is not being used for&#160;<code>InOnly</code> messaging.</p><h3 
id="JMS-EnablingTransactedConsumption">Enabling Transacted 
Consumption</h3><p><span class="confluence-anchor-link" 
id="JMS-transactedConsumption"></span></p><p>A common requirement is to consume 
from a queue in a transaction and then process the message using the Camel 
route. To do this, just ensure that you set the following properties on the 
component/endpoint:</p><ul><li><p><code>transacted = true</code></p></li><
 li><p><code>transactionManager</code> = 
&lt;<em>Some</em><em>TransactionManager</em>&gt; (typically the 
<code>JmsTransactionManager)</code></p></li></ul><p>See the <a shape="rect" 
href="transactional-client.html">Transactional Client</a> EIP pattern for 
further details.</p><div class="confluence-information-macro 
confluence-information-macro-information"><p class="title">Transactions and 
[Request Reply] over JMS</p><span class="aui-icon aui-icon-small 
aui-iconfont-info confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>When using <a shape="rect" 
href="request-reply.html">Request Reply</a> over JMS you cannot use a single 
transaction; JMS will not send any messages until a commit is performed, so the 
server side won't receive anything at all until the transaction commits. 
Therefore to use <a shape="rect" href="request-reply.html">Request Reply</a> 
you must commit a transaction after sending the request and then use a separate 
transaction for r
 eceiving the response.</p><p>To address this issue the JMS component uses 
different properties to specify transaction use for oneway messaging and 
request reply messaging:</p><ul><li>The <code>transacted</code> property 
applies <strong>only</strong> to the&#160;<code>InOnly</code> message <a 
shape="rect" href="exchange-pattern.html">Exchange Pattern</a> 
(MEP).</li><li>The <code>transactedInOut</code> property applies to 
the&#160;<code>InOut</code> (<a shape="rect" href="request-reply.html">Request 
Reply</a>) message <a shape="rect" href="exchange-pattern.html">Exchange 
Pattern</a> (MEP). If you want to use transactions with 
the&#160;<code>InOut</code> (<a shape="rect" href="request-reply.html">Request 
Reply</a>) message <a shape="rect" href="exchange-pattern.html">Exchange 
Pattern</a> (MEP), you <strong>must</strong> set 
<code>transactedInOut=true</code>.</li></ul></div></div><p><strong>Available as 
of Camel 2.10</strong></p><p>You can leverage the <a shape="rect" 
class="external-li
 nk" 
href="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/jms/listener/AbstractPollingMessageListenerContainer.html#setSessionTransacted(boolean)"
 rel="nofollow">DMLC transacted session API</a> using the following properties 
on component/endpoint:</p><ul><li><p><code>transacted = 
true</code></p></li><li><p><code>lazyCreateTransactionManager = 
false</code></p></li></ul><p>The benefit of doing so is that 
the&#160;<code>cacheLevel</code> setting will be honored when using local 
transactions without a configured TransactionManager. When a TransactionManager 
is configured, no caching happens at DMLC level and its necessary to rely on a 
pooled connection factory. For more details about this kind of setup see <a 
shape="rect" class="external-link" 
href="http://tmielke.blogspot.com/2012/03/camel-jms-with-transactions-lessons.html";
 rel="nofollow">here</a> and <a shape="rect" class="external-link" 
href="http://forum.springsource.org/showthread.php?123631-JMS-DM
 LC-not-caching 
connection-when-using-TX-despite-cacheLevel-CACHE_CONSUMER&amp;p=403530&amp;posted=1#post403530"
 rel="nofollow">here</a>.</p><h3 id="JMS-UsingJMSReplyToforlatereplies">Using 
JMSReplyTo for late replies</h3><p>When using Camel as a JMS listener, it sets 
an Exchange property with the value of the ReplyTo 
<strong><code>javax.jms.Destination</code></strong> object, having the key 
<code>ReplyTo</code>. You can obtain this <code>Destination</code> as 
follows:</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[Destination replyDestination = 
exchange.getIn().getHeader(JmsConstants.JMS_REPLY_DESTINATION, 
Destination.class);
 ]]></script>
 </div></div><p>And then later use it to send a reply using regular JMS or 
Camel.</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
@@ -307,7 +307,7 @@ wmq.setDestinationResolver(new Destinati
 });
 ]]></script>
 </div></div><p></p><h3 id="JMS-SeeAlso">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="transactional-client.html">Transactional Client</a></li><li><a 
shape="rect" href="bean-integration.html">Bean Integration</a></li><li><a 
shape="rect" 
href="tutorial-jmsremoting.html">Tutorial-JmsRemoting</a></li><li><a 
shape="rect" class="external-link" 
href="http://activemq.apache.org/jmstemplate-gotchas.html";>JMSTemplate 
gotchas</a></li></ul></div>
+<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="transactional-client.html">Transactional Client</a></li><li><a 
shape="rect" href="bean-integration.html">Bean Integration</a></li><li><a 
shape="rect" 
href="tutorial-jmsremoting.html">Tutorial-JmsRemoting</a></li><li><a 
shape="rect" class="external-link" 
href="http://activemq.apache.org/jmstemplate-gotchas.html";>JMSTemplate 
gotchas</a></li></ul><div class="firebugResetStyles firebugBlockBackgroundColor 
firebugLayoutBox firebugLayoutBoxOffset" style="left: 10.0px;top: 
307.0px;"><div class="firebugResetStyles firebugLayoutBox" style="padding: 
10.0px 0.0px 0.0px;background-color: rgb(237,255,100);"><div 
class="firebugResetStyles firebugLayoutBox" style="padding: 1.0px;b
 ackground-color: rgb(68,68,68);"></div></div></div></div>
         </td>
         <td valign="top">
           <div class="navigation">

Modified: websites/production/camel/content/properties.html
==============================================================================
--- websites/production/camel/content/properties.html (original)
+++ websites/production/camel/content/properties.html Tue Aug  2 18:19:51 2016
@@ -295,7 +295,61 @@ assertMockEndpointsSatisfied();
                     // which should have the value of {{stop}} key being 
looked up in the properties file
                     .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="Properties-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="error"><span class="error">Error 
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, 
Size: 20</span> </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 clas
 s="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:</p><div 
class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>Notice 
how we use the <code>blueprint</code> scheme to refer to the OSGi b
 lueprint 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="Properties-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="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 as needed --&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><p><span style="line-height: 1.42857;"><br 
clear="none"></span></p><p><span style="line-height: 1.42857;">By default Camel 
detects and uses OSGi blueprint property placeholder service. You can disable 
this by setting the attribute </span><code style="line-height: 
1.42857;">useBlueprintPropertyResolver</code><span style="line-height: 
1.42857;"> to false on the </span><code style="line-height: 
1.42857;">&lt;camelContext&gt;</code><span style="line-height: 1.42857;"> 
definition.</span></p><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;cam
 elContext&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:</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;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 as needed --&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><p>&#160;</p><p>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="Properties-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">


Reply via email to