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/08/12 15:19:29 UTC

svn commit: r995004 - in /websites/production/camel/content: binding.html cache/main.pageCache jcache.html

Author: buildbot
Date: Fri Aug 12 15:19:29 2016
New Revision: 995004

Log:
Production update by buildbot for camel

Modified:
    websites/production/camel/content/binding.html
    websites/production/camel/content/cache/main.pageCache
    websites/production/camel/content/jcache.html

Modified: websites/production/camel/content/binding.html
==============================================================================
--- websites/production/camel/content/binding.html (original)
+++ websites/production/camel/content/binding.html Fri Aug 12 15:19:29 2016
@@ -84,58 +84,17 @@
 	<tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><h1 id="Binding-Binding">Binding</h1>
-
-<p>In Camel terms a <em>binding</em> is a way of wrapping an <a shape="rect" href="endpoint.html">Endpoint</a> in a contract; such as a <a shape="rect" href="data-format.html">Data Format</a>, a <a shape="rect" href="content-enricher.html">Content Enricher</a> or validation step. Bindings are completely optional and you can choose to use them on any <a shape="rect" href="components.html">camel endpoint</a>.</p>
-
-<p>Bindings are inspired by the work of <a shape="rect" class="external-link" href="http://www.jboss.org/switchyard" rel="nofollow">SwitchYard project</a> adding service contracts to various technologies like Camel and many others. But rather than the SwitchYard approach of wrapping Camel in SCA, <em>Camel Bindings</em> provide a way of wrapping Camel endpoints with contracts inside the Camel framework itself; so you can use them easily inside any Camel route.</p>
-
-<h2 id="Binding-UsingBindings">Using Bindings</h2>
-
-<p>A Binding is currently a bean which defines the contract (though we'll hopefully add bindings to the Camel DSL). </p>
-
-<p>There are a few approaches to defining a bound endpoint (i.e. an endpoint bound with a Binding). </p>
-
-<h3 id="Binding-UsingthebindingURI">Using the binding URI</h3>
-
-<p>You can prefix any endpoint URI with <strong>binding:nameOfBinding:</strong> where <em>nameOfBinding</em> is the name of the Binding bean in your registry. </p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
-from(&quot;binding:jaxb:activemq:myQueue&quot;).to(&quot;binding:jaxb:activemq:anotherQueue&quot;)
+<div class="wiki-content maincontent"><h1 id="Binding-Binding">Binding</h1><p>In Camel terms a <em>binding</em> is a way of wrapping an <a shape="rect" href="endpoint.html">Endpoint</a> in a contract; such as a <a shape="rect" href="data-format.html">Data Format</a>, a <a shape="rect" href="content-enricher.html">Content Enricher</a> or validation step. Bindings are completely optional and you can choose to use them on any <a shape="rect" href="components.html">camel endpoint</a>.</p><p>Bindings are inspired by the work of <a shape="rect" class="external-link" href="http://www.jboss.org/switchyard" rel="nofollow">SwitchYard project</a> adding service contracts to various technologies like Camel and many others. But rather than the SwitchYard approach of wrapping Camel in SCA, <em>Camel Bindings</em> provide a way of wrapping Camel endpoints with contracts inside the Camel framework itself; so you can use them easily inside any Camel route.</p><h2 id="Binding-UsingBindings">Using Bin
 dings</h2><p>A Binding is currently a bean which defines the contract (though we'll hopefully add bindings to the Camel DSL).</p><p>There are a few approaches to defining a bound endpoint (i.e. an endpoint bound with a Binding).</p><h3 id="Binding-UsingthebindingURI">Using the binding URI</h3><p>You can prefix any endpoint URI with <strong>binding:nameOfBinding:</strong> where <em>nameOfBinding</em> is the name of the Binding bean in your registry.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[from(&quot;binding:jaxb:activemq:myQueue&quot;).to(&quot;binding:jaxb:activemq:anotherQueue&quot;)
 ]]></script>
