Added: websites/production/camel/content/ehcache.html
==============================================================================
--- websites/production/camel/content/ehcache.html (added)
+++ websites/production/camel/content/ehcache.html Tue May 17 15:20:48 2016
@@ -0,0 +1,245 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<html>
+<head>
+    <link href="//camel.apache.org/styles/site.css" rel="stylesheet" 
type="text/css">
+    <link href="//camel.apache.org/styles/type-settings.css" rel="stylesheet" 
type="text/css">
+    <script src="//camel.apache.org/styles/prototype.js" 
type="text/javascript"></script>
+    <script src="//camel.apache.org/styles/rico.js" 
type="text/javascript"></script>    
+    <script src="//camel.apache.org/styles/site.js" 
type="text/javascript"></script>
+
+    <meta http-equiv="Content-type" content="text/html;charset=UTF-8">
+
+    <style type="text/css">
+      .maincontent { overflow:hidden; }
+    </style>
+    <!--[if IE]>
+    <style type="text/css">
+      .maincontent { width:100%; }
+    </style>
+    <![endif]-->
+
+
+  <link href='//camel.apache.org/styles/highlighter/styles/shCoreCamel.css' 
rel='stylesheet' type='text/css' />
+  <link href='//camel.apache.org/styles/highlighter/styles/shThemeCamel.css' 
rel='stylesheet' type='text/css' />
+  <script src='//camel.apache.org/styles/highlighter/scripts/shCore.js' 
type='text/javascript'></script>
+  <script src='//camel.apache.org/styles/highlighter/scripts/shBrushJava.js' 
type='text/javascript'></script>
+  <script src='//camel.apache.org/styles/highlighter/scripts/shBrushXml.js' 
type='text/javascript'></script>
+  
+  <script type="text/javascript">
+  SyntaxHighlighter.defaults['toolbar'] = false;
+  SyntaxHighlighter.all();
+  </script>
+
+    <title>
+    Apache Camel: Ehcache
+    </title>
+</head>
+<body>
+<div class="white_box">
+<div class="header">
+  <div class="header_l">
+    <div class="header_r">
+    </div>
+  </div>
+</div>
+<div class="content">
+  <div class="content_l">
+    <div class="content_r">
+      <div>
+          <!-- Banner -->
+<div id="banner-content"><div id="asf_logo">
+       <div id="activemq_logo" style="height:108px; background:transparent 
url(banner.data/apache-camel-7.png) no-repeat scroll left top;">
+            <a shape="rect" style="float:left; 
width:310px;display:block;text-indent:-5000px;text-decoration:none;line-height:140px;
 margin-top:20px; margin-left:18px;" href="http://camel.apache.org/";>Camel</a>
+            <a shape="rect" style="float:right; 
width:180px;display:block;text-indent:-5000px;text-decoration:none;line-height:80px;
 margin-top:45px; margin-right:10px;" href="http://www.apache.org";>Apache</a>
+       </div>
+</div></div>
+          <!-- Banner -->
+        <div class="top_red_bar">
+          <div id="site-breadcrumbs">
+                <!-- Breadcrumbs -->
+<a href="index.html">Apache Camel</a>&nbsp;&gt;&nbsp;<a 
href="documentation.html">Documentation</a>&nbsp;&gt;&nbsp;<a 
href="components.html">Components</a>&nbsp;&gt;&nbsp;<a 
href="ehcache.html">Ehcache</a>
+          </div>
+          <!-- Quicklinks -->
+<div id="site-quicklinks"><p><a shape="rect" href="download.html">Download</a> 
| <a shape="rect" href="javadoc.html">JavaDoc</a> | <a shape="rect" 
href="source.html">Source</a> | <a shape="rect" 
href="discussion-forums.html">Forums</a> | <a shape="rect" 
href="support.html">Support</a></p></div>
+          <!-- Quicklinks -->
+        </div>
+
+       <table border="0">
+       <tbody>
+        <tr>
+        <td valign="top" width="100%">
+<div class="wiki-content maincontent"><h2 
id="Ehcache-EhcacheComponent">Ehcache Component</h2><p><strong>Available as of 
Camel 2.18.x</strong></p><p>The <strong>ehcache</strong>&#160;component enables 
you to perform caching operations using Ehcache 3 as the Cache 
Implementation.</p><p>This component supports producer and event based consumer 
endpoints.</p><p>The Cache consumer is an event based consumer and can be used 
to listen and respond to specific cache activities.&#160;</p><p>Maven users 
will need to add the following dependency to 
their&#160;<code>pom.xml</code>&#160;for this component:</p><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[&lt;dependency&gt;
+    &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
+    &lt;artifactId&gt;camel-ehcache&lt;/artifactId&gt;
+    &lt;version&gt;x.x.x&lt;/version&gt;
+    &lt;!-- use the same version as your Camel core version --&gt;
+&lt;/dependency&gt;
+]]></script>
+</div></div><h3 id="Ehcache-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[ehcache://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><h3 
id="Ehcache-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>configUri</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>URI pointing to the Ehcache XML 
configuration file's location</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>createCacheIfNotExist</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Configure if a cache need to be cre
 ated if it does exist or can't be pre-configured.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>action</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>To configure the default cache 
