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> </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"> </td><td colspan="1" rowspan="1"
class="confluenceTd"><code>null</code></td><td colspan="1" rowspan="1"
class="confluenceTd"><strong>Camel 2.17:</strong> 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&option=value&...</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"> </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> 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&option=value&...</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&option=#beanRef&...</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> </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> </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> </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&option=#beanRef&...</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> </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> </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> </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("cache://MyApplicationCache" +
"?maxElementsInMemory=1000" +
"&memoryStoreEvictionPolicy=" +
@@ -17276,11 +17276,11 @@ template.send("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&option=#beanRef&...</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> </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> </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> </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&option=#beanRef&...</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> </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> </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> </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("cache://MyApplicationCache" +
"?maxElementsInMemory=1000" +
"&memoryStoreEvictionPolicy=" +
Modified: websites/production/camel/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.