-</div></div>
-
-<p>Here we are using the "jaxb" binding which may, for example, use the JAXB <a shape="rect" href="data-format.html">Data Format</a> to marshal and unmarshal messages.</p>
-
-<h3 id="Binding-UsingaBindingComponent">Using a BindingComponent</h3>
-
-<p>There is a <a shape="rect" href="component.html">Component</a> called BindingComponent which can be configured in your <a shape="rect" href="registry.html">Registry</a> by dependency injection which allows the creation of endpoints which are already bound to some binding.</p>
-
-<p>For example if you registered a new component called "jsonmq" in your registry using code like this</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
-        JacksonDataFormat format = new JacksonDataFormat(MyBean.class);
+</div></div><p>Here we are using the "jaxb" binding which may, for example, use the JAXB <a shape="rect" href="data-format.html">Data Format</a> to marshal and unmarshal messages.</p><h3 id="Binding-UsingaBindingComponent">Using a BindingComponent</h3><p>There is a <a shape="rect" href="component.html">Component</a> called BindingComponent which can be configured in your <a shape="rect" href="registry.html">Registry</a> by dependency injection which allows the creation of endpoints which are already bound to some binding.</p><p>For example if you registered a new component called "jsonmq" in your registry using code like this</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[        JacksonDataFormat format = new JacksonDataFormat(MyBean.class);
         context.bind(&quot;jsonmq&quot;, new BindingComponent(new DataFormatBinding(format), &quot;activemq:foo.&quot;));
 ]]></script>
-</div></div>
-
-<p>Then you could use the endpoint as if it were any other endpoint.</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
-from(&quot;jsonmq:myQueue&quot;).to(&quot;jsonmq:anotherQueue&quot;)
+</div></div><p>Then you could use the endpoint as if it were any other endpoint.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[from(&quot;jsonmq:myQueue&quot;).to(&quot;jsonmq:anotherQueue&quot;)
 ]]></script>
-</div></div>
-<p>which would be using the queueus "foo.myQueue" and "foo.anotherQueue" and would use the given Jackson <a shape="rect" href="data-format.html">Data Format</a> to marshal on and off the queue.</p>
-
-<h2 id="Binding-WhentouseBindings">When to use Bindings</h2>
-
-<p>If you only use an endpoint once in a single route; a binding may actually be more complex and more work than just using the 'raw' endpoint directly and using explicit marshalling and validation in the camel route as normal.</p>
-
-<p>However bindings can help when you are composing many routes together; or using a single route as a 'template' that is configured input and output endpoints; bindings then provide a nice way to wrap up a contract and endpoint together. </p>
-
-<p>Another good use case for bindings is when you are using many endpoints which use the same binding; rather than always having to mention a specific data format or validation rule, you can just use the BindingComponent to wrap the endpoints in the binding of your choice.</p>
-
-<p>So bindings are a composition tool really; only use them when they make sense - the extra complexity may not be worth it unless you have lots of routes or endpoints.</p></div>
+</div></div><p>This would use the queues "foo.myQueue" and "foo.anotherQueue" and would use the given Jackson <a shape="rect" href="data-format.html">Data Format</a> to marshal on and off the queue.</p><h2 id="Binding-WhentouseBindings">When to use Bindings</h2><p>If you only use an endpoint once in a single route; a binding may actually be more complex and more work than just using the 'raw' endpoint directly and using explicit marshalling and validation in the camel route as normal.</p><p>However bindings can help when you are composing many routes together; or using a single route as a 'template' that is configured input and output endpoints; bindings then provide a nice way to wrap up a contract and endpoint together.</p><p>Another good use case for bindings is when you are using many endpoints which use the same binding; rather than always having to mention a specific data format or validation rule, you can just use the BindingComponent to wrap the endpoints in the binding of y
 our choice.</p><p>So bindings are a composition tool really; only use them when they make sense - the extra complexity may not be worth it unless you have lots of routes or endpoints.</p></div>
         </td>
         <td valign="top">
           <div class="navigation">

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