action. If an action is set in the message header, then the operation from the 
header takes precedence.</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>To configure the default action key. If a key is set in 
the message header, then the key from the header takes 
precedence.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>configuration</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>The default cache
  configuration to be used to create caches if configUri is not 
set</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>keyType</code></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 cache key type, default 
Object.class</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>valueType</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><span style="font-family: 
monospace;">java.lang.Object</span></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>The cache value type, default 
Object.class</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>eventOrdering</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>ORDERED</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Set the the delivery mode (ordered, unordered), 
consumer only</p></td></tr><tr><td colspan="1" rowspan="1" class="conflue
 nceTd"><p>eventFiring</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>ASYNCHRONOUS</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Set the the delivery mode (synchronous, 
asynchronous<span>), consumer only</span></p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>eventTypes</p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p>EVICTED,EXPIRED,REMOVED,CREATED,UPDATED</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Set the type of events to 
listen for<span>, consumer only</span></p></td></tr></tbody></table></div><h4 
id="Ehcache-MessageHeadersCamel">Message Headers 
Camel&#160;</h4><p>&#160;</p><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><span s
 tyle="color: rgb(0,0,0);">CamelEhcacheAction</span></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><span style="color: 
rgb(0,0,0);"><code>String</code></span></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span style="color: rgb(0,0,0);">The operation to be 
perfomed on the cache, valid options are:</span></p><ul style="list-style-type: 
square;"><li><span style="color: rgb(0,0,0);">CLEAR</span></li><li><span 
style="color: rgb(0,0,0);">PUT</span></li><li><span style="color: 
rgb(0,0,0);">PUT_ALL</span></li><li><span style="color: 
rgb(0,0,0);">PUT_IF_ABSENT</span></li><li><span style="color: 
rgb(0,0,0);">GET</span></li><li><span style="color: 
rgb(0,0,0);">GET_ALL</span></li><li><span style="color: 
rgb(0,0,0);">REMOVE</span></li><li><span style="color: 
rgb(0,0,0);">REMOVE_ALL</span></li><li><span style="color: 
rgb(0,0,0);">REPLACE</span></li></ul></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span style="color: rgb(0,0,0);">CamelEhcacheActio
 nHasResult</span></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span style="color: 
rgb(0,0,0);">Boolean</span></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span style="color: rgb(0,0,0);">Set to true if the 
action has a result</span></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span style="color: 
rgb(0,0,0);">CamelEhcacheActionSucceeded</span></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><span style="color: 
rgb(0,0,0);"><code>Boolean</code></span></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span style="color: rgb(0,0,0);">Set to true if the 
actionsuccedded</span></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><span style="color: 
rgb(0,0,0);">CamelEhcacheKey</span></td><td colspan="1" rowspan="1" 
class="confluenceTd"><span style="color: rgb(0,0,0);">Object</span></td><td 
colspan="1" rowspan="1" class="confluenceTd"><span style="color: 
rgb(0,0,0);">The cache key used for an actio
 n</span></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><span 
