You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by bu...@apache.org on 2016/03/20 15:20:55 UTC

svn commit: r983249 [2/3] - in /websites/production/camel/content: bean.html book-component-appendix.html book-in-one-page.html cache.html cache/main.pageCache http4.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 Sun Mar 20 14:20:55 2016
@@ -3724,11 +3724,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.rbtoc1458476265388 {padding: 0px;}
-div.rbtoc1458476265388 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1458476265388 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1458483513127 {padding: 0px;}
+div.rbtoc1458483513127 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1458483513127 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1458476265388">
+/*]]>*/</style></p><div class="toc-macro rbtoc1458483513127">
 <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>
@@ -5843,11 +5843,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.rbtoc1458476265883 {padding: 0px;}
-div.rbtoc1458476265883 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1458476265883 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1458483513713 {padding: 0px;}
+div.rbtoc1458483513713 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1458483513713 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1458476265883">
+/*]]>*/</style><div class="toc-macro rbtoc1458483513713">
 <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>
@@ -16667,7 +16667,7 @@ 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"><code>bean.xxx</code></td><td colspan="1" rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" class="confluenceTd"><code>null</code></td><td colspan="1" rowspan="1" class="confluenceTd"><strong>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.</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="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">
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
 // lets add simple route
 camelContext.addRoutes(new RouteBuilder() {
@@ -16784,7 +16784,7 @@ browse:someName[?options]
 </div></div><h3 id="BookInOnePage-URIformat.6">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[cache://cacheName[?options]
 ]]></script>
-</div></div><p>You can append query options to the URI in the following format, <code>?option=value&amp;option=#beanRef&amp;...</code></p><h3 id="BookInOnePage-Options.24">Options</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>maxElementsInMemory</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>1000</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The number of elements that may be stored in the defined cache</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>memoryStoreEvictionPolicy</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>MemoryStoreEvictionPolicy.LFU</code></p></td><td colspan="1" rowspa
 n="1" class="confluenceTd"><p>The number of elements that may be stored in the defined cache. Options include</p><ul class="alternate"><li>MemoryStoreEvictionPolicy.LFU - Least frequently used</li><li>MemoryStoreEvictionPolicy.LRU - Least recently used</li><li>MemoryStoreEvictionPolicy.FIFO - first in first out, the oldest element by creation time</li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>overflowToDisk</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Specifies whether cache may overflow to disk</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>eternal</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Sets whether elements are eternal. If eternal, timeouts are ignored and the<br clear="none" class="atl-forced-newline"> element neve
 r expires.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>timeToLiveSeconds</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>300</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The maximum time between creation time and when an element expires.<br clear="none" class="atl-forced-newline"> Is used only if the element is not eternal</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>timeToIdleSeconds</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>300</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The maximum amount of time between accesses before an element expires</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>diskPersistent</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Whether the disk store persists between restarts of
  the Virtual Machine.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>diskExpiryThreadIntervalSeconds</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>120</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The number of seconds between runs of the disk expiry thread.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>cacheManagerFactory</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.8:</strong> If you want to use a custom factory which instantiates and creates the EHCache <code>net.sf.ehcache.CacheManager</code>. <br clear="none" class="atl-forced-newline"> <br clear="none" class="atl-forced-newline"> <em>Type:</em> abstract org.apache.camel.component.cache.CacheManagerFactory</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>eventListenerRegistry</code></p
 ></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.8:</strong> Sets a list of EHCache <code>net.sf.ehcache.event.CacheEventListener</code> for all new caches- no need to define it per cache in EHCache xml config anymore. <br clear="none" class="atl-forced-newline"> <br clear="none" class="atl-forced-newline"> <em>Type:</em> org.apache.camel.component.cache.CacheEventListenerRegistry</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>cacheLoaderRegistry</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.8:</strong> Sets a list of <code>org.apache.camel.component.cache.CacheLoaderWrapper</code> that extends EHCache <code>net.sf.ehcache.loader.CacheLoader</code> for all new caches- no need to define it per cache in EHCache xml config anymore. <br clear="n
 one" class="atl-forced-newline"> <br clear="none" class="atl-forced-newline"> <em>Type:</em> org.apache.camel.component.cache.CacheLoaderRegistry</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>key</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10:</strong> To configure using a cache key by default. If a key is provided in the message header, then the key from the header takes precedence.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>operation</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10:</strong> To configure using an cache operation by default. If an operation in the message header, then the operation from the header takes precedence.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceT
 d"><code>objectCache</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>false</code></td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.15:</strong> Whether to turn on allowing to store non serializable objects in the cache. If this option is enabled then overflow to disk cannot be enabled as well.</td></tr></tbody></table></div><h3 id="BookInOnePage-CacheComponentoptions">Cache Component options</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>configuration</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a custom <code>org.apache.camel.component.cache.CacheConfigur
 ation</code> configuration.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>cacheManagerFactory</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a custom <code>org.apache.camel.component.cache.CacheManagerFactory</code>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>configurationFile</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.13/2.12.3:</strong> To configure the location of the <code>ehcache.xml</code> file to use, such as <code>classpath:com/foo/mycache.xml</code> to load from classpath. If no configuration is given, then the default settings from EHCache is used.</p></td></tr></tbody></table></div><h3 id="BookInOnePage-Sending/ReceivingMessagesto/fromthecache"><span style="line-height: 1.5625;">Sending/Receiving Messages to/from t
 he cache</span></h3><h4 id="BookInOnePage-MessageHeadersuptoCamel2.7">Message Headers up to Camel 2.7</h4><div class="confluenceTableSmall"><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Header</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CACHE_OPERATION</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The operation to be performed on the cache. Valid options are</p><ul class="alternate"><li>GET</li><li>CHECK</li><li>ADD</li><li>UPDATE</li><li>DELETE</li><li>DELETEALL<br clear="none" class="atl-forced-newline"> <code>GET</code> and <code>CHECK</code> requires <strong>Camel 2.3</strong> onwards.</li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CACHE_KEY</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The cache key used to store the Message in the
  cache. The cache key is optional if the CACHE_OPERATION is DELETEALL</p></td></tr></tbody></table></div></div><h4 id="BookInOnePage-MessageHeadersCamel2.8+">Message Headers Camel 2.8+</h4><div class="confluence-information-macro confluence-information-macro-information"><p class="title">Header changes in Camel 2.8</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>The header names and supported values have changed to be prefixed with 'CamelCache' and use mixed case. This makes them easier to identify and keep separate from other headers. The CacheConstants variable names remain unchanged, just their values have been changed. Also, these headers are now removed from the exchange after the cache operation is performed.</p></div></div><div class="confluenceTableSmall"><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Hea
 der</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelCacheOperation</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The operation to be performed on the cache. The valid options are</p><ul class="alternate"><li>CamelCacheGet</li><li>CamelCacheCheck</li><li>CamelCacheAdd</li><li>CamelCacheUpdate</li><li>CamelCacheDelete</li><li>CamelCacheDeleteAll</li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelCacheKey</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The cache key used to store the Message in the cache. The cache key is optional if the CamelCacheOperation is CamelCacheDeleteAll</p></td></tr></tbody></table></div></div><p>The <code>CamelCacheAdd</code> and <code>CamelCacheUpdate</code> operations support additional headers:</p><div class="confluenceTableSmall"><div class="table-wrap"><table class="confluenceT
 able"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Header</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelCacheTimeToLive</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> Time to live in seconds.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelCacheTimeToIdle</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> Time to idle in seconds.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelCacheEternal</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Boolean</code></p></td
 ><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> Whether the content is eternal.</p></td></tr></tbody></table></div></div><h4 id="BookInOnePage-CacheProducer">Cache Producer</h4><p>Sending data to the cache involves the ability to direct payloads in exchanges to be stored in a pre-existing or created-on-demand cache. The mechanics of doing this involve</p><ul class="alternate"><li>setting the Message Exchange Headers shown above.</li><li>ensuring that the Message Exchange Body contains the message directed to the cache</li></ul><h4 id="BookInOnePage-CacheConsumer">Cache Consumer</h4><p>Receiving data from the cache involves the ability of the CacheConsumer to listen on a pre-existing or created-on-demand Cache using an event Listener and receive automatic notifications when any cache activity take place (i.e CamelCacheGet/CamelCacheUpdate/CamelCacheDelete/CamelCacheDeleteAll). Upon such an activity taking place</p><ul class="alternate"><li>an exchang
 e containing Message Exchange Headers and a Message Exchange Body containing the just added/updated payload is placed and sent.</li><li>in case of a CamelCacheDeleteAll operation, the Message Exchange Header CamelCacheKey and the Message Exchange Body are not populated.</li></ul><h4 id="BookInOnePage-CacheProcessors">Cache Processors</h4><p>There are a set of nice processors with the ability to perform cache lookups and selectively replace payload content at the</p><ul class="alternate"><li>body</li><li>token</li><li>xpath level</li></ul><h3 id="BookInOnePage-CacheUsageSamples">Cache Usage Samples</h3><h4 id="BookInOnePage-Example1:Configuringthecache">Example 1: Configuring the cache</h4><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>You can append query options to the URI in the following format, <code>?option=value&amp;option=#beanRef&amp;...</code></p><h3 id="BookInOnePage-Options.24">Options</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>maxElementsInMemory</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>1000</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The number of elements that may be stored in the defined cache</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>memoryStoreEvictionPolicy</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>MemoryStoreEvictionPolicy.LFU</code></p></td><td colspan="1" rowspa
 n="1" class="confluenceTd"><p>The number of elements that may be stored in the defined cache. Options include</p><ul class="alternate"><li>MemoryStoreEvictionPolicy.LFU - Least frequently used</li><li>MemoryStoreEvictionPolicy.LRU - Least recently used</li><li>MemoryStoreEvictionPolicy.FIFO - first in first out, the oldest element by creation time</li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>overflowToDisk</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Specifies whether cache may overflow to disk</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>eternal</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Sets whether elements are eternal. If eternal, timeouts are ignored and the<br clear="none" class="atl-forced-newline"> element neve
 r expires.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>timeToLiveSeconds</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>300</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The maximum time between creation time and when an element expires.<br clear="none" class="atl-forced-newline"> Is used only if the element is not eternal</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>timeToIdleSeconds</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>300</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The maximum amount of time between accesses before an element expires</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>diskPersistent</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Whether the disk store persists between restarts of
  the Virtual Machine.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>diskExpiryThreadIntervalSeconds</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>120</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The number of seconds between runs of the disk expiry thread.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>cacheManagerFactory</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.8:</strong> If you want to use a custom factory which instantiates and creates the EHCache <code>net.sf.ehcache.CacheManager</code>. <br clear="none" class="atl-forced-newline"> <br clear="none" class="atl-forced-newline"> <em>Type:</em> abstract org.apache.camel.component.cache.CacheManagerFactory</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>eventListenerRegistry</code></p
 ></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.8:</strong> Sets a list of EHCache <code>net.sf.ehcache.event.CacheEventListener</code> for all new caches- no need to define it per cache in EHCache xml config anymore. <br clear="none" class="atl-forced-newline"> <br clear="none" class="atl-forced-newline"> <em>Type:</em> org.apache.camel.component.cache.CacheEventListenerRegistry</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>cacheLoaderRegistry</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.8:</strong> Sets a list of <code>org.apache.camel.component.cache.CacheLoaderWrapper</code> that extends EHCache <code>net.sf.ehcache.loader.CacheLoader</code> for all new caches- no need to define it per cache in EHCache xml config anymore. <br clear="n
 one" class="atl-forced-newline"> <br clear="none" class="atl-forced-newline"> <em>Type:</em> org.apache.camel.component.cache.CacheLoaderRegistry</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>key</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10:</strong> To configure using a cache key by default. If a key is provided in the message header, then the key from the header takes precedence.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>operation</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10:</strong> To configure using an cache operation by default. If an operation in the message header, then the operation from the header takes precedence.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceT
 d"><p>objectCache</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong style="line-height: 1.42857;">Camel 2.15:</strong> Whether to turn on allowing to store non serializable objects in the cache. If this option is enabled then overflow to disk cannot be enabled as well.</p></td></tr></tbody></table></div><h3 id="BookInOnePage-CacheComponentoptions">Cache Component options</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>configuration</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a custom <code>org.apache.camel.comp
 onent.cache.CacheConfiguration</code> configuration.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>cacheManagerFactory</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a custom <code>org.apache.camel.component.cache.CacheManagerFactory</code>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>configurationFile</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.13/2.12.3:</strong> To configure the location of the <code>ehcache.xml</code> file to use, such as <code>classpath:com/foo/mycache.xml</code> to load from classpath. If no configuration is given, then the default settings from EHCache is used.</p></td></tr></tbody></table></div><h3 id="BookInOnePage-Sending/ReceivingMessagesto/fromthecache"><span style="line-height: 1.5625;">Sending/Rec
 eiving Messages to/from the cache</span></h3><h4 id="BookInOnePage-MessageHeadersuptoCamel2.7">Message Headers up to Camel 2.7</h4><div class="confluenceTableSmall"><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Header</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CACHE_OPERATION</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The operation to be performed on the cache. Valid options are</p><ul class="alternate"><li>GET</li><li>CHECK</li><li>ADD</li><li>UPDATE</li><li>DELETE</li><li>DELETEALL<br clear="none" class="atl-forced-newline"> <code>GET</code> and <code>CHECK</code> requires <strong>Camel 2.3</strong> onwards.</li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CACHE_KEY</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The cache key used to
  store the Message in the cache. The cache key is optional if the CACHE_OPERATION is DELETEALL</p></td></tr></tbody></table></div></div><h4 id="BookInOnePage-MessageHeadersCamel2.8+">Message Headers Camel 2.8+</h4><div class="confluence-information-macro confluence-information-macro-information"><p class="title">Header changes in Camel 2.8</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>The header names and supported values have changed to be prefixed with 'CamelCache' and use mixed case. This makes them easier to identify and keep separate from other headers. The CacheConstants variable names remain unchanged, just their values have been changed. Also, these headers are now removed from the exchange after the cache operation is performed.</p></div></div><div class="confluenceTableSmall"><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" cl
 ass="confluenceTh"><p>Header</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelCacheOperation</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The operation to be performed on the cache. The valid options are</p><ul class="alternate"><li>CamelCacheGet</li><li>CamelCacheCheck</li><li>CamelCacheAdd</li><li>CamelCacheUpdate</li><li>CamelCacheDelete</li><li>CamelCacheDeleteAll</li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelCacheKey</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The cache key used to store the Message in the cache. The cache key is optional if the CamelCacheOperation is CamelCacheDeleteAll</p></td></tr></tbody></table></div></div><p>The <code>CamelCacheAdd</code> and <code>CamelCacheUpdate</code> operations support additional headers:</p><div class="confluenceTableSmall"><div class="table-wrap">
 <table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Header</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelCacheTimeToLive</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> Time to live in seconds.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelCacheTimeToIdle</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> Time to idle in seconds.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelCacheEternal</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><co
 de>Boolean</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> Whether the content is eternal.</p></td></tr></tbody></table></div></div><h4 id="BookInOnePage-CacheProducer">Cache Producer</h4><p>Sending data to the cache involves the ability to direct payloads in exchanges to be stored in a pre-existing or created-on-demand cache. The mechanics of doing this involve</p><ul class="alternate"><li>setting the Message Exchange Headers shown above.</li><li>ensuring that the Message Exchange Body contains the message directed to the cache</li></ul><h4 id="BookInOnePage-CacheConsumer">Cache Consumer</h4><p>Receiving data from the cache involves the ability of the CacheConsumer to listen on a pre-existing or created-on-demand Cache using an event Listener and receive automatic notifications when any cache activity take place (i.e CamelCacheGet/CamelCacheUpdate/CamelCacheDelete/CamelCacheDeleteAll). Upon such an activity taking place</p><ul class="
 alternate"><li>an exchange containing Message Exchange Headers and a Message Exchange Body containing the just added/updated payload is placed and sent.</li><li>in case of a CamelCacheDeleteAll operation, the Message Exchange Header CamelCacheKey and the Message Exchange Body are not populated.</li></ul><h4 id="BookInOnePage-CacheProcessors">Cache Processors</h4><p>There are a set of nice processors with the ability to perform cache lookups and selectively replace payload content at the</p><ul class="alternate"><li>body</li><li>token</li><li>xpath level</li></ul><h3 id="BookInOnePage-CacheUsageSamples">Cache Usage Samples</h3><h4 id="BookInOnePage-Example1:Configuringthecache">Example 1: Configuring the cache</h4><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;cache://MyApplicationCache&quot; +
           &quot;?maxElementsInMemory=1000&quot; +
           &quot;&amp;memoryStoreEvictionPolicy=&quot; +
@@ -17276,11 +17276,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.rbtoc1458476269229 {padding: 0px;}
-div.rbtoc1458476269229 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1458476269229 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1458483570656 {padding: 0px;}
+div.rbtoc1458483570656 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1458483570656 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1458476269229">
+/*]]>*/</style></p><div class="toc-macro rbtoc1458483570656">
 <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>

Modified: websites/production/camel/content/cache.html
==============================================================================
--- websites/production/camel/content/cache.html (original)
+++ websites/production/camel/content/cache.html Sun Mar 20 14:20:55 2016
@@ -96,7 +96,7 @@
 </div></div><h3 id="Cache-URIformat">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[cache://cacheName[?options]
 ]]></script>