Modified: websites/production/camel/content/jcache.html
==============================================================================
--- websites/production/camel/content/jcache.html (original)
+++ websites/production/camel/content/jcache.html Fri Aug 12 15:19:29 2016
@@ -96,7 +96,7 @@
 </div></div><h3 id="JCache-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,&#160;<code>?option=value&amp;option=#beanRef&amp;...</code></p><div><code><br clear="none"></code><h3 id="JCache-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>cachingProvider</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 fully qualified class name of the javax.cache.spi.CachingProvider</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>cacheConfiguration</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class=
 "confluenceTd"><p>A reference to a javax.cache.configuration.Configuration instance</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>cacheConfigurationProperties</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span>A reference to a</span> java.util.Properties for the <span>javax.cache.spi.</span>CachingProvider to create the javax.cache.CacheManager</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>configurationUri</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>An implementation specific URI for the <span> javax.cache.CacheManager</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>cacheLoaderFactory</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span>
 A reference to a <span>javax.cache.configuration.</span>Factory for <span>javax.cache.integration.</span>CacheLoader</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>cacheWriterFactory</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span>A reference to a </span><span>javax.cache.configuration.</span><span>Factory for </span><span>javax.cache.integration.</span><span>CacheWriter</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>expiryPolicyFactory</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span>null</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span>A reference to a<span>&#160;</span><span>javax.cache.configuration.</span><span>Factory for <span>javax.cache.expiry.ExpiryPolicy</span></span></span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>readThrough</p></td><td colspan="1" ro
 wspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A flag indicating if "read-through" mode is required</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>writeThrough</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A flag indicating if "write-through" mode is required</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">storeByValue</td><td colspan="1" rowspan="1" class="confluenceTd">true</td><td colspan="1" rowspan="1" class="confluenceTd">A flag indicating if the cache will be store-by-value or store-by-reference</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>statisticsEnabled</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>fasle</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><pre>A flag indicating if statistics gathering is enabled</pre></td></t
 r><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>managementEnabled</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><pre>A flag indicating if management is enabled</pre></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>filteredEvents</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A comma separated list of event types to filter. If you use this option <span>eventFilters one will be ignored.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>eventFilters</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A comma <span>separated</span> list of javax.cache.event.CacheEntryEventFilter references. If you use this option <span>filteredEvents one will be ignored.</span></p></td></t
 r><tr><td colspan="1" rowspan="1" class="confluenceTd">oldValueRequired</td><td colspan="1" rowspan="1" class="confluenceTd"><code>false</code></td><td colspan="1" rowspan="1" class="confluenceTd">A flag indicating if the old value is required for events, supported values are CREATED, UPDATED, REMOVED, EXPIRED</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">synchronous</td><td colspan="1" rowspan="1" class="confluenceTd">false</td><td colspan="1" rowspan="1" class="confluenceTd">A flag indicating if the event listener should block the thread causing the event</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">action</td><td colspan="1" rowspan="1" class="confluenceTd">null</td><td colspan="1" rowspan="1" class="confluenceTd">The default action to apply, value in the header has the priority</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">createCacheIfNotExists</td><td colspan="1" rowspan="1" class="confluenceTd">true</td><td colspan="1" rowspan=
 "1" class="confluenceTd">Configure if the cache identified by cacheName need to be created if it does not exists</td></tr></tbody></table></div><h3 id="JCache-Headervariables">Header variables</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>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>CamelJCacheAction</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>java.lang.String</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The action to perform, supported values are PUT, PUTALL, PUTIFABSENT, GET, GETALL, GETANDREMOVE, GETANDREPLACE, GETANDPUT, REPLACE, REMOVE, REMOVEALL, INVOKE, CLEAR</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>CamelJCacheResult</p></td><td colspan="1" rowspan="1" class="confluen
 ceTd"><p><code>java.lang.Object</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The result of an action, i.e. Boolean for PUT, REMOVE, REPLACE</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>CamelJCacheEventType</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>java.lang.String</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The type of event <span>javax.cache.event.EventType</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>CamelJCacheKey</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>java.lang.Object</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A key <span>to apply an action</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">CamelJCacheKeys</td><td colspan="1" rowspan="1" class="confluenceTd">java.util.Set&lt;java-lang.Object&gt;</td><td colspan="1" rowspan="1" class="confluenceTd">A set of keys to apply an action, used
  for GETALL, REMOVEALL, INVOKE</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">CamelJCacheOldValue</td><td colspan="1" rowspan="1" class="confluenceTd"><span>java.lang.Object</span></td><td colspan="1" rowspan="1" class="confluenceTd">On consumer side, the header value contains the old value associated to a key. On producer side, the header must contains the expected old value to use CAS like operation</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">CamelJCacheEntryProcessor</td><td colspan="1" rowspan="1" class="confluenceTd">javax.cache.processor.EntryProcessor</td><td colspan="1" rowspan="1" class="confluenceTd">The entry processor to use for <span>INVOKE action</span></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">CamelJCacheEntryArgs</td><td colspan="1" rowspan="1" class="confluenceTd"><span>java.util.collection&lt;java.lang.Object&gt;</span></td><td colspan="1" rowspan="1" class="confluenceTd">Additional arguments to pass to the <span
 >javax.cache.processor.EntryProcessor</span></td></tr></tbody></table></div><p>&#160;</p><h3 id="JCache-JCachebasedidempotentrepositoryexample:">JCache based idempotent repository example:</h3><p>&#160;</p><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,&#160;<code>?option=value&amp;option=#beanRef&amp;...</code></p><div><code><br clear="none"></code><h3 id="JCache-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>cachingProvider</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 name of the caching provider that could be</p><ul style="list-style-type: square;"><li>the fully qualified class name of the javax.cache.spi.CachingProvider</li><li>an alias among:<ul style="list-style-type: square;"><li>hazelcast (com.hazelcast.cache.HazelcastCachingProvid
 er)</li><li>ehcache (org.ehcache.jsr107.EhcacheCachingProvider)</li><li>caffeine (com.github.benmanes.caffeine.jcache.spi.CaffeineCachingProvider)</li><li>infinispan-embedded (org.infinispan.jcache.embedded.JCachingProvider)</li></ul></li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>cacheConfiguration</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A reference to a javax.cache.configuration.Configuration instance</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>cacheConfigurationProperties</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span>A reference to a</span> java.util.Properties for the <span>javax.cache.spi.</span>CachingProvider to create the javax.cache.CacheManager</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>configurationUri
 </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>An implementation specific URI for the <span> javax.cache.CacheManager</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>cacheLoaderFactory</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span>A reference to a <span>javax.cache.configuration.</span>Factory for <span>javax.cache.integration.</span>CacheLoader</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>cacheWriterFactory</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span>A reference to a </span><span>javax.cache.configuration.</span><span>Factory for </span><span>javax.cache.integration.</span><span>CacheWriter</span></p></td></tr><tr><td colspan="1" rowspan="
 1" class="confluenceTd"><p>expiryPolicyFactory</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span>null</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span>A reference to a<span>&#160;</span><span>javax.cache.configuration.</span><span>Factory for <span>javax.cache.expiry.ExpiryPolicy</span></span></span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>readThrough</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A flag indicating if "read-through" mode is required</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>writeThrough</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A flag indicating if "write-through" mode is required</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">storeByValue</td><td colspan="1" rowspan=
 "1" class="confluenceTd">true</td><td colspan="1" rowspan="1" class="confluenceTd">A flag indicating if the cache will be store-by-value or store-by-reference</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>statisticsEnabled</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>fasle</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><pre>A flag indicating if statistics gathering is enabled</pre></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>managementEnabled</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><pre>A flag indicating if management is enabled</pre></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>filteredEvents</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A comma separated list of event types to filter. If you use this
  option <span>eventFilters one will be ignored.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>eventFilters</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A comma <span>separated</span> list of javax.cache.event.CacheEntryEventFilter references. If you use this option <span>filteredEvents one will be ignored.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">oldValueRequired</td><td colspan="1" rowspan="1" class="confluenceTd"><code>false</code></td><td colspan="1" rowspan="1" class="confluenceTd">A flag indicating if the old value is required for events, supported values are CREATED, UPDATED, REMOVED, EXPIRED</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">synchronous</td><td colspan="1" rowspan="1" class="confluenceTd">false</td><td colspan="1" rowspan="1" class="confluenceTd">A flag indicating if the event listener should blo
 ck the thread causing the event</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">action</td><td colspan="1" rowspan="1" class="confluenceTd">null</td><td colspan="1" rowspan="1" class="confluenceTd">The default action to apply, value in the header has the priority</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">createCacheIfNotExists</td><td colspan="1" rowspan="1" class="confluenceTd">true</td><td colspan="1" rowspan="1" class="confluenceTd">Configure if the cache identified by cacheName need to be created if it does not exists</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">lookupProviders</td><td colspan="1" rowspan="1" class="confluenceTd">false</td><td colspan="1" rowspan="1" class="confluenceTd"><strong>OSGi only: </strong>When set to true, camel-jcache tries to find the bundle providing the provider configured by the cachingProvider option and it succeeds is sets-up a special classloader to boostrap the cache</td></tr></tbody></table><
 /div><h3 id="JCache-Headervariables">Header variables</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>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>CamelJCacheAction</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>java.lang.String</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The action to perform, supported values are PUT, PUTALL, PUTIFABSENT, GET, GETALL, GETANDREMOVE, GETANDREPLACE, GETANDPUT, REPLACE, REMOVE, REMOVEALL, INVOKE, CLEAR</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>CamelJCacheResult</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>java.lang.Object</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The result of an action, i.e. Boolean fo
 r PUT, REMOVE, REPLACE</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>CamelJCacheEventType</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>java.lang.String</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The type of event <span>javax.cache.event.EventType</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>CamelJCacheKey</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>java.lang.Object</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A key <span>to apply an action</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">CamelJCacheKeys</td><td colspan="1" rowspan="1" class="confluenceTd">java.util.Set&lt;java-lang.Object&gt;</td><td colspan="1" rowspan="1" class="confluenceTd">A set of keys to apply an action, used for GETALL, REMOVEALL, INVOKE</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">CamelJCacheOldValue</td><td colspan="1" rowspa
 n="1" class="confluenceTd"><span>java.lang.Object</span></td><td colspan="1" rowspan="1" class="confluenceTd">On consumer side, the header value contains the old value associated to a key. On producer side, the header must contains the expected old value to use CAS like operation</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">CamelJCacheEntryProcessor</td><td colspan="1" rowspan="1" class="confluenceTd">javax.cache.processor.EntryProcessor</td><td colspan="1" rowspan="1" class="confluenceTd">The entry processor to use for <span>INVOKE action</span></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">CamelJCacheEntryArgs</td><td colspan="1" rowspan="1" class="confluenceTd"><span>java.util.collection&lt;java.lang.Object&gt;</span></td><td colspan="1" rowspan="1" class="confluenceTd">Additional arguments to pass to the <span>javax.cache.processor.EntryProcessor</span></td></tr></tbody></table></div><p>&#160;</p><h3 id="JCache-JCachebasedidempotentrepositoryexam
 ple:">JCache based idempotent repository example:</h3><p>&#160;</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[JCacheIdempotentRepository idempotentRepo = new JCacheIdempotentRepository();
 idempotentRepo.setCacheName(&quot;idempotent-cache&quot;)