style="color: rgb(0,0,0);">CamelEhcacheKeys</span></td><td colspan="1" 
rowspan="1" class="confluenceTd"><span style="color: 
rgb(0,0,0);">Set&lt;Object&gt;</span></td><td colspan="1" rowspan="1" 
class="confluenceTd"><span style="color: rgb(0,0,0);">A list of keys, used in 
</span><ul><li><span style="color: rgb(0,0,0);">PUT_ALL</span></li><li><span 
style="color: rgb(0,0,0);">GET_ALL</span></li><li><span style="color: 
rgb(0,0,0);">REMOVE_ALL</span></li></ul></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><span style="color: 
rgb(0,0,0);">CamelEhcacheValue</span></td><td colspan="1" rowspan="1" 
class="confluenceTd"><span style="color: rgb(0,0,0);">Object</span></td><td 
colspan="1" rowspan="1" class="confluenceTd"><span style="color: 
rgb(0,0,0);">The value to put in the cache or the result of an 
operation</span></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><span style="color: rgb(0
 ,0,0);">CamelEhcacheOldValue</span></td><td colspan="1" rowspan="1" 
class="confluenceTd"><span style="color: rgb(0,0,0);">Object</span></td><td 
colspan="1" rowspan="1" class="confluenceTd"><span style="color: 
rgb(0,0,0);">The old value associated to a key for actions like PUT_IF_ABSENT 
or the Object used for comparison for actions like 
REPLACE</span></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><span style="color: 
rgb(0,0,0);">CamelEhcacheEventType</span></td><td colspan="1" rowspan="1" 
class="confluenceTd"><span style="color: rgb(0,0,0);">EventType</span></td><td 
colspan="1" rowspan="1" class="confluenceTd"><span style="color: 
rgb(0,0,0);">The type of event 
received</span></td></tr></tbody></table></div><h3 
id="Ehcache-Ehcachebasedidempotentrepositoryexample:">Ehcache 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[CacheManager manager = 
CacheManagerBuilder.newCacheManager(new 
XmlConfiguration(&quot;ehcache.xml&quot;));
+EhcacheIdempotentRepository repo = new EhcacheIdempotentRepository(manager, 
&quot;idempotent-cache&quot;);
+ 
+from(&quot;direct:in&quot;)
+    .idempotentConsumer(header(&quot;messageId&quot;), idempotentRepo)
+    .to(&quot;mock:out&quot;);]]></script>
+</div></div><p>&#160;</p><h3 
id="Ehcache-Ehcachebasedaggregationrepositoryexample:">Ehcache based 
aggregation 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[public class 
EhcacheAggregationRepositoryRoutesTest extends CamelTestSupport {
+    private static final String ENDPOINT_MOCK = &quot;mock:result&quot;;
+    private static final String ENDPOINT_DIRECT = &quot;direct:one&quot;;
+    private static final int[] VALUES = generateRandomArrayOfInt(10, 0, 30);
+    private static final int SUM = IntStream.of(VALUES).reduce(0, (a, b) -&gt; 
a + b);
+    private static final String CORRELATOR = &quot;CORRELATOR&quot;;
+
+    @EndpointInject(uri = ENDPOINT_MOCK)
+    private MockEndpoint mock;
+
+    @Produce(uri = ENDPOINT_DIRECT)
+    private ProducerTemplate producer;
+
+    @Test
+    public void checkAggregationFromOneRoute() throws Exception {
+        mock.expectedMessageCount(VALUES.length);
+        mock.expectedBodiesReceived(SUM);
+
+        IntStream.of(VALUES).forEach(
+            i -&gt; producer.sendBodyAndHeader(i, CORRELATOR, CORRELATOR)
+        );
+
+        mock.assertIsSatisfied();
+    }
+
+    private Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
+        if (oldExchange == null) {
+            return newExchange;
+        } else {
+            Integer n = newExchange.getIn().getBody(Integer.class);
+            Integer o = oldExchange.getIn().getBody(Integer.class);
+            Integer v = (o == null ? 0 : o) + (n == null ? 0 : n);
+
+            oldExchange.getIn().setBody(v, Integer.class);
+
+            return oldExchange;
+        }
+    }
+
+    @Override
+    protected RoutesBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                from(ENDPOINT_DIRECT)
+                    .routeId(&quot;AggregatingRouteOne&quot;)
+                    .aggregate(header(CORRELATOR))
+                    .aggregationRepository(createAggregateRepository())
+                    
.aggregationStrategy(EhcacheAggregationRepositoryRoutesTest.this::aggregate)
+                    .completionSize(VALUES.length)
+                        
.to(&quot;log:org.apache.camel.component.ehcache.processor.aggregate.level=INFO&amp;showAll=true&amp;mulltiline=true&quot;)
+                        .to(ENDPOINT_MOCK);
+            }
+        };
+    }
+
+    protected EhcacheAggregationRepository createAggregateRepository() throws 
Exception {
+        CacheManager cacheManager = CacheManagerBuilder.newCacheManager(new 
XmlConfiguration(&quot;ehcache.xml&quot;));
+        cacheManager.init();
+
+        EhcacheAggregationRepository repository = new 
EhcacheAggregationRepository();
+        repository.setCacheManager(cacheManager);
+        repository.setCacheName(&quot;aggregate&quot;);
+
+        return repository;
+    }
+}
+
+]]></script>
+</div></div></div></div>
+        </td>
+        <td valign="top">
+          <div class="navigation">
+            <div class="navigation_top">
+                <!-- NavigationBar -->
+<div class="navigation_bottom" id="navigation_bottom"><h3 
id="Navigation-Overview"><a shape="rect" 
href="overview.html">Overview</a></h3><ul class="alternate"><li><a shape="rect" 
href="index.html">Home</a></li><li><a shape="rect" 
href="download.html">Download</a></li><li><a shape="rect" 
href="getting-started.html">Getting Started</a></li><li><a shape="rect" 
href="faq.html">FAQ</a></li></ul><h3 id="Navigation-Documentation"><a 
shape="rect" href="documentation.html">Documentation</a></h3><ul 
class="alternate"><li><a shape="rect" href="user-guide.html">User 
Guide</a></li><li><a shape="rect" href="manual.html">Manual</a></li><li><a 
shape="rect" href="books.html">Books</a></li><li><a shape="rect" 
href="tutorials.html">Tutorials</a></li><li><a shape="rect" 
href="examples.html">Examples</a></li><li><a shape="rect" 
href="cookbook.html">Cookbook</a></li><li><a shape="rect" 
href="architecture.html">Architecture</a></li><li><a shape="rect" 
href="enterprise-integration-patterns.html">Enterprise
  Integration Patterns</a></li><li><a shape="rect" 
