Author: buildbot Date: Sun Oct 9 20:23:38 2016 New Revision: 999099 Log: Production update by buildbot for camel
Added: websites/production/camel/content/2016/10/ websites/production/camel/content/2016/10/09/ websites/production/camel/content/2016/10/09/apache-camel-2180-released.html websites/production/camel/content/camel-2174-release.html websites/production/camel/content/camel-2181-release.html Modified: websites/production/camel/content/book-component-appendix.html websites/production/camel/content/book-enterprise-integration-patterns.html websites/production/camel/content/book-in-one-page.html websites/production/camel/content/camel-2180-release.html websites/production/camel/content/community.html websites/production/camel/content/cxfrs.html websites/production/camel/content/download.html websites/production/camel/content/manual-downloads.html websites/production/camel/content/news.html websites/production/camel/content/siteindex.html websites/production/camel/content/sitemap.html websites/production/camel/content/spark-rest.html websites/production/camel/content/xml-reference.html Added: websites/production/camel/content/2016/10/09/apache-camel-2180-released.html ============================================================================== --- websites/production/camel/content/2016/10/09/apache-camel-2180-released.html (added) +++ websites/production/camel/content/2016/10/09/apache-camel-2180-released.html Sun Oct 9 20:23:38 2016 @@ -0,0 +1,147 @@ +<!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]--> + + + + <title> + Apache Camel: Apache Camel 2.18.0 Released + </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> > 2016 > 10 > 09 > <a href="apache-camel-2180-released.html">Apache Camel 2.18.0 Released</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" class="external-link" href="https://github.com/apache/camel/" rel="nofollow">Github</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"><p>The Camel community announces the immediate availability of the new minor release Camel 2.18.0. This release contains over 500 fixes and improvements. <span style="color: rgb(34,34,34);">It is also the first release that</span><br clear="none"><span style="color: rgb(34,34,34);">requires Java 8 and comes with a much-improved Spring Boot support.</span></p><p>The artifacts are published and ready for you to <a shape="rect" href="https://cwiki.apache.org/confluence/display/CAMEL/Download">download</a> either from the Apache mirrors or from the Central Maven repository. For more details please take a look at the <a shape="rect" class="external-link" href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12334759&projectId=12311211">release notes</a>.</p><p>Many thanks to all who made this release possible.</p><p>On behalf of the Camel PMC,<br clear="none">Gregor Zurowski</p></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&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" >class="external-link" href="https://github.com/apache/camel/" >rel="nofollow">Github</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=65874041">edit page</a>) + (<a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=65874041&showComments=true&showCommentArea=true#addcomment">add comment</a>) + </div> + </div> + </div> +</div> +</div> +</div> +<div class="design_attribution"> +© 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/book-component-appendix.html ============================================================================== --- websites/production/camel/content/book-component-appendix.html (original) +++ websites/production/camel/content/book-component-appendix.html Sun Oct 9 20:23:38 2016 @@ -621,8 +621,8 @@ cometds://localhost:8443/service/mychann <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">/**/ div.rbtoc1475659129898 {padding: 0px;} div.rbtoc1475659129898 ul {list-style: disc;margin-left: 0px;} div.rbtoc1475659129898 li {margin-left: 0px;padding-left: 0px;} /**/</style> - </p><div class="toc-macro rbtoc1475659129898"> +</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">/**/ div.rbtoc1476044407008 {padding: 0px;} div.rbtoc1476044407008 ul {list-style: disc;margin-left: 0px;} div.rbtoc1476044407008 li {margin-left: 0px;padding-left: 0px;} /**/</style> + </p><div class="toc-macro rbtoc1476044407008"> <ul class="toc-indentation"><li><a shape="rect" href="#BookComponentAppendix-CXFComponent">CXF Component</a> <ul class="toc-indentation"><li><a shape="rect" href="#BookComponentAppendix-URIformat">URI format</a></li><li><a shape="rect" href="#BookComponentAppendix-Options">Options</a> <ul class="toc-indentation"><li><a shape="rect" href="#BookComponentAppendix-Thedescriptionsofthedataformats">The descriptions of the dataformats</a> @@ -868,7 +868,7 @@ cometds://localhost:8443/service/mychann </div><p>You can also configure the CXF REST endpoint through the spring configuration. Since there are lots of difference between the CXF REST client and CXF REST Server, we provide different configuration for them.<br clear="none"> Please check out the <a shape="rect" class="external-link" href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-cxf/src/main/resources/schema/cxfEndpoint.xsd">schema file</a> and <a shape="rect" class="external-link" href="https://cwiki.apache.org/CXF20DOC/JAX-RS">CXF JAX-RS documentation</a> for more information.</p><h3 id="BookComponentAppendix-HowtoconfiguretheRESTendpointinCamel">How to configure the REST endpoint in Camel</h3><p>In <a shape="rect" class="external-link" href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-cxf/src/main/resources/schema/cxfEndpoint.xsd">camel-cxf schema file</a>, there are two elements for the REST endpoint definition. <strong>cxf:rsServer</strong> for REST consumer, <strong>cxf:rsClient</s trong> for REST producer.<br clear="none"> You can find a Camel REST service route configuration example here. </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"> &lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:cxf=&quot;http://camel.apache.org/schema/cxf&quot; xmlns:jaxrs=&quot;http://cxf.apache.org/jaxrs&quot; xsi:schemaLocation=&quot; http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://camel.apache.org/schema/cxf http://camel.apache.org/schema/cxf/camel-cxf.xsd http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd &quot;&gt; &lt;bean class=&quot;org.springframework.beans.factory.config.PropertyPlaceholderConfigurer&quot;/&gt; &lt;!-- Defined the real JAXRS back end service --&gt; &lt;jaxrs:server id=&quot;restService&am p;quot; address=&quot;http://localhost:${CXFTestSupport.port2}/CxfRsRouterTest/rest&quot; staticSubresourceResolution=&quot;true&quot;&gt; &lt;jaxrs:serviceBeans&gt; &lt;ref bean=&quot;customerService&quot;/&gt; &lt;/jaxrs:serviceBeans&gt; &lt;/jaxrs:server&gt; &lt;bean id=&quot;jsonProvider&quot; class=&quot;org.apache.cxf.jaxrs.provider.json.JSONProvider&quot;/&gt; &lt;bean id=&quot;customerService&quot; class=&quot;org.apache.camel.component.cxf.jaxrs.testbean.CustomerService&quot; /&gt; &lt;!-- Defined the server endpoint to create the cxf-rs consumer --&gt; &lt;cxf:rsServer id=&quot;rsServer&quot; address=&quot;http://localhost:${CXFTestSupport.port1}/CxfRsRouterTest/route&quot; serviceClass=&quot;org.apache.camel.component.cxf.jaxrs.testbean.CustomerService&quot; loggingFeatureEnabled=&quot;true&quot; loggingSizeLimit=&quot ;20&quot; skipFaultLogging=&quot;true&quot;&gt; &lt;cxf:providers&gt; &lt;ref bean=&quot;jsonProvider&quot;/&gt; &lt;/cxf:providers&gt; &lt;/cxf:rsServer&gt; &lt;!-- Defined the client endpoint to create the cxf-rs consumer --&gt; &lt;cxf:rsClient id=&quot;rsClient&quot; address=&quot;http://localhost:${CXFTestSupport.port2}/CxfRsRouterTest/rest&quot; serviceClass=&quot;org.apache.camel.component.cxf.jaxrs.testbean.CustomerService&quot; loggingFeatureEnabled=&quot;true&quot; skipFaultLogging=&quot;true&quot;&gt; &lt;cxf:providers&gt; &lt;ref bean=&quot;jsonProvider&quot;/&gt; &lt;/cxf:providers&gt; &lt;/cxf:rsClient&gt; &lt;!-- The camel route context --&gt; &lt;camelContext id=&quot;camel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt; &lt;route&gt; &lt;!-- Just need to i gnoreDeleteMethodMessageBody --&gt; &lt;from uri=&quot;cxfrs://bean://rsServer&quot;/&gt; &lt;to uri=&quot;log:body?level=INFO&quot;/&gt; &lt;to uri=&quot;cxfrs://bean://rsClient?ignoreDeleteMethodMessageBody=true&quot;/&gt; &lt;/route&gt; &lt;/camelContext&gt; &lt;/beans&gt; </script> + <script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"> &lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:cxf=&quot;http://camel.apache.org/schema/cxf&quot; xmlns:jaxrs=&quot;http://cxf.apache.org/jaxrs&quot; xsi:schemaLocation=&quot; http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://camel.apache.org/schema/cxf http://camel.apache.org/schema/cxf/camel-cxf.xsd http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd &quot;&gt; &lt;bean class=&quot;org.springframework.beans.factory.config.PropertyPlaceholderConfigurer&quot;/&gt; &lt;!-- Defined the real JAXRS back end service --&gt; &lt;jaxrs:server id=&quot;restService&am p;quot; address=&quot;http://localhost:${CXFTestSupport.port2}/CxfRsRouterTest/rest&quot; staticSubresourceResolution=&quot;true&quot;&gt; &lt;jaxrs:serviceBeans&gt; &lt;ref bean=&quot;customerService&quot;/&gt; &lt;/jaxrs:serviceBeans&gt; &lt;/jaxrs:server&gt; &lt;bean id=&quot;jsonProvider&quot; class=&quot;org.apache.cxf.jaxrs.provider.json.JSONProvider&quot;/&gt; &lt;bean id=&quot;customerService&quot; class=&quot;org.apache.camel.component.cxf.jaxrs.testbean.CustomerService&quot; /&gt; &lt;!-- Defined the server endpoint to create the cxf-rs consumer --&gt; &lt;cxf:rsServer id=&quot;rsServer&quot; address=&quot;http://localhost:${CXFTestSupport.port1}/CxfRsRouterTest/route&quot; serviceClass=&quot;org.apache.camel.component.cxf.jaxrs.testbean.CustomerService&quot; loggingFeatureEnabled=&quot;true&quot; loggingSizeLimit=&quot ;20&quot; skipFaultLogging=&quot;true&quot;&gt; &lt;cxf:providers&gt; &lt;ref bean=&quot;jsonProvider&quot;/&gt; &lt;/cxf:providers&gt; &lt;/cxf:rsServer&gt; &lt;!-- Defined the client endpoint to create the cxf-rs producer --&gt; &lt;cxf:rsClient id=&quot;rsClient&quot; address=&quot;http://localhost:${CXFTestSupport.port2}/CxfRsRouterTest/rest&quot; serviceClass=&quot;org.apache.camel.component.cxf.jaxrs.testbean.CustomerService&quot; loggingFeatureEnabled=&quot;true&quot; skipFaultLogging=&quot;true&quot;&gt; &lt;cxf:providers&gt; &lt;ref bean=&quot;jsonProvider&quot;/&gt; &lt;/cxf:providers&gt; &lt;/cxf:rsClient&gt; &lt;!-- The camel route context --&gt; &lt;camelContext id=&quot;camel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt; &lt;route&gt; &lt;!-- Just need to i gnoreDeleteMethodMessageBody --&gt; &lt;from uri=&quot;cxfrs://bean://rsServer&quot;/&gt; &lt;to uri=&quot;log:body?level=INFO&quot;/&gt; &lt;to uri=&quot;cxfrs://bean://rsClient?ignoreDeleteMethodMessageBody=true&quot;/&gt; &lt;/route&gt; &lt;/camelContext&gt; &lt;/beans&gt; </script> </div> </div><h3 id="BookComponentAppendix-HowtooverridetheCXFproduceraddressfrommessageheader.1">How to override the CXF producer address from message header</h3><p>The <code>camel-cxfrs</code> producer supports to override the services address by setting the message with the key of "<span>CamelDestinationOverrideUrl".</span></p><div class="code panel pdl" style="border-width: 1px;"> <div class="codeContent panelContent pdl"> Modified: websites/production/camel/content/book-enterprise-integration-patterns.html ============================================================================== --- websites/production/camel/content/book-enterprise-integration-patterns.html (original) +++ websites/production/camel/content/book-enterprise-integration-patterns.html Sun Oct 9 20:23:38 2016 @@ -82,9 +82,9 @@ </div><h3 id="BookEnterpriseIntegrationPatterns-MessageConstruction">Message Construction</h3><div class="table-wrap"> <table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/EventMessageIcon.gif" data-image-src="http://www.eaipatterns.com/img/EventMessageIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="event-message.html">Event Message</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can messaging be used to transmit events from one application to another?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/RequestReplyIcon.gif" data-image-src="http://www.eaipatterns.com/img/RequestReplyIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="request-reply.html">Request Reply</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>When an application sends a message, how can it get a response from the receiver?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/CorrelationIdentifierIcon.gif" data-image-src="http://www.eaipatterns.com/img/CorrelationIdentifierIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="correlation-identifier.html">Correlation Identifier</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How does a requestor that has received a reply know which request this is the reply for?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" sr c="http://www.eaipatterns.com/img/ReturnAddressIcon.gif" data-image-src="http://www.eaipatterns.com/img/ReturnAddressIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="return-address.html">Return Address</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How does a replier know where to send the reply?</p></td></tr></tbody></table> </div><h3 id="BookEnterpriseIntegrationPatterns-MessageRouting">Message Routing</h3><div class="table-wrap"> - <table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/ContentBasedRouterIcon.gif" data-image-src="http://www.eaipatterns.com/img/ContentBasedRouterIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="content-based-router.html">Content Based Router</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How do we handle a situation where the implementation of a single logical function (e.g., inventory check) is spread across multiple physical systems?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/MessageFilterIcon.gif" data-image-src="http://www.eaipatterns.com/img/Messa geFilterIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="message-filter.html">Message Filter</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can a component avoid receiving uninteresting messages?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/DynamicRouterIcon.gif" data-image-src="http://www.eaipatterns.com/img/DynamicRouterIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="dynamic-router.html">Dynamic Router</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can you avoid the dependency of the router on all possible destinations while maintaining its efficiency?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"> <img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/RecipientListIcon.gif" data-image-src="http://www.eaipatterns.com/img/RecipientListIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="recipient-list.html">Recipient List</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How do we route a message to a list of (static or dynamically) specified recipients?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/SplitterIcon.gif" data-image-src="http://www.eaipatterns.com/img/SplitterIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="splitter.html">Splitter</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can we process a message if it contains multiple elements, each of which may have to be processed in a different way?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/AggregatorIcon.gif" data-image-src="http://www.eaipatterns.com/img/AggregatorIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="aggregator2.html">Aggregator</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How do we combine the results of individual, but related messages so that they can be processed as a whole?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/ResequencerIcon.gif" data-image-src="http://www.eaipatterns.com/img/ResequencerIcon.gif"></span></p>< /td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="resequencer.html">Resequencer</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can we get a stream of related but out-of-sequence messages back into the correct order?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/DistributionAggregateIcon.gif" data-image-src="http://www.eaipatterns.com/img/DistributionAggregateIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="composed-message-processor.html">Composed Message Processor</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can you maintain the overall message flow when processing a message consisting of multiple elements, each of which may require different processing?</p></td></tr><tr><td colspan="1" row span="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png" data-image-src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="scatter-gather.html">Scatter-Gather</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How do you maintain the overall message flow when a message needs to be sent to multiple recipients, each of which may send a reply?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/RoutingTableIcon.gif" data-image-src="http://www.eaipatterns.com/img/RoutingTableIcon.gif"></span></p></td><td colspan="1" rowspan="1" clas s="confluenceTd"><p><a shape="rect" href="routing-slip.html">Routing Slip</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How do we route a message consecutively through a series of processing steps when the sequence of steps is not known at design-time and may vary for each message?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png" data-image-src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="throttler.html">Throttler</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can I throttle messages to ensure that a specific endpoint does not get overloaded, or we don't exceed an agreed SLA with some external service?</p></td></tr><tr ><td colspan="1" rowspan="1" class="confluenceTd"><p><span >class="confluence-embedded-file-wrapper"><img >class="confluence-embedded-image confluence-external-resource" >src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png" >data-image-src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"></span></p></td><td > colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" >href="sampling.html">Sampling</a></p></td><td colspan="1" rowspan="1" >class="confluenceTd"><p>How can I sample one message out of many in a given >period to avoid downstream route does not get >overloaded?</p></td></tr><tr><td colspan="1" rowspan="1" >class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img >class="confluence-embedded-image confluence-external-resource" >src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png" >data-image-src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"></span></p></td><td > col span="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="delayer.html">Delayer</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can I delay the sending of a message?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png" data-image-src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="load-balancer.html">Load Balancer</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can I balance load across a number of endpoints?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> </td><td colspan="1" rowspan="1" class="confluenceTd"><a shape="rect" href="hystrix-eip.html">Hystrix</a></td><td colspan="1" rowspan="1" class="confluenceTd">To use Hystrix Circuit Breaker when calling an external service.</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> </td><td colspan="1" rowspan="1" class="confluenceTd"><a shape="rect" href="servicecall-eip.html">Service Call</a></td><td colspan="1" rowspan="1" class="confluenceTd">To call a remote service in a distributed system where the service is looked up from a service registry of some sorts.</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png" data-image-src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="multicast.html">Multicast</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can I route a message to a number of endpoints at the same time?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png" data-image-src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="loop.html">Loop</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can I repeat processing a message in a loop?</p></td></tr></tbody></table> + <table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/ContentBasedRouterIcon.gif" data-image-src="http://www.eaipatterns.com/img/ContentBasedRouterIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="content-based-router.html">Content Based Router</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How do we handle a situation where the implementation of a single logical function (e.g., inventory check) is spread across multiple physical systems?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/MessageFilterIcon.gif" data-image-src="http://www.eaipatterns.com/img/Messa geFilterIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="message-filter.html">Message Filter</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can a component avoid receiving uninteresting messages?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/DynamicRouterIcon.gif" data-image-src="http://www.eaipatterns.com/img/DynamicRouterIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="dynamic-router.html">Dynamic Router</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can you avoid the dependency of the router on all possible destinations while maintaining its efficiency?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"> <img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/RecipientListIcon.gif" data-image-src="http://www.eaipatterns.com/img/RecipientListIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="recipient-list.html">Recipient List</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How do we route a message to a list of (static or dynamically) specified recipients?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/SplitterIcon.gif" data-image-src="http://www.eaipatterns.com/img/SplitterIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="splitter.html">Splitter</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can we process a message if it contains multiple elements, each of which may have to be processed in a different way?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/AggregatorIcon.gif" data-image-src="http://www.eaipatterns.com/img/AggregatorIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="aggregator2.html">Aggregator</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How do we combine the results of individual, but related messages so that they can be processed as a whole?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/ResequencerIcon.gif" data-image-src="http://www.eaipatterns.com/img/ResequencerIcon.gif"></span></p>< /td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="resequencer.html">Resequencer</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can we get a stream of related but out-of-sequence messages back into the correct order?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/DistributionAggregateIcon.gif" data-image-src="http://www.eaipatterns.com/img/DistributionAggregateIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="composed-message-processor.html">Composed Message Processor</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can you maintain the overall message flow when processing a message consisting of multiple elements, each of which may require different processing?</p></td></tr><tr><td colspan="1" row span="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png" data-image-src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="scatter-gather.html">Scatter-Gather</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How do you maintain the overall message flow when a message needs to be sent to multiple recipients, each of which may send a reply?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/RoutingTableIcon.gif" data-image-src="http://www.eaipatterns.com/img/RoutingTableIcon.gif"></span></p></td><td colspan="1" rowspan="1" clas s="confluenceTd"><p><a shape="rect" href="routing-slip.html">Routing Slip</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How do we route a message consecutively through a series of processing steps when the sequence of steps is not known at design-time and may vary for each message?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png" data-image-src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="throttler.html">Throttler</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can I throttle messages to ensure that a specific endpoint does not get overloaded, or we don't exceed an agreed SLA with some external service?</p></td></tr><tr ><td colspan="1" rowspan="1" class="confluenceTd"><p><span >class="confluence-embedded-file-wrapper"><img >class="confluence-embedded-image confluence-external-resource" >src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png" >data-image-src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"></span></p></td><td > colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" >href="sampling.html">Sampling</a></p></td><td colspan="1" rowspan="1" >class="confluenceTd"><p>How can I sample one message out of many in a given >period to avoid downstream route does not get >overloaded?</p></td></tr><tr><td colspan="1" rowspan="1" >class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img >class="confluence-embedded-image confluence-external-resource" >src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png" >data-image-src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"></span></p></td><td > col span="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="delayer.html">Delayer</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can I delay the sending of a message?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png" data-image-src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="load-balancer.html">Load Balancer</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can I balance load across a number of endpoints?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> </td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="hystrix-eip.html">Hystrix</a></p></td><td colspan="1" rowsp an="1" class="confluenceTd"><p>To use Hystrix Circuit Breaker when calling an external service.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> </td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="servicecall-eip.html">Service Call</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To call a remote service in a distributed system where the service is looked up from a service registry of some sorts.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png" data-image-src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="multicast.html">Multicast</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>H ow can I route a message to a number of endpoints at the same time?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png" data-image-src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="loop.html">Loop</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can I repeat processing a message in a loop?</p></td></tr></tbody></table> </div><h3 id="BookEnterpriseIntegrationPatterns-MessageTransformation">Message Transformation</h3><div class="table-wrap"> - <table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/DataEnricherIcon.gif" data-image-src="http://www.eaipatterns.com/img/DataEnricherIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="content-enricher.html">Content Enricher</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How do we communicate with another system if the message originator does not have all the required data items available?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/ContentFilterIcon.gif" data-image-src="http://www.eaipatterns.com/img/ContentFilterIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="content-filter.html">Content Filter</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How do you simplify dealing with a large message, when you are interested only in a few data items?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/StoreInLibraryIcon.gif" data-image-src="http://www.eaipatterns.com/img/StoreInLibraryIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="claim-check.html">Claim Check</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can we reduce the data volume of message sent across the system without sacrificing information content?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="con fluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/NormalizerIcon.gif" data-image-src="http://www.eaipatterns.com/img/NormalizerIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="normalizer.html">Normalizer</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How do you process messages that are semantically equivalent, but arrive in a different format?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png" data-image-src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="sort.html">Sort</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can I sort the bod y of a message?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> </td><td colspan="1" rowspan="1" class="confluenceTd">Script</td><td colspan="1" rowspan="1" class="confluenceTd">How do I execute a script which may not change the message?</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png" data-image-src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="validate.html">Validate</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can I validate a message?</p></td></tr></tbody></table> + <table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/DataEnricherIcon.gif" data-image-src="http://www.eaipatterns.com/img/DataEnricherIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="content-enricher.html">Content Enricher</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How do we communicate with another system if the message originator does not have all the required data items available?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/ContentFilterIcon.gif" data-image-src="http://www.eaipatterns.com/img/ContentFilterIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="content-filter.html">Content Filter</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How do you simplify dealing with a large message, when you are interested only in a few data items?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/StoreInLibraryIcon.gif" data-image-src="http://www.eaipatterns.com/img/StoreInLibraryIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="claim-check.html">Claim Check</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can we reduce the data volume of message sent across the system without sacrificing information content?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="con fluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/NormalizerIcon.gif" data-image-src="http://www.eaipatterns.com/img/NormalizerIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="normalizer.html">Normalizer</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How do you process messages that are semantically equivalent, but arrive in a different format?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png" data-image-src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="sort.html">Sort</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can I sort the bod y of a message?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> </td><td colspan="1" rowspan="1" class="confluenceTd"><p>Script</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How do I execute a script which may not change the message?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png" data-image-src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="validate.html">Validate</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can I validate a message?</p></td></tr></tbody></table> </div><h3 id="BookEnterpriseIntegrationPatterns-MessagingEndpoints">Messaging Endpoints</h3><div class="table-wrap"> <table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png" data-image-src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="messaging-mapper.html">Messaging Mapper</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How do you move data between domain objects and the messaging infrastructure while keeping the two independent of each other?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/EventDrivenConsumerIcon.gif" data-image-src="http://www.eaipatterns.com/img/Even tDrivenConsumerIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="event-driven-consumer.html">Event Driven Consumer</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can an application automatically consume messages as they become available?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/PollingConsumerIcon.gif" data-image-src="http://www.eaipatterns.com/img/PollingConsumerIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="polling-consumer.html">Polling Consumer</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can an application consume a message when the application is ready?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-fil e-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/CompetingConsumersIcon.gif" data-image-src="http://www.eaipatterns.com/img/CompetingConsumersIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="competing-consumers.html">Competing Consumers</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can a messaging client process multiple messages concurrently?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/MessageDispatcherIcon.gif" data-image-src="http://www.eaipatterns.com/img/MessageDispatcherIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="message-dispatcher.html">Message Dispatcher</a></p></td><td colspan="1" rowspan="1" class="confluence Td"><p>How can multiple consumers on a single channel coordinate their message processing?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/MessageSelectorIcon.gif" data-image-src="http://www.eaipatterns.com/img/MessageSelectorIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="selective-consumer.html">Selective Consumer</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can a message consumer select which messages it wishes to receive?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/DurableSubscriptionIcon.gif" data-image-src="http://www.eaipatterns.com/img/DurableSubscriptionIcon. gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="durable-subscriber.html">Durable Subscriber</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can a subscriber avoid missing messages while it's not listening for them?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png" data-image-src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="idempotent-consumer.html">Idempotent Consumer</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can a message receiver deal with duplicate messages?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file- wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/TransactionalClientIcon.gif" data-image-src="http://www.eaipatterns.com/img/TransactionalClientIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="transactional-client.html">Transactional Client</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can a client control its transactions with the messaging system?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/MessagingGatewayIcon.gif" data-image-src="http://www.eaipatterns.com/img/MessagingGatewayIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="messaging-gateway.html">Messaging Gateway</a></p></td><td colspan="1" rowspan="1" class="confluence Td"><p>How do you encapsulate access to the messaging system from the rest of the application?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.eaipatterns.com/img/MessagingAdapterIcon.gif" data-image-src="http://www.eaipatterns.com/img/MessagingAdapterIcon.gif"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="service-activator.html">Service Activator</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How can an application design a service to be invoked both via various messaging technologies and via non-messaging techniques?</p></td></tr></tbody></table> </div><h3 id="BookEnterpriseIntegrationPatterns-SystemManagement">System Management</h3><div class="table-wrap"> Modified: websites/production/camel/content/book-in-one-page.html ============================================================================== --- websites/production/camel/content/book-in-one-page.html (original) +++ websites/production/camel/content/book-in-one-page.html Sun Oct 9 20:23:38 2016 @@ -4040,11 +4040,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.rbtoc1475767129863 {padding: 0px;} -div.rbtoc1475767129863 ul {list-style: disc;margin-left: 0px;} -div.rbtoc1475767129863 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1476044334454 {padding: 0px;} +div.rbtoc1476044334454 ul {list-style: disc;margin-left: 0px;} +div.rbtoc1476044334454 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style></p><div class="toc-macro rbtoc1475767129863"> +/*]]>*/</style></p><div class="toc-macro rbtoc1476044334454"> <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> @@ -6159,11 +6159,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.rbtoc1475767131065 {padding: 0px;} -div.rbtoc1475767131065 ul {list-style: disc;margin-left: 0px;} -div.rbtoc1475767131065 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1476044334901 {padding: 0px;} +div.rbtoc1476044334901 ul {list-style: disc;margin-left: 0px;} +div.rbtoc1476044334901 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style><div class="toc-macro rbtoc1475767131065"> +/*]]>*/</style><div class="toc-macro rbtoc1476044334901"> <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> @@ -14385,8 +14385,8 @@ cometds://localhost:8443/service/mychann <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">/**/ div.rbtoc1475767156464 {padding: 0px;} div.rbtoc1475767156464 ul {list-style: disc;margin-left: 0px;} div.rbtoc1475767156464 li {margin-left: 0px;padding-left: 0px;} /**/</style> - </p><div class="toc-macro rbtoc1475767156464"> +</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">/**/ div.rbtoc1476044338412 {padding: 0px;} div.rbtoc1476044338412 ul {list-style: disc;margin-left: 0px;} div.rbtoc1476044338412 li {margin-left: 0px;padding-left: 0px;} /**/</style> + </p><div class="toc-macro rbtoc1476044338412"> <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> @@ -14632,7 +14632,7 @@ cometds://localhost:8443/service/mychann </div><p>You can also configure the CXF REST endpoint through the spring configuration. Since there are lots of difference between the CXF REST client and CXF REST Server, we provide different configuration for them.<br clear="none"> Please check out the <a shape="rect" class="external-link" href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-cxf/src/main/resources/schema/cxfEndpoint.xsd">schema file</a> and <a shape="rect" class="external-link" href="https://cwiki.apache.org/CXF20DOC/JAX-RS">CXF JAX-RS documentation</a> for more information.</p><h3 id="BookInOnePage-HowtoconfiguretheRESTendpointinCamel">How to configure the REST endpoint in Camel</h3><p>In <a shape="rect" class="external-link" href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-cxf/src/main/resources/schema/cxfEndpoint.xsd">camel-cxf schema file</a>, there are two elements for the REST endpoint definition. <strong>cxf:rsServer</strong> for REST consumer, <strong>cxf:rsClient</strong> f or REST producer.<br clear="none"> You can find a Camel REST service route configuration example here. </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"> &lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:cxf=&quot;http://camel.apache.org/schema/cxf&quot; xmlns:jaxrs=&quot;http://cxf.apache.org/jaxrs&quot; xsi:schemaLocation=&quot; http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://camel.apache.org/schema/cxf http://camel.apache.org/schema/cxf/camel-cxf.xsd http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd &quot;&gt; &lt;bean class=&quot;org.springframework.beans.factory.config.PropertyPlaceholderConfigurer&quot;/&gt; &lt;!-- Defined the real JAXRS back end service --&gt; &lt;jaxrs:server id=&quot;restService&am p;quot; address=&quot;http://localhost:${CXFTestSupport.port2}/CxfRsRouterTest/rest&quot; staticSubresourceResolution=&quot;true&quot;&gt; &lt;jaxrs:serviceBeans&gt; &lt;ref bean=&quot;customerService&quot;/&gt; &lt;/jaxrs:serviceBeans&gt; &lt;/jaxrs:server&gt; &lt;bean id=&quot;jsonProvider&quot; class=&quot;org.apache.cxf.jaxrs.provider.json.JSONProvider&quot;/&gt; &lt;bean id=&quot;customerService&quot; class=&quot;org.apache.camel.component.cxf.jaxrs.testbean.CustomerService&quot; /&gt; &lt;!-- Defined the server endpoint to create the cxf-rs consumer --&gt; &lt;cxf:rsServer id=&quot;rsServer&quot; address=&quot;http://localhost:${CXFTestSupport.port1}/CxfRsRouterTest/route&quot; serviceClass=&quot;org.apache.camel.component.cxf.jaxrs.testbean.CustomerService&quot; loggingFeatureEnabled=&quot;true&quot; loggingSizeLimit=&quot ;20&quot; skipFaultLogging=&quot;true&quot;&gt; &lt;cxf:providers&gt; &lt;ref bean=&quot;jsonProvider&quot;/&gt; &lt;/cxf:providers&gt; &lt;/cxf:rsServer&gt; &lt;!-- Defined the client endpoint to create the cxf-rs consumer --&gt; &lt;cxf:rsClient id=&quot;rsClient&quot; address=&quot;http://localhost:${CXFTestSupport.port2}/CxfRsRouterTest/rest&quot; serviceClass=&quot;org.apache.camel.component.cxf.jaxrs.testbean.CustomerService&quot; loggingFeatureEnabled=&quot;true&quot; skipFaultLogging=&quot;true&quot;&gt; &lt;cxf:providers&gt; &lt;ref bean=&quot;jsonProvider&quot;/&gt; &lt;/cxf:providers&gt; &lt;/cxf:rsClient&gt; &lt;!-- The camel route context --&gt; &lt;camelContext id=&quot;camel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt; &lt;route&gt; &lt;!-- Just need to i gnoreDeleteMethodMessageBody --&gt; &lt;from uri=&quot;cxfrs://bean://rsServer&quot;/&gt; &lt;to uri=&quot;log:body?level=INFO&quot;/&gt; &lt;to uri=&quot;cxfrs://bean://rsClient?ignoreDeleteMethodMessageBody=true&quot;/&gt; &lt;/route&gt; &lt;/camelContext&gt; &lt;/beans&gt; </script> + <script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"> &lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:cxf=&quot;http://camel.apache.org/schema/cxf&quot; xmlns:jaxrs=&quot;http://cxf.apache.org/jaxrs&quot; xsi:schemaLocation=&quot; http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://camel.apache.org/schema/cxf http://camel.apache.org/schema/cxf/camel-cxf.xsd http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd &quot;&gt; &lt;bean class=&quot;org.springframework.beans.factory.config.PropertyPlaceholderConfigurer&quot;/&gt; &lt;!-- Defined the real JAXRS back end service --&gt; &lt;jaxrs:server id=&quot;restService&am p;quot; address=&quot;http://localhost:${CXFTestSupport.port2}/CxfRsRouterTest/rest&quot; staticSubresourceResolution=&quot;true&quot;&gt; &lt;jaxrs:serviceBeans&gt; &lt;ref bean=&quot;customerService&quot;/&gt; &lt;/jaxrs:serviceBeans&gt; &lt;/jaxrs:server&gt; &lt;bean id=&quot;jsonProvider&quot; class=&quot;org.apache.cxf.jaxrs.provider.json.JSONProvider&quot;/&gt; &lt;bean id=&quot;customerService&quot; class=&quot;org.apache.camel.component.cxf.jaxrs.testbean.CustomerService&quot; /&gt; &lt;!-- Defined the server endpoint to create the cxf-rs consumer --&gt; &lt;cxf:rsServer id=&quot;rsServer&quot; address=&quot;http://localhost:${CXFTestSupport.port1}/CxfRsRouterTest/route&quot; serviceClass=&quot;org.apache.camel.component.cxf.jaxrs.testbean.CustomerService&quot; loggingFeatureEnabled=&quot;true&quot; loggingSizeLimit=&quot ;20&quot; skipFaultLogging=&quot;true&quot;&gt; &lt;cxf:providers&gt; &lt;ref bean=&quot;jsonProvider&quot;/&gt; &lt;/cxf:providers&gt; &lt;/cxf:rsServer&gt; &lt;!-- Defined the client endpoint to create the cxf-rs producer --&gt; &lt;cxf:rsClient id=&quot;rsClient&quot; address=&quot;http://localhost:${CXFTestSupport.port2}/CxfRsRouterTest/rest&quot; serviceClass=&quot;org.apache.camel.component.cxf.jaxrs.testbean.CustomerService&quot; loggingFeatureEnabled=&quot;true&quot; skipFaultLogging=&quot;true&quot;&gt; &lt;cxf:providers&gt; &lt;ref bean=&quot;jsonProvider&quot;/&gt; &lt;/cxf:providers&gt; &lt;/cxf:rsClient&gt; &lt;!-- The camel route context --&gt; &lt;camelContext id=&quot;camel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt; &lt;route&gt; &lt;!-- Just need to i gnoreDeleteMethodMessageBody --&gt; &lt;from uri=&quot;cxfrs://bean://rsServer&quot;/&gt; &lt;to uri=&quot;log:body?level=INFO&quot;/&gt; &lt;to uri=&quot;cxfrs://bean://rsClient?ignoreDeleteMethodMessageBody=true&quot;/&gt; &lt;/route&gt; &lt;/camelContext&gt; &lt;/beans&gt; </script> </div> </div><h3 id="BookInOnePage-HowtooverridetheCXFproduceraddressfrommessageheader.1">How to override the CXF producer address from message header</h3><p>The <code>camel-cxfrs</code> producer supports to override the services address by setting the message with the key of "<span>CamelDestinationOverrideUrl".</span></p><div class="code panel pdl" style="border-width: 1px;"> <div class="codeContent panelContent pdl">