-</div></div><p>You can append query options to the URI in the following format, <code>?option=value&amp;option=#beanRef&amp;...</code></p><h3 id="Cache-Options">Options</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>maxElementsInMemory</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>1000</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The number of elements that may be stored in the defined cache</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>memoryStoreEvictionPolicy</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>MemoryStoreEvictionPolicy.LFU</code></p></td><td colspan="1" rowspan="1" class
 ="confluenceTd"><p>The number of elements that may be stored in the defined cache. Options include</p><ul class="alternate"><li>MemoryStoreEvictionPolicy.LFU - Least frequently used</li><li>MemoryStoreEvictionPolicy.LRU - Least recently used</li><li>MemoryStoreEvictionPolicy.FIFO - first in first out, the oldest element by creation time</li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>overflowToDisk</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Specifies whether cache may overflow to disk</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>eternal</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Sets whether elements are eternal. If eternal, timeouts are ignored and the<br clear="none" class="atl-forced-newline"> element never expires.<
 /p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>timeToLiveSeconds</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>300</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The maximum time between creation time and when an element expires.<br clear="none" class="atl-forced-newline"> Is used only if the element is not eternal</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>timeToIdleSeconds</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>300</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The maximum amount of time between accesses before an element expires</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>diskPersistent</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Whether the disk store persists between restarts of the Virtua
 l Machine.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>diskExpiryThreadIntervalSeconds</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>120</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The number of seconds between runs of the disk expiry thread.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>cacheManagerFactory</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.8:</strong> If you want to use a custom factory which instantiates and creates the EHCache <code>net.sf.ehcache.CacheManager</code>. <br clear="none" class="atl-forced-newline"> <br clear="none" class="atl-forced-newline"> <em>Type:</em> abstract org.apache.camel.component.cache.CacheManagerFactory</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>eventListenerRegistry</code></p></td><td c
 olspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.8:</strong> Sets a list of EHCache <code>net.sf.ehcache.event.CacheEventListener</code> for all new caches- no need to define it per cache in EHCache xml config anymore. <br clear="none" class="atl-forced-newline"> <br clear="none" class="atl-forced-newline"> <em>Type:</em> org.apache.camel.component.cache.CacheEventListenerRegistry</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>cacheLoaderRegistry</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.8:</strong> Sets a list of <code>org.apache.camel.component.cache.CacheLoaderWrapper</code> that extends EHCache <code>net.sf.ehcache.loader.CacheLoader</code> for all new caches- no need to define it per cache in EHCache xml config anymore. <br clear="none" class=
 "atl-forced-newline"> <br clear="none" class="atl-forced-newline"> <em>Type:</em> org.apache.camel.component.cache.CacheLoaderRegistry</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>key</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10:</strong> To configure using a cache key by default. If a key is provided in the message header, then the key from the header takes precedence.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>operation</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10:</strong> To configure using an cache operation by default. If an operation in the message header, then the operation from the header takes precedence.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>ob
 jectCache</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>false</code></td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.15:</strong> Whether to turn on allowing to store non serializable objects in the cache. If this option is enabled then overflow to disk cannot be enabled as well.</td></tr></tbody></table></div><h3 id="Cache-CacheComponentoptions">Cache Component options</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>configuration</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a custom <code>org.apache.camel.component.cache.CacheConfiguration</code> config
 uration.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>cacheManagerFactory</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a custom <code>org.apache.camel.component.cache.CacheManagerFactory</code>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>configurationFile</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.13/2.12.3:</strong> To configure the location of the <code>ehcache.xml</code> file to use, such as <code>classpath:com/foo/mycache.xml</code> to load from classpath. If no configuration is given, then the default settings from EHCache is used.</p></td></tr></tbody></table></div><h3 id="Cache-Sending/ReceivingMessagesto/fromthecache"><span style="line-height: 1.5625;">Sending/Receiving Messages to/from the cache</span></h3><h4 id=
 "Cache-MessageHeadersuptoCamel2.7">Message Headers up to Camel 2.7</h4><div class="confluenceTableSmall"><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Header</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CACHE_OPERATION</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The operation to be performed on the cache. Valid options are</p><ul class="alternate"><li>GET</li><li>CHECK</li><li>ADD</li><li>UPDATE</li><li>DELETE</li><li>DELETEALL<br clear="none" class="atl-forced-newline"> <code>GET</code> and <code>CHECK</code> requires <strong>Camel 2.3</strong> onwards.</li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CACHE_KEY</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The cache key used to store the Message in the cache. The cache key is optional i
 f the CACHE_OPERATION is DELETEALL</p></td></tr></tbody></table></div></div><h4 id="Cache-MessageHeadersCamel2.8+">Message Headers Camel 2.8+</h4><div class="confluence-information-macro confluence-information-macro-information"><p class="title">Header changes in Camel 2.8</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>The header names and supported values have changed to be prefixed with 'CamelCache' and use mixed case. This makes them easier to identify and keep separate from other headers. The CacheConstants variable names remain unchanged, just their values have been changed. Also, these headers are now removed from the exchange after the cache operation is performed.</p></div></div><div class="confluenceTableSmall"><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Header</p></th><th colspan="1" rowspan="1" cla
 ss="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelCacheOperation</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The operation to be performed on the cache. The valid options are</p><ul class="alternate"><li>CamelCacheGet</li><li>CamelCacheCheck</li><li>CamelCacheAdd</li><li>CamelCacheUpdate</li><li>CamelCacheDelete</li><li>CamelCacheDeleteAll</li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelCacheKey</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The cache key used to store the Message in the cache. The cache key is optional if the CamelCacheOperation is CamelCacheDeleteAll</p></td></tr></tbody></table></div></div><p>The <code>CamelCacheAdd</code> and <code>CamelCacheUpdate</code> operations support additional headers:</p><div class="confluenceTableSmall"><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1
 " class="confluenceTh"><p>Header</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelCacheTimeToLive</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> Time to live in seconds.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelCacheTimeToIdle</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> Time to idle in seconds.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelCacheEternal</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Boolean</code></p></td><td colspan="1" rowspan="1" class="conflue
 nceTd"><p><strong>Camel 2.11:</strong> Whether the content is eternal.</p></td></tr></tbody></table></div></div><h4 id="Cache-CacheProducer">Cache Producer</h4><p>Sending data to the cache involves the ability to direct payloads in exchanges to be stored in a pre-existing or created-on-demand cache. The mechanics of doing this involve</p><ul class="alternate"><li>setting the Message Exchange Headers shown above.</li><li>ensuring that the Message Exchange Body contains the message directed to the cache</li></ul><h4 id="Cache-CacheConsumer">Cache Consumer</h4><p>Receiving data from the cache involves the ability of the CacheConsumer to listen on a pre-existing or created-on-demand Cache using an event Listener and receive automatic notifications when any cache activity take place (i.e CamelCacheGet/CamelCacheUpdate/CamelCacheDelete/CamelCacheDeleteAll). Upon such an activity taking place</p><ul class="alternate"><li>an exchange containing Message Exchange Headers and a Message Exchang
 e Body containing the just added/updated payload is placed and sent.</li><li>in case of a CamelCacheDeleteAll operation, the Message Exchange Header CamelCacheKey and the Message Exchange Body are not populated.</li></ul><h4 id="Cache-CacheProcessors">Cache Processors</h4><p>There are a set of nice processors with the ability to perform cache lookups and selectively replace payload content at the</p><ul class="alternate"><li>body</li><li>token</li><li>xpath level</li></ul><h3 id="Cache-CacheUsageSamples">Cache Usage Samples</h3><h4 id="Cache-Example1:Configuringthecache">Example 1: Configuring the cache</h4><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>You can append query options to the URI in the following format, <code>?option=value&amp;option=#beanRef&amp;...</code></p><h3 id="Cache-Options">Options</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>maxElementsInMemory</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>1000</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The number of elements that may be stored in the defined cache</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>memoryStoreEvictionPolicy</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>MemoryStoreEvictionPolicy.LFU</code></p></td><td colspan="1" rowspan="1" class
 ="confluenceTd"><p>The number of elements that may be stored in the defined cache. Options include</p><ul class="alternate"><li>MemoryStoreEvictionPolicy.LFU - Least frequently used</li><li>MemoryStoreEvictionPolicy.LRU - Least recently used</li><li>MemoryStoreEvictionPolicy.FIFO - first in first out, the oldest element by creation time</li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>overflowToDisk</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Specifies whether cache may overflow to disk</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>eternal</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Sets whether elements are eternal. If eternal, timeouts are ignored and the<br clear="none" class="atl-forced-newline"> element never expires.<
 /p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>timeToLiveSeconds</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>300</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The maximum time between creation time and when an element expires.<br clear="none" class="atl-forced-newline"> Is used only if the element is not eternal</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>timeToIdleSeconds</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>300</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The maximum amount of time between accesses before an element expires</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>diskPersistent</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Whether the disk store persists between restarts of the Virtua
 l Machine.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>diskExpiryThreadIntervalSeconds</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>120</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The number of seconds between runs of the disk expiry thread.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>cacheManagerFactory</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.8:</strong> If you want to use a custom factory which instantiates and creates the EHCache <code>net.sf.ehcache.CacheManager</code>. <br clear="none" class="atl-forced-newline"> <br clear="none" class="atl-forced-newline"> <em>Type:</em> abstract org.apache.camel.component.cache.CacheManagerFactory</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>eventListenerRegistry</code></p></td><td c
 olspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.8:</strong> Sets a list of EHCache <code>net.sf.ehcache.event.CacheEventListener</code> for all new caches- no need to define it per cache in EHCache xml config anymore. <br clear="none" class="atl-forced-newline"> <br clear="none" class="atl-forced-newline"> <em>Type:</em> org.apache.camel.component.cache.CacheEventListenerRegistry</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>cacheLoaderRegistry</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.8:</strong> Sets a list of <code>org.apache.camel.component.cache.CacheLoaderWrapper</code> that extends EHCache <code>net.sf.ehcache.loader.CacheLoader</code> for all new caches- no need to define it per cache in EHCache xml config anymore. <br clear="none" class=
 "atl-forced-newline"> <br clear="none" class="atl-forced-newline"> <em>Type:</em> org.apache.camel.component.cache.CacheLoaderRegistry</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>key</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10:</strong> To configure using a cache key by default. If a key is provided in the message header, then the key from the header takes precedence.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>operation</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10:</strong> To configure using an cache operation by default. If an operation in the message header, then the operation from the header takes precedence.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>objec
 tCache</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong style="line-height: 1.42857;">Camel 2.15:</strong> Whether to turn on allowing to store non serializable objects in the cache. If this option is enabled then overflow to disk cannot be enabled as well.</p></td></tr></tbody></table></div><h3 id="Cache-CacheComponentoptions">Cache Component options</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>configuration</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a custom <code>org.apache.camel.component.cache.CacheCo
 nfiguration</code> configuration.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>cacheManagerFactory</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a custom <code>org.apache.camel.component.cache.CacheManagerFactory</code>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>configurationFile</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.13/2.12.3:</strong> To configure the location of the <code>ehcache.xml</code> file to use, such as <code>classpath:com/foo/mycache.xml</code> to load from classpath. If no configuration is given, then the default settings from EHCache is used.</p></td></tr></tbody></table></div><h3 id="Cache-Sending/ReceivingMessagesto/fromthecache"><span style="line-height: 1.5625;">Sending/Receiving Messages to/from the
  cache</span></h3><h4 id="Cache-MessageHeadersuptoCamel2.7">Message Headers up to Camel 2.7</h4><div class="confluenceTableSmall"><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Header</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CACHE_OPERATION</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The operation to be performed on the cache. Valid options are</p><ul class="alternate"><li>GET</li><li>CHECK</li><li>ADD</li><li>UPDATE</li><li>DELETE</li><li>DELETEALL<br clear="none" class="atl-forced-newline"> <code>GET</code> and <code>CHECK</code> requires <strong>Camel 2.3</strong> onwards.</li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CACHE_KEY</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The cache key used to store the Message in the cache. Th
 e cache key is optional if the CACHE_OPERATION is DELETEALL</p></td></tr></tbody></table></div></div><h4 id="Cache-MessageHeadersCamel2.8+">Message Headers Camel 2.8+</h4><div class="confluence-information-macro confluence-information-macro-information"><p class="title">Header changes in Camel 2.8</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>The header names and supported values have changed to be prefixed with 'CamelCache' and use mixed case. This makes them easier to identify and keep separate from other headers. The CacheConstants variable names remain unchanged, just their values have been changed. Also, these headers are now removed from the exchange after the cache operation is performed.</p></div></div><div class="confluenceTableSmall"><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Header</p></th><th co
 lspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelCacheOperation</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The operation to be performed on the cache. The valid options are</p><ul class="alternate"><li>CamelCacheGet</li><li>CamelCacheCheck</li><li>CamelCacheAdd</li><li>CamelCacheUpdate</li><li>CamelCacheDelete</li><li>CamelCacheDeleteAll</li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelCacheKey</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The cache key used to store the Message in the cache. The cache key is optional if the CamelCacheOperation is CamelCacheDeleteAll</p></td></tr></tbody></table></div></div><p>The <code>CamelCacheAdd</code> and <code>CamelCacheUpdate</code> operations support additional headers:</p><div class="confluenceTableSmall"><div class="table-wrap"><table class="confluenceTable"><tbody><tr><
 th colspan="1" rowspan="1" class="confluenceTh"><p>Header</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelCacheTimeToLive</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> Time to live in seconds.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelCacheTimeToIdle</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> Time to idle in seconds.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelCacheEternal</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Boolean</code></p></td><td colspan="1" r
 owspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> Whether the content is eternal.</p></td></tr></tbody></table></div></div><h4 id="Cache-CacheProducer">Cache Producer</h4><p>Sending data to the cache involves the ability to direct payloads in exchanges to be stored in a pre-existing or created-on-demand cache. The mechanics of doing this involve</p><ul class="alternate"><li>setting the Message Exchange Headers shown above.</li><li>ensuring that the Message Exchange Body contains the message directed to the cache</li></ul><h4 id="Cache-CacheConsumer">Cache Consumer</h4><p>Receiving data from the cache involves the ability of the CacheConsumer to listen on a pre-existing or created-on-demand Cache using an event Listener and receive automatic notifications when any cache activity take place (i.e CamelCacheGet/CamelCacheUpdate/CamelCacheDelete/CamelCacheDeleteAll). Upon such an activity taking place</p><ul class="alternate"><li>an exchange containing Message Exchange Head
 ers and a Message Exchange Body containing the just added/updated payload is placed and sent.</li><li>in case of a CamelCacheDeleteAll operation, the Message Exchange Header CamelCacheKey and the Message Exchange Body are not populated.</li></ul><h4 id="Cache-CacheProcessors">Cache Processors</h4><p>There are a set of nice processors with the ability to perform cache lookups and selectively replace payload content at the</p><ul class="alternate"><li>body</li><li>token</li><li>xpath level</li></ul><h3 id="Cache-CacheUsageSamples">Cache Usage Samples</h3><h4 id="Cache-Example1:Configuringthecache">Example 1: Configuring the cache</h4><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;cache://MyApplicationCache&quot; +
           &quot;?maxElementsInMemory=1000&quot; +
           &quot;&amp;memoryStoreEvictionPolicy=&quot; +

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