href="dsl.html">DSL</a></li><li><a shape="rect" 
href="components.html">Components</a></li><li><a shape="rect" 
href="data-format.html">Data Format</a></li><li><a shape="rect" 
href="languages.html">Languages</a></li><li><a shape="rect" 
href="security.html">Security</a></li><li><a shape="rect" 
href="security-advisories.html">Security Advisories</a></li></ul><h3 
id="Navigation-Search">Search</h3><form 
enctype="application/x-www-form-urlencoded" method="get" id="cse-search-box" 
action="http://www.google.com/cse";>
+  <div>
+    <input type="hidden" name="cx" value="007878419884033443453:m5nhvy4hmyq">
+    <input type="hidden" name="ie" value="UTF-8">
+    <input type="text" name="q" size="21">
+    <input type="submit" name="sa" value="Search">
+  </div>
+</form>
+<script type="text/javascript" 
src="http://www.google.com/coop/cse/brand?form=cse-search-box&amp;lang=en";></script><h3
 id="Navigation-Community"><a shape="rect" 
href="community.html">Community</a></h3><ul class="alternate"><li><a 
shape="rect" href="support.html">Support</a></li><li><a shape="rect" 
href="contributing.html">Contributing</a></li><li><a shape="rect" 
href="discussion-forums.html">Discussion Forums</a></li><li><a shape="rect" 
href="mailing-lists.html">Mailing Lists</a></li><li><a shape="rect" 
href="user-stories.html">User Stories</a></li><li><a shape="rect" 
href="news.html">News</a></li><li><a shape="rect" 
href="articles.html">Articles</a></li><li><a shape="rect" 
href="site.html">Site</a></li><li><a shape="rect" 
href="team.html">Team</a></li><li><a shape="rect" class="external-link" 
href="http://camel-extra.googlecode.com/"; rel="nofollow">Camel 
Extra</a></li></ul><h3 id="Navigation-Developers"><a shape="rect" 
href="developers.html">Developers</a></h3><ul class="alternate"
 ><li><a shape="rect" href="developers.html">Developer Guide</a></li><li><a 
 >shape="rect" href="source.html">Source</a></li><li><a shape="rect" 
 >href="building.html">Building</a></li><li><a shape="rect" 
 >href="javadoc.html">JavaDoc</a></li><li><a shape="rect" 
 >href="irc-room.html">IRC Room</a></li></ul><h3 
 >id="Navigation-ApacheSoftwareFoundation">Apache Software Foundation</h3><ul 
 >class="alternate"><li><a shape="rect" class="external-link" 
 >href="http://www.apache.org/licenses/";>License</a></li><li><a shape="rect" 
 >class="external-link" 
 >href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
 > shape="rect" class="external-link" 
 >href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li><li><a 
 >shape="rect" class="external-link" 
 >href="http://www.apache.org/security/";>Security</a></li></ul></div>
