Author: buildbot
Date: Tue Feb 23 12:21:03 2016
New Revision: 981010
Log:
Production update by buildbot for camel
Added:
websites/production/camel/content/jcache.html
Modified:
websites/production/camel/content/book-architecture.html
websites/production/camel/content/book-in-one-page.html
websites/production/camel/content/book-pattern-appendix.html
websites/production/camel/content/cache/main.pageCache
websites/production/camel/content/camel-2170-release.html
websites/production/camel/content/component-list.html
websites/production/camel/content/component.html
websites/production/camel/content/components.html
websites/production/camel/content/idempotent-consumer.html
websites/production/camel/content/transport.html
websites/production/camel/content/uris.html
Modified: websites/production/camel/content/book-architecture.html
==============================================================================
--- websites/production/camel/content/book-architecture.html (original)
+++ websites/production/camel/content/book-architecture.html Tue Feb 23
12:21:03 2016
@@ -355,7 +355,9 @@ disruptor-vm:someName[?<option>]
</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Sending
and receiving messages through <a shape="rect" class="external-link"
href="http://java.sun.com/products/jini/2.1/doc/specs/html/js-spec.html"
rel="nofollow">JavaSpace</a></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><a shape="rect" href="jbpm.html">jBPM</a> /
camel-jbpm</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[jbpm:hostName[:port][/resourceUri][?options]
]]></script>
-</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Sending
messages through kie-remote-client API to jBPM.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect"
href="jclouds.html">jclouds</a> / camel-jclouds</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>Sending
messages through kie-remote-client API to jBPM.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect"
href="jcache.html">jcache</a> / camel-jcache</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[jcache:cacheName[?options]]]></script>
+</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><span>The
JCache component facilitates creation of caching endpoints and processors using
</span><a shape="rect" class="external-link"
href="https://github.com/jsr107/jsr107spec" rel="nofollow">JCache /
jsr107</a><span> as the cache implementation.</span></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect"
href="jclouds.html">jclouds</a> / camel-jclouds</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[jclouds:<blobstore|compute>:[provider
id][?options]
]]></script>
</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For
interacting with cloud compute & blobstore service via <a shape="rect"
class="external-link" href="http://www.jclouds.org"
rel="nofollow">jclouds</a></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><a shape="rect" href="jcr.html">JCR</a> /
camel-jcr</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeContent panelContent pdl">
Modified: websites/production/camel/content/book-in-one-page.html
==============================================================================
--- websites/production/camel/content/book-in-one-page.html (original)
+++ websites/production/camel/content/book-in-one-page.html Tue Feb 23 12:21:03
2016
@@ -716,7 +716,9 @@ disruptor-vm:someName[?<option>]
</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Sending
and receiving messages through <a shape="rect" class="external-link"
href="http://java.sun.com/products/jini/2.1/doc/specs/html/js-spec.html"
rel="nofollow">JavaSpace</a></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><a shape="rect" href="jbpm.html">jBPM</a> /
camel-jbpm</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[jbpm:hostName[:port][/resourceUri][?options]
]]></script>
-</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Sending
messages through kie-remote-client API to jBPM.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect"
href="jclouds.html">jclouds</a> / camel-jclouds</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>Sending
messages through kie-remote-client API to jBPM.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect"
href="jcache.html">jcache</a> / camel-jcache</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[jcache:cacheName[?options]]]></script>
+</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><span>The
JCache component facilitates creation of caching endpoints and processors using
</span><a shape="rect" class="external-link"
href="https://github.com/jsr107/jsr107spec" rel="nofollow">JCache /
jsr107</a><span> as the cache implementation.</span></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect"
href="jclouds.html">jclouds</a> / camel-jclouds</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[jclouds:<blobstore|compute>:[provider
id][?options]
]]></script>
</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For
interacting with cloud compute & blobstore service via <a shape="rect"
class="external-link" href="http://www.jclouds.org"
rel="nofollow">jclouds</a></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><a shape="rect" href="jcr.html">JCR</a> /
camel-jcr</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeContent panelContent pdl">
@@ -3733,11 +3735,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.rbtoc1456161511655 {padding: 0px;}
-div.rbtoc1456161511655 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1456161511655 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1456229911234 {padding: 0px;}
+div.rbtoc1456229911234 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1456229911234 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1456161511655">
+/*]]>*/</style></p><div class="toc-macro rbtoc1456229911234">
<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>
@@ -5852,11 +5854,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.rbtoc1456161513041 {padding: 0px;}
-div.rbtoc1456161513041 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1456161513041 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1456229912543 {padding: 0px;}
+div.rbtoc1456229912543 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1456229912543 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style><div class="toc-macro rbtoc1456161513041">
+/*]]>*/</style><div class="toc-macro rbtoc1456229912543">
<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>
@@ -15853,7 +15855,7 @@ from("activemq:queue:Consumer.2.Vir
<h4 id="BookInOnePage-UsingThisPattern.41">Using This Pattern</h4>
<p>If you would like to use this EIP Pattern then please read the <a
shape="rect" href="getting-started.html">Getting Started</a>, you may also find
the <a shape="rect" href="architecture.html">Architecture</a> useful
particularly the description of <a shape="rect"
href="endpoint.html">Endpoint</a> and <a shape="rect"
href="uris.html">URIs</a>. Then you could try out some of the <a shape="rect"
href="examples.html">Examples</a> first before trying this pattern out.</p>
-<h3 id="BookInOnePage-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 has 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>)</li><li><a shape="rect" href="jpa.html">JpaMe
ssageIdRepository</a></li><li><p><a shape="rect"
href="infinispan.html">InfinispanIdempotentRepository</a> (<strong>Available as
of Camel 2.13.0)</strong></p></li></ul><h3
id="BookInOnePage-Options.19">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="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 de
tect 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" 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="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
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 exc
hange 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="BookInOnePage-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">
+<h3 id="BookInOnePage-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 has 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>)</li><li><a shape="rect" href="jpa.html">JpaMe
ssageIdRepository</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><strong><a shape="rect"
href="jcache.html">JCacheIdempotentRepository</a> (<strong>Available as of
Camel 2.17.0)</strong></strong></p></li></ul><h3
id="BookInOnePage-Options.19">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="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 processe
d. 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" 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 dupl
icate 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
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="BookInOnePage-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() {
@@ -15866,14 +15868,14 @@ RouteBuilder builder = new RouteBuilder(
}
};
]]></script>
-</div></div><p>The above <a shape="rect" class="external-link"
href="https://svn.apache.org/repos/asf/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/RouteBuilderTest.java">example</a>
will use an in-memory based <a shape="rect" class="external-link"
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/idempotent/MessageIdRepository.html">MessageIdRepository</a>
which can easily run out of memory and doesn't work in a clustered
environment. So you might prefer to use the JPA based implementation which uses
a database to store the message IDs which have been processed</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
+</div></div>The above <a shape="rect" class="external-link"
href="https://svn.apache.org/repos/asf/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/RouteBuilderTest.java">example</a>
will use an in-memory based <a shape="rect" class="external-link"
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/idempotent/MessageIdRepository.html">MessageIdRepository</a>
which can easily run out of memory and doesn't work in a clustered
environment. So you might prefer to use the JPA based implementation which uses
a database to store the message IDs which have been processed<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("direct:start").idempotentConsumer(
header("messageId"),
jpaMessageIdRepository(lookup(EntityManagerFactory.class),
PROCESSOR_NAME)
).to("mock:result");
]]></script>
-</div></div><p>In the above <a shape="rect" class="external-link"
href="https://svn.apache.org/repos/asf/camel/trunk/components/camel-jpa/src/test/java/org/apache/camel/processor/jpa/JpaIdempotentConsumerTest.java">example</a>
we are using the header <strong>messageId</strong> to filter out duplicates
and using the collection <strong>myProcessorName</strong> to indicate the
Message ID Repository to use. This name is important as you could process the
same message by many different processors; so each may require its own logical
Message ID Repository.</p><p>For further examples of this pattern in use you
could look at the <a shape="rect" class="external-link"
href="http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/IdempotentConsumerTest.java?view=markup">junit
test case</a></p><h3 id="BookInOnePage-SpringXMLexample">Spring XML
example</h3><p>The following example will use the header
<strong>myMessageId</strong> to filter out duplicates</p><d
iv class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
+</div></div>In the above <a shape="rect" class="external-link"
href="https://svn.apache.org/repos/asf/camel/trunk/components/camel-jpa/src/test/java/org/apache/camel/processor/jpa/JpaIdempotentConsumerTest.java">example</a>
we are using the header <strong>messageId</strong> to filter out duplicates
and using the collection <strong>myProcessorName</strong> to indicate the
Message ID Repository to use. This name is important as you could process the
same message by many different processors; so each may require its own logical
Message ID Repository.<p>For further examples of this pattern in use you could
look at the <a shape="rect" class="external-link"
href="http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/IdempotentConsumerTest.java?view=markup">junit
test case</a></p><h3 id="BookInOnePage-SpringXMLexample">Spring XML
example</h3><p>The following example will use the header
<strong>myMessageId</strong> to filter out duplicates</p><div clas
s="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
<script class="brush: xml; gutter: false; theme: Default"
type="syntaxhighlighter"><![CDATA[
<!-- repository for the idempotent consumer -->
<bean id="myRepo"
class="org.apache.camel.processor.idempotent.MemoryIdempotentRepository"/>
@@ -15903,7 +15905,7 @@ from("direct:start")
// and here we process only new messages (no duplicates)
.to("mock:result");
]]></script>
-</div></div><p>The sample example in XML DSL would be:</p><div class="code
panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl"
style="border-bottom-width: 1px;"><b>Filter duplicate messages</b></div><div
class="codeContent panelContent pdl">
+</div></div>The sample example in XML DSL would be:<div class="code panel pdl"
style="border-width: 1px;"><div class="codeHeader panelHeader pdl"
style="border-bottom-width: 1px;"><b>Filter duplicate messages</b></div><div
class="codeContent panelContent pdl">
<script class="brush: xml; gutter: false; theme: Default"
type="syntaxhighlighter"><![CDATA[
<!-- idempotent repository, just use a memory based for testing -->
@@ -17311,11 +17313,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.rbtoc1456161525617 {padding: 0px;}
-div.rbtoc1456161525617 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1456161525617 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1456229932416 {padding: 0px;}
+div.rbtoc1456229932416 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1456229932416 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1456161525617">
+/*]]>*/</style></p><div class="toc-macro rbtoc1456229932416">
<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/book-pattern-appendix.html
==============================================================================
--- websites/production/camel/content/book-pattern-appendix.html (original)
+++ websites/production/camel/content/book-pattern-appendix.html Tue Feb 23
12:21:03 2016
@@ -4159,7 +4159,7 @@ from("activemq:queue:Consumer.2.Vir
<h4 id="BookPatternAppendix-UsingThisPattern.41">Using This Pattern</h4>
<p>If you would like to use this EIP Pattern then please read the <a
shape="rect" href="getting-started.html">Getting Started</a>, you may also find
the <a shape="rect" href="architecture.html">Architecture</a> useful
particularly the description of <a shape="rect"
href="endpoint.html">Endpoint</a> and <a shape="rect"
href="uris.html">URIs</a>. Then you could try out some of the <a shape="rect"
href="examples.html">Examples</a> first before trying this pattern out.</p>
-<h3 id="BookPatternAppendix-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 has been seen before; if it has the me
ssage 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>)</li><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></ul><h3
>id="BookPatternAppendix-Options.10">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="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
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" 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="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
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="BookPatternAppendix-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">
+<h3 id="BookPatternAppendix-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 has been seen before; if it has the me
ssage 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>)</li><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><strong><a shape="rect"
>href="jcache.html">JCacheIdempotentRepository</a> (<strong>Available as
>of Camel 2.17.0)</strong></strong></p></li></ul><h3
>id="BookPatternAppendix-Options.10">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="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 b
een 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" 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 mark
ed 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
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 whate
ver 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="BookPatternAppendix-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() {
@@ -4172,14 +4172,14 @@ RouteBuilder builder = new RouteBuilder(
}
};
]]></script>
-</div></div><p>The above <a shape="rect" class="external-link"
href="https://svn.apache.org/repos/asf/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/RouteBuilderTest.java">example</a>
will use an in-memory based <a shape="rect" class="external-link"
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/idempotent/MessageIdRepository.html">MessageIdRepository</a>
which can easily run out of memory and doesn't work in a clustered
environment. So you might prefer to use the JPA based implementation which uses
a database to store the message IDs which have been processed</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
+</div></div>The above <a shape="rect" class="external-link"
href="https://svn.apache.org/repos/asf/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/RouteBuilderTest.java">example</a>
will use an in-memory based <a shape="rect" class="external-link"
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/idempotent/MessageIdRepository.html">MessageIdRepository</a>
which can easily run out of memory and doesn't work in a clustered
environment. So you might prefer to use the JPA based implementation which uses
a database to store the message IDs which have been processed<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("direct:start").idempotentConsumer(
header("messageId"),
jpaMessageIdRepository(lookup(EntityManagerFactory.class),
PROCESSOR_NAME)
).to("mock:result");
]]></script>
-</div></div><p>In the above <a shape="rect" class="external-link"
href="https://svn.apache.org/repos/asf/camel/trunk/components/camel-jpa/src/test/java/org/apache/camel/processor/jpa/JpaIdempotentConsumerTest.java">example</a>
we are using the header <strong>messageId</strong> to filter out duplicates
and using the collection <strong>myProcessorName</strong> to indicate the
Message ID Repository to use. This name is important as you could process the
same message by many different processors; so each may require its own logical
Message ID Repository.</p><p>For further examples of this pattern in use you
could look at the <a shape="rect" class="external-link"
href="http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/IdempotentConsumerTest.java?view=markup">junit
test case</a></p><h3 id="BookPatternAppendix-SpringXMLexample">Spring XML
example</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></div>In the above <a shape="rect" class="external-link"
href="https://svn.apache.org/repos/asf/camel/trunk/components/camel-jpa/src/test/java/org/apache/camel/processor/jpa/JpaIdempotentConsumerTest.java">example</a>
we are using the header <strong>messageId</strong> to filter out duplicates
and using the collection <strong>myProcessorName</strong> to indicate the
Message ID Repository to use. This name is important as you could process the
same message by many different processors; so each may require its own logical
Message ID Repository.<p>For further examples of this pattern in use you could
look at the <a shape="rect" class="external-link"
href="http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/IdempotentConsumerTest.java?view=markup">junit
test case</a></p><h3 id="BookPatternAppendix-SpringXMLexample">Spring XML
example</h3><p>The following example will use the header
<strong>myMessageId</strong> to filter out duplicates</p><di
v class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
<script class="brush: xml; gutter: false; theme: Default"
type="syntaxhighlighter"><![CDATA[
<!-- repository for the idempotent consumer -->
<bean id="myRepo"
class="org.apache.camel.processor.idempotent.MemoryIdempotentRepository"/>
@@ -4209,7 +4209,7 @@ from("direct:start")
// and here we process only new messages (no duplicates)
.to("mock:result");
]]></script>
-</div></div><p>The sample example in XML DSL would be:</p><div class="code
panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl"
style="border-bottom-width: 1px;"><b>Filter duplicate messages</b></div><div
class="codeContent panelContent pdl">
+</div></div>The sample example in XML DSL would be:<div class="code panel pdl"
style="border-width: 1px;"><div class="codeHeader panelHeader pdl"
style="border-bottom-width: 1px;"><b>Filter duplicate messages</b></div><div
class="codeContent panelContent pdl">
<script class="brush: xml; gutter: false; theme: Default"
type="syntaxhighlighter"><![CDATA[
<!-- idempotent repository, just use a memory based for testing -->
Modified: websites/production/camel/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.