+                <!-- NavigationBar -->
+            </div>
+          </div>
+        </td>
+        </tr>
+       </tbody>
+        </table>
+
+
+        <div class="bottom_red_bar"></div>
+      </div>
+    </div>
+  </div>
+</div>
+<div class="black_box">
+<div class="footer">
+  <div class="footer_l">
+    <div class="footer_r">
+      <div>
+        <a href="$base/privacy-policy.html">Privacy Policy</a> -
+        (<a 
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=62697244";>edit
 page</a>)
+        (<a 
href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=62697244&amp;showComments=true&amp;showCommentArea=true#addcomment";>add
 comment</a>)
+      </div>
+    </div>
+  </div>
+</div>
+</div>
+</div>
+<div class="design_attribution">
+&copy; 2004-2015 The Apache Software Foundation.
+<br>          
+Apache Camel, Camel, Apache, the Apache feather logo, and the Apache Camel 
project logo are trademarks of The Apache Software Foundation.  All other marks 
mentioned may be trademarks or registered trademarks of their respective owners.
+<br>
+<a href="http://hiramchirino.com";>Graphic Design By Hiram</a>
+</div>
+
+<!-- Camel committers that would like access to the Analytics, send a note to 
priv...@camel.apache.org -->
+<script type="text/javascript">
+
+  var _gaq = _gaq || [];
+  _gaq.push(['_setAccount', 'UA-25976253-1']);
+  _gaq.push(['_trackPageview']);
+
+  (function() {
+    var ga = document.createElement('script'); ga.type = 'text/javascript'; 
ga.async = true;
+    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 
'http://www') + '.google-analytics.com/ga.js';
+    var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);
+  })();
+
+</script>
+
+</body>
+</html>
+
+

Modified: websites/production/camel/content/idempotent-consumer.html
==============================================================================
--- websites/production/camel/content/idempotent-consumer.html (original)
+++ websites/production/camel/content/idempotent-consumer.html Tue May 17 
15:20:48 2016
@@ -86,7 +86,7 @@
        <tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><h3 
id="IdempotentConsumer-IdempotentConsumer">Idempotent Consumer</h3><p>The <a 
shape="rect" class="external-link" 
href="http://www.enterpriseintegrationpatterns.com/IdempotentReceiver.html"; 
rel="nofollow">Idempotent Consumer</a> from the <a shape="rect" 
href="enterprise-integration-patterns.html">EIP patterns</a> is used to filter 
out duplicate messages.</p><p>This pattern is implemented using the <a 
shape="rect" class="external-link" 
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/idempotent/IdempotentConsumer.html";>IdempotentConsumer</a>
 class. This uses an <a shape="rect" href="expression.html">Expression</a> to 
calculate a unique message ID string for a given message exchange; this ID can 
then be looked up in the <a shape="rect" class="external-link" 
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/spi/IdempotentRepository.html";>IdempotentRepository</a>
 to see if it h
 as been seen before; if it has the message is consumed; if its not then the 
message is processed and the ID is added to the repository.</p><p>The 
Idempotent Consumer essentially acts like a <a shape="rect" 
href="message-filter.html">Message Filter</a> to filter out 
duplicates.</p><p>Camel will add the message id eagerly to the repository to 
detect duplication also for Exchanges currently in progress.<br clear="none"> 
On completion Camel will remove the message id from the repository if the 
Exchange failed, otherwise it stays there.</p><p>Camel provides the following 
Idempotent Consumer implementations:</p><ul 
class="alternate"><li>MemoryIdempotentRepository</li><li><a shape="rect" 
href="file2.html">FileIdempotentRepository</a></li><li><a shape="rect" 
href="hazelcast-component.html">HazelcastIdempotentRepository</a> 
(<strong>Available as of Camel 2.8</strong>)</li><li><a shape="rect" 
href="sql-component.html">JdbcMessageIdRepository</a> (<strong>Available as of 
Camel 2.7</strong>)</l
 i><li><a shape="rect" href="jpa.html">JpaMessageIdRepository</a></li><li><p><a 
shape="rect" href="infinispan.html">InfinispanIdempotentRepository</a> 
(<strong>Available as of Camel 2.13.0)</strong></p></li><li><p><a shape="rect" 
href="jcache.html">JCacheIdempotentRepository</a><strong>&#160;(<strong>Available
 as of Camel 2.17.0)</strong></strong></p></li><li><p><a shape="rect" 
href="spring.html">SpringCacheIdempotentRepository</a>&#160;<strong>(<strong>Available
 as of Camel 2.17.1)</strong></strong><strong><strong><br 
clear="none"></strong></strong></p></li></ul><h3 
id="IdempotentConsumer-Options">Options</h3><p>The Idempotent Consumer has the 
following options:</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Option</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="conflu
 enceTd"><p>eager</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Eager controls whether Camel adds the message to the 
repository before or after the exchange has been processed. If enabled before 
then Camel will be able to detect duplicate messages even when messages are 
currently in progress. By disabling Camel will only detect duplicates when a 
message has successfully been processed.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>messageIdRepositoryRef</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 
<code>IdempotentRepository</code> to lookup in the registry. This option is 
mandatory when using XML DSL.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>skipDuplicate</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>true</p></td><td colspan="1" rowsp
 an="1" class="confluenceTd"><p><strong>Camel 2.8:</strong> Sets whether to 
skip duplicate messages. If set to <code>false</code> then the message will be 
continued. However the <a shape="rect" href="exchange.html">Exchange</a> has 
been marked as a duplicate by having the <code>Exchange.DUPLICATE_MESSAG</code> 
exchange property set to a <code>Boolean.TRUE</code> 
value.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>removeOnFailure</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.9:</strong> Sets whether to remove the 
id of an Exchange that failed.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">completionEager</td><td colspan="1" rowspan="1" 
class="confluenceTd">false</td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.16:</strong> Sets whether to complete 
the idempotent consumer eager or when the exchange is done.</p><p>If this optio
 n is true to complete eager, then the idempotent consumer will trigger its 
completion when the exchange reached the end of the block of the idempotent 
consumer pattern. So if the exchange is continued routed after the block ends, 
then whatever happens there does not affect the state.</p><p>If this option is 
false (default) to not complete eager, then the idempotent consumer will 
complete when the exchange is done being routed. So if the exchange is 
continued routed after the block ends, then whatever happens there also affect 
the state. For example if the exchange failed due to an exception, then the 
state of the idempotent consumer will be a 
rollback.</p></td></tr></tbody></table></div><h3 
id="IdempotentConsumer-Usingthe"><strong>Using the <a shape="rect" 
href="fluent-builders.html">Fluent Builders</a></strong></h3><p>The following 
example will use the header <strong>myMessageId</strong> to filter out 
duplicates</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="
 codeContent panelContent pdl">
+<div class="wiki-content maincontent"><h3 
id="IdempotentConsumer-IdempotentConsumer">Idempotent Consumer</h3><p>The <a 
shape="rect" class="external-link" 
href="http://www.enterpriseintegrationpatterns.com/IdempotentReceiver.html"; 
rel="nofollow">Idempotent Consumer</a> from the <a shape="rect" 
href="enterprise-integration-patterns.html">EIP patterns</a> is used to filter 
out duplicate messages.</p><p>This pattern is implemented using the <a 
shape="rect" class="external-link" 
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/idempotent/IdempotentConsumer.html";>IdempotentConsumer</a>
 class. This uses an <a shape="rect" href="expression.html">Expression</a> to 
calculate a unique message ID string for a given message exchange; this ID can 
then be looked up in the <a shape="rect" class="external-link" 
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/spi/IdempotentRepository.html";>IdempotentRepository</a>
 to see if it h
 as been seen before; if it has the message is consumed; if its not then the 
message is processed and the ID is added to the repository.</p><p>The 
Idempotent Consumer essentially acts like a <a shape="rect" 
href="message-filter.html">Message Filter</a> to filter out 
duplicates.</p><p>Camel will add the message id eagerly to the repository to 
detect duplication also for Exchanges currently in progress.<br clear="none"> 
On completion Camel will remove the message id from the repository if the 
Exchange failed, otherwise it stays there.</p><p>Camel provides the following 
Idempotent Consumer implementations:</p><ul 
class="alternate"><li>MemoryIdempotentRepository</li><li><a shape="rect" 
href="file2.html">FileIdempotentRepository</a></li><li><a shape="rect" 
href="hazelcast-component.html">HazelcastIdempotentRepository</a> 
(<strong>Available as of Camel 2.8</strong>)</li><li><a shape="rect" 
href="sql-component.html">JdbcMessageIdRepository</a> (<strong>Available as of 
Camel 2.7</strong>)</l
 i><li><a shape="rect" href="jpa.html">JpaMessageIdRepository</a></li><li><p><a 
shape="rect" href="infinispan.html">InfinispanIdempotentRepository</a> 
(<strong>Available as of Camel 2.13.0)</strong></p></li><li><p><a shape="rect" 
href="jcache.html">JCacheIdempotentRepository</a><strong>&#160;(<strong>Available
 as of Camel 2.17.0)</strong></strong></p></li><li><p><a shape="rect" 
href="spring.html">SpringCacheIdempotentRepository</a>&#160;<strong>(<strong>Available
 as of Camel 2.17.1)</strong></strong><strong><strong><br 
clear="none"></strong></strong></p></li><li><p><strong><strong><a shape="rect" 
href="ehcache.html">EhcacheIdempotentRepository</a>&#160;<strong>(<strong>Available
 as of Camel 2.18.0)</strong></strong><br 
clear="none"></strong></strong></p></li></ul><h3 
id="IdempotentConsumer-Options">Options</h3><p>The Idempotent Consumer has the 
following options:</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>O
 ption</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>eager</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Eager controls whether Camel adds the message to the 
repository before or after the exchange has been processed. If enabled before 
then Camel will be able to detect duplicate messages even when messages are 
currently in progress. By disabling Camel will only detect duplicates when a 
message has successfully been processed.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>messageIdRepositoryRef</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 
<code>IdempotentRepository</code> to lookup in the registry. This option is man
 datory when using XML DSL.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>skipDuplicate</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.8:</strong> Sets whether to skip 
duplicate messages. If set to <code>false</code> then the message will be 
continued. However the <a shape="rect" href="exchange.html">Exchange</a> has 
been marked as a duplicate by having the <code>Exchange.DUPLICATE_MESSAG</code> 
exchange property set to a <code>Boolean.TRUE</code> 
value.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>removeOnFailure</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.9:</strong> Sets whether to remove the 
id of an Exchange that failed.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">completionEager</td><td colspan="1" rowspan="1" 
class="confl
 uenceTd">false</td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.16:</strong> Sets whether to complete 
the idempotent consumer eager or when the exchange is done.</p><p>If this 
option is true to complete eager, then the idempotent consumer will trigger its 
completion when the exchange reached the end of the block of the idempotent 
consumer pattern. So if the exchange is continued routed after the block ends, 
then whatever happens there does not affect the state.</p><p>If this option is 
false (default) to not complete eager, then the idempotent consumer will 
complete when the exchange is done being routed. So if the exchange is 
continued routed after the block ends, then whatever happens there also affect 
the state. For example if the exchange failed due to an exception, then the 
state of the idempotent consumer will be a 
rollback.</p></td></tr></tbody></table></div><h3 
id="IdempotentConsumer-Usingthe"><strong>Using the <a shape="rect" 
href="fluent-builders.html
 ">Fluent Builders</a></strong></h3><p>The following example will use the 
header <strong>myMessageId</strong> to filter out duplicates</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
 RouteBuilder builder = new RouteBuilder() {
     public void configure() {

Modified: websites/production/camel/content/transport.html
==============================================================================
--- websites/production/camel/content/transport.html (original)
+++ websites/production/camel/content/transport.html Tue May 17 15:20:48 2016
@@ -221,7 +221,9 @@ disruptor-vm:someName[?&lt;option&gt;]
 </div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><span 
style="color: rgb(0,0,0);">The&#160;</span> <strong>dropbox:</strong> <span 
style="color: rgb(0,0,0);">&#160;component allows you to treat&#160;</span> <a 
shape="rect" class="external-link" href="https://www.dropbox.com/"; 
rel="nofollow">Dropbox</a> <span style="color: rgb(0,0,0);">&#160;remote 
folders as a producer or consumer of messages.</span></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
href="ejb.html">EJB</a> / camel-ejb</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[ejb:ejbName[?options]
 ]]></script>
-</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Uses the 
<a shape="rect" href="bean-binding.html">Bean Binding</a> to bind message 
exchanges to EJBs. It works like the <a shape="rect" href="bean.html">Bean</a> 
component but just for accessing EJBs. Supports EJB 3.0 
onwards.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" 
href="elasticsearch.html">ElasticSearch</a> / camel-elasticsearch</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Uses the 
<a shape="rect" href="bean-binding.html">Bean Binding</a> to bind message 
exchanges to EJBs. It works like the <a shape="rect" href="bean.html">Bean</a> 
component but just for accessing EJBs. Supports EJB 3.0 
onwards.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="ehcache.html">Ehcache</a> / 
camel-ehcache</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+<script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[ehcache://cacheName[?options]]]></script>
+</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><span>The 
cache component facilitates creation of caching endpoints and processors using 
</span><a shape="rect" class="external-link" href="http://ehcache.org/"; 
rel="nofollow">Ehcache 3</a><span> as the cache 
implementation.</span></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" 
href="elasticsearch.html">ElasticSearch</a> / camel-elasticsearch</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[elasticsearch://clusterName[?options]
 ]]></script>
 </div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For 
interfacing with an <a shape="rect" class="external-link" 
href="http://elasticsearch.org"; rel="nofollow">ElasticSearch</a> 
server.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" href="etcd.html">Etcd</a> / camel-etcd</p><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">

Modified: websites/production/camel/content/uris.html
==============================================================================
--- websites/production/camel/content/uris.html (original)
+++ websites/production/camel/content/uris.html Tue May 17 15:20:48 2016
@@ -226,7 +226,9 @@ disruptor-vm:someName[?&lt;option&gt;]
 </div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><span 
style="color: rgb(0,0,0);">The&#160;</span> <strong>dropbox:</strong> <span 
style="color: rgb(0,0,0);">&#160;component allows you to treat&#160;</span> <a 
shape="rect" class="external-link" href="https://www.dropbox.com/"; 
rel="nofollow">Dropbox</a> <span style="color: rgb(0,0,0);">&#160;remote 
folders as a producer or consumer of messages.</span></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
href="ejb.html">EJB</a> / camel-ejb</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[ejb:ejbName[?options]
 ]]></script>
-</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Uses the 
<a shape="rect" href="bean-binding.html">Bean Binding</a> to bind message 
exchanges to EJBs. It works like the <a shape="rect" href="bean.html">Bean</a> 
component but just for accessing EJBs. Supports EJB 3.0 
onwards.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" 
href="elasticsearch.html">ElasticSearch</a> / camel-elasticsearch</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Uses the 
<a shape="rect" href="bean-binding.html">Bean Binding</a> to bind message 
exchanges to EJBs. It works like the <a shape="rect" href="bean.html">Bean</a> 
component but just for accessing EJBs. Supports EJB 3.0 
onwards.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="ehcache.html">Ehcache</a> / 
camel-ehcache</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+<script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[ehcache://cacheName[?options]]]></script>
+</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><span>The 
cache component facilitates creation of caching endpoints and processors using 
</span><a shape="rect" class="external-link" href="http://ehcache.org/"; 
rel="nofollow">Ehcache 3</a><span> as the cache 
implementation.</span></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" 
href="elasticsearch.html">ElasticSearch</a> / camel-elasticsearch</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[elasticsearch://clusterName[?options]
 ]]></script>
 </div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For 
interfacing with an <a shape="rect" class="external-link" 
href="http://elasticsearch.org"; rel="nofollow">ElasticSearch</a> 
server.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" href="etcd.html">Etcd</a> / camel-etcd</p><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">



Reply via email to