Author: buildbot
Date: Sat Feb 9 13:21:59 2019
New Revision: 1040189
Log:
Production update by buildbot for camel
Added:
websites/production/camel/content/2019/02/
websites/production/camel/content/2019/02/09/
websites/production/camel/content/2019/02/09/apache-camel-2215-released.html
Modified:
websites/production/camel/content/book-in-one-page.html
websites/production/camel/content/book-pattern-appendix.html
websites/production/camel/content/message-router.html
websites/production/camel/content/request-reply.html
websites/production/camel/content/running-camel-standalone-and-have-it-keep-running.html
websites/production/camel/content/spring-security-example.html
Added:
websites/production/camel/content/2019/02/09/apache-camel-2215-released.html
==============================================================================
---
websites/production/camel/content/2019/02/09/apache-camel-2215-released.html
(added)
+++
websites/production/camel/content/2019/02/09/apache-camel-2215-released.html
Sat Feb 9 13:21:59 2019
@@ -0,0 +1,150 @@
+<!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.21.5 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> > 2019 > 02 > 09 > <a
href="apache-camel-2215-released.html">Apache Camel 2.21.5 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" class="external-link" href="https://gitter.im/apache/apache-camel"
rel="nofollow">Gitter</a> | <a shape="rect"
href="support.html">Support</a></p></div>
+ <!-- Quicklinks -->
+ </div>
+
+ <br> Since we're on a major migration process of this website, some
component documents here are out of sync right now. In the meantime you may
want to look at the asciidoc in the repository:
+ https://github.com/apache/camel/blob/master/README.md
+ https://github.com/apache/camel/blob/master/components/readme.adoc
</br>
+ <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 patch release Camel 2.21.5. This release
contains 21 fixes and improvements. An overview of the changes is
available <a shape="rect" class="external-link"
href="http://camel.apache.org/camel-2215-release.html">here</a>. This is the
last planned patch release for the 2.21.x branch.</p><p>The artifacts are
published and ready for you to <a shape="rect" class="external-link"
href="http://camel.apache.org/camel-2215-release.html">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=12344816&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="mailing-lists.html">Mailing Lists</a></li><li><a shape="rect"
href="irc-room.html">Gitter / IRC Chat</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 s
hape="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></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><p> </p><p><a
shape="rect" class="external-link"
href="http://www.apache.org/events/current-event.html"><span class="confl
uence-embedded-file-wrapper"><img class="confluence-embedded-image
confluence-external-resource"
src="http://www.apache.org/events/current-event-125x125.png"
data-image-src="http://www.apache.org/events/current-event-125x125.png"></span></a></p></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=103089748">edit
page</a>)
+ (<a
href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=103089748&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
[email protected] -->
+<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-in-one-page.html
==============================================================================
--- websites/production/camel/content/book-in-one-page.html (original)
+++ websites/production/camel/content/book-in-one-page.html Sat Feb 9 13:21:59
2019
@@ -4407,11 +4407,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>
<div class="conf-macro output-block" data-hasbody="false"
data-macro-name="toc"><style type="text/css">/*<![CDATA[*/
-div.rbtoc1548713934159 {padding: 0px;}
-div.rbtoc1548713934159 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1548713934159 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1549718406600 {padding: 0px;}
+div.rbtoc1549718406600 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1549718406600 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style><div class="toc-macro rbtoc1548713934159">
+/*]]>*/</style><div class="toc-macro rbtoc1549718406600">
<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>
@@ -9236,22 +9236,7 @@ from("direct:startInOut").inOut("bean:pr
<p>The following example shows how to route a request from an input
<strong>queue:a</strong> endpoint to either <strong>queue:b</strong>,
<strong>queue:c</strong> or <strong>queue:d</strong> depending on the
evaluation of various <a shape="rect" href="predicate.html">Predicate</a>
expressions</p>
<p><strong>Using the <a shape="rect" href="fluent-builders.html">Fluent
Builders</a></strong></p>
-Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
-RouteBuilder builder = new RouteBuilder() {
- public void configure() {
- errorHandler(deadLetterChannel("mock:error"));
-
- from("direct:a")
- .choice()
- .when(header("foo").isEqualTo("bar"))
- .to("direct:b")
- .when(header("foo").isEqualTo("cheese"))
- .to("direct:c")
- .otherwise()
- .to("direct:d");
- }
-};
-</pre>
+<div class="error conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup"><span class="error">Error
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20,
Size: 20</span> </div>
<p><strong>Using the <a shape="rect" href="spring-xml-extensions.html">Spring
XML Extensions</a></strong></p>
Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
@@ -9408,16 +9393,7 @@ from("activemq:My.Queue").
<p>Another option is to explicitly list the publish-subscribe relationship in
your routing logic; this keeps the producer and consumer decoupled but lets you
control the fine grained routing configuration using the <a shape="rect"
href="dsl.html">DSL</a> or <a shape="rect" href="xml-configuration.html">Xml
Configuration</a>.</p>
<p><strong>Using the <a shape="rect" href="fluent-builders.html">Fluent
Builders</a></strong></p>
-Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
-RouteBuilder builder = new RouteBuilder() {
- public void configure() {
- errorHandler(deadLetterChannel("mock:error"));
-
- from("direct:a")
- .multicast().to("direct:b", "direct:c", "direct:d");
- }
-};
-</pre>
+<div class="error conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup"><span class="error">Error
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20,
Size: 20</span> </div>
<p><strong>Using the <a shape="rect" href="spring-xml-extensions.html">Spring
XML Extensions</a></strong></p>
Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
@@ -9556,29 +9532,7 @@ jms:MyQueue?exchangePattern=InOut
<p>You can specify the exchange pattern in DSL rule or Spring
configuration.</p>
-Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
-// Send to an endpoint using InOut
-from("direct:testInOut").inOut("mock:result");
-
-// Send to an endpoint using InOut
-from("direct:testInOnly").inOnly("mock:result");
-
-// Set the exchange pattern to InOut, then send it from direct:inOnly to
mock:result endpoint
-from("direct:testSetToInOnlyThenTo")
- .setExchangePattern(ExchangePattern.InOnly)
- .to("mock:result");
-from("direct:testSetToInOutThenTo")
- .setExchangePattern(ExchangePattern.InOut)
- .to("mock:result");
-
-// Or we can pass the pattern as a parameter to the to() method
-from("direct:testToWithInOnlyParam").to(ExchangePattern.InOnly, "mock:result");
-from("direct:testToWithInOutParam").to(ExchangePattern.InOut, "mock:result");
-
-// Set the exchange pattern to InOut, then send it on
-from("direct:testSetExchangePatternInOnly")
- .setExchangePattern(ExchangePattern.InOnly).to("mock:result");
-</pre>
+<div class="error conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup"><span class="error">Error
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20,
Size: 20</span> </div>
Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
<camelContext xmlns="http://camel.apache.org/schema/spring">
@@ -10031,23 +9985,7 @@ Whereas using the <a shape="rect" href="
<p>In this example we want to check that a multipart order can be filled. Each
part of the order requires a check at a different inventory.</p>
-Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
-// split up the order so individual OrderItems can be validated by the
appropriate bean
-from("direct:start")
- .split().body()
- .choice()
- .when().method("orderItemHelper", "isWidget")
- .to("bean:widgetInventory")
- .otherwise()
- .to("bean:gadgetInventory")
- .end()
- .to("seda:aggregate");
-
-// collect and re-assemble the validated OrderItems into an order again
-from("seda:aggregate")
- .aggregate(new
MyOrderAggregationStrategy()).header("orderId").completionTimeout(100).completionTimeoutCheckerInterval(10)
- .to("mock:result");
-</pre>
+<div class="error conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup"><span class="error">Error
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20,
Size: 20</span> </div>
<p><strong>Using the <a shape="rect" href="spring-xml-extensions.html">Spring
XML Extensions</a></strong></p>
@@ -10093,88 +10031,16 @@ from("seda:aggregate")
<h3 id="BookInOnePage-ExampleusingonlySplitter">Example using only
Splitter</h3>
<p>In this example we want to split an incoming order using the <a
shape="rect" href="splitter.html">Splitter</a> eip, transform each order line,
and then combine the order lines into a new order message.</p>
-Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
-// this routes starts from the direct:start endpoint
-// the body is then splitted based on @ separator
-// the splitter in Camel supports InOut as well and for that we need
-// to be able to aggregate what response we need to send back, so we provide
our
-// own strategy with the class MyOrderStrategy.
-from("direct:start")
- .split(body().tokenize("@"), new MyOrderStrategy())
- // each splitted message is then send to this bean where we can
process it
- .to("bean:MyOrderService?method=handleOrder")
- // this is important to end the splitter route as we do not want to do
more routing
- // on each splitted message
- .end()
- // after we have splitted and handled each message we want to send a
single combined
- // response back to the original caller, so we let this bean build it for
us
- // this bean will receive the result of the aggregate strategy:
MyOrderStrategy
- .to("bean:MyOrderService?method=buildCombinedResponse")
-</pre>
+<div class="error conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup"><span class="error">Error
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20,
Size: 20</span> </div>
<div class="confluence-information-macro confluence-information-macro-tip
conf-macro output-block" data-hasbody="true" data-macro-name="tip"><p
class="title">Using XML</p><span class="aui-icon aui-icon-small
aui-iconfont-approve confluence-information-macro-icon"> </span><div
class="confluence-information-macro-body">
<p>If you use XML, then the <split> tag offers the strategyRef attribute
to refer to your custom <code>AggregationStrategy</code></p></div></div>
<p>The bean with the methods to transform the order line and process the order
as well:</p>
-Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
-public static class MyOrderService {
-
- private static int counter;
-
- /**
- * We just handle the order by returning a id line for the order
- */
- public String handleOrder(String line) {
- LOG.debug("HandleOrder: " + line);
- return "(id=" + ++counter + ",item=" + line + ")";
- }
-
- /**
- * We use the same bean for building the combined response to send
- * back to the original caller
- */
- public String buildCombinedResponse(String line) {
- LOG.debug("BuildCombinedResponse: " + line);
- return "Response[" + line + "]";
- }
-}
-</pre>
+<div class="error conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup"><span class="error">Error
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20,
Size: 20</span> </div>
<p>And the <code>AggregationStrategy</code> we use with the <a shape="rect"
href="splitter.html">Splitter</a> eip to combine the orders back again (eg
fork/join):</p>
-Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
-/**
- * This is our own order aggregation strategy where we can control
- * how each splitted message should be combined. As we do not want to
- * loos any message we copy from the new to the old to preserve the
- * order lines as long we process them
- */
-public static class MyOrderStrategy implements AggregationStrategy {
-
- public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
- // put order together in old exchange by adding the order from new
exchange
-
- if (oldExchange == null) {
- // the first time we aggregate we only have the new exchange,
- // so we just return it
- return newExchange;
- }
-
- String orders = oldExchange.getIn().getBody(String.class);
- String newLine = newExchange.getIn().getBody(String.class);
-
- LOG.debug("Aggregate old orders: " + orders);
- LOG.debug("Aggregate new order: " + newLine);
-
- // put orders together separating by semi colon
- orders = orders + ";" + newLine;
- // put combined order back on old to preserve it
- oldExchange.getIn().setBody(orders);
-
- // return old as this is the one that has all the orders gathered
until now
- return oldExchange;
- }
-}
-</pre>
+<div class="error conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup"><span class="error">Error
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20,
Size: 20</span> </div>
<div class="conf-macro output-block" data-hasbody="false"
data-macro-name="include"><h4 id="BookInOnePage-UsingThisPattern.12">Using This
Pattern</h4>
@@ -10720,19 +10586,10 @@ from("direct:resource")
<p><strong>Using the <a shape="rect" href="fluent-builders.html">Fluent
Builders</a></strong></p>
<p>Here is a simple example using the <a shape="rect" href="dsl.html">DSL</a>
directly</p>
-Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
-from("direct:start").setBody(body().append(" World!")).to("mock:result");
-</pre>
+<div class="error conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup"><span class="error">Error
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20,
Size: 20</span> </div>
<p>In this example we add our own <a shape="rect"
href="processor.html">Processor</a></p>
-Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
-from("direct:start").process(new Processor() {
- public void process(Exchange exchange) {
- Message in = exchange.getIn();
- in.setBody(in.getBody(String.class) + " World!");
- }
-}).to("mock:result");
-</pre>
+<div class="error conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup"><span class="error">Error
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20,
Size: 20</span> </div>
<p>For further examples of this pattern in use you could look at one of the
JUnit tests</p>
@@ -11083,17 +10940,7 @@ from("jms:MyQueue?concurrentConsumers=5"
<p>The other approach is to use a <a shape="rect"
href="message-filter.html">Message Filter</a> which is applied; then if the
filter matches the message your consumer is invoked as shown in the following
example</p>
<p><strong>Using the <a shape="rect" href="fluent-builders.html">Fluent
Builders</a></strong></p>
-Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
-RouteBuilder builder = new RouteBuilder() {
- public void configure() {
- errorHandler(deadLetterChannel("mock:error"));
-
- from("direct:a")
- .filter(header("foo").isEqualTo("bar"))
- .process(myProcessor);
- }
-};
-</pre>
+<div class="error conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup"><span class="error">Error
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20,
Size: 20</span> </div>
<p><strong>Using the <a shape="rect" href="spring-xml-extensions.html">Spring
XML Extensions</a></strong></p>
Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
@@ -11306,11 +11153,7 @@ from("direct:invokeMyService").to("bean:
<p>In this example we essentially have a route like
<code>from("direct:start").to("mock:result")</code> with a conditional detour
to the <code>mock:detour</code> endpoint in the middle of the route..</p>
-Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
-from("direct:start").choice()
- .when().method("controlBean", "isDetour").to("mock:detour").end()
- .to("mock:result");
-</pre>
+<div class="error conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup"><span class="error">Error
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20,
Size: 20</span> </div>
<p><strong>Using the <a shape="rect" href="spring-xml-extensions.html">Spring
XML Extensions</a></strong></p>
@@ -15033,35 +14876,14 @@ but the following listed types were not
<h3 id="BookInOnePage-MessageHeaders.11">Message Headers</h3><p>The following
message headers can be used to affect the behavior of the component</p><div
class="confluenceTableSmall conf-macro output-block" data-hasbody="true"
data-macro-name="div"><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Header</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p><code>CamelLanguageScript</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>The script to execute provided
in the header. Takes precedence over script configured on the
endpoint.</p></td></tr></tbody></table></div></div>
-<h3 id="BookInOnePage-Examples.22">Examples</h3><p>For example you can use the
<a shape="rect" href="simple.html">Simple</a> language to <a shape="rect"
href="message-translator.html">Message Translator</a> a message:Error rendering
macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'</p><pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
-String script = URLEncoder.encode("Hello ${body}", "UTF-8");
-from("direct:start").to("language:simple:" + script).to("mock:result");
-</pre>In case you want to convert the message body type you can do this as
well:Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
-String script = URLEncoder.encode("${mandatoryBodyAs(String)}", "UTF-8");
-from("direct:start").to("language:simple:" + script).to("mock:result");
-</pre>You can also use the <a shape="rect" href="groovy.html">Groovy</a>
language, such as this example where the input message will by multiplied with
2:Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
+<h3 id="BookInOnePage-Examples.22">Examples</h3><p>For example you can use the
<a shape="rect" href="simple.html">Simple</a> language to <a shape="rect"
href="message-translator.html">Message Translator</a> a message:</p><div
class="error conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup"><span class="error">Error
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20,
Size: 20</span> </div>In case you want to convert the message body type you can
do this as well:<div class="error conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup"><span class="error">Error
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20,
Size: 20</span> </div>You can also use the <a shape="rect"
href="groovy.html">Groovy</a> language, such as this example where the input
message will by multiplied with 2:Error rendering macro 'code': Invalid value
specified for parameter 'java.lang.NullP
ointerException'<pre class="conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup">
String script = URLEncoder.encode("request.body * 2", "UTF-8");
from("direct:start").to("language:groovy:" + script).to("mock:result");
</pre>You can also provide the script as a header as shown below. Here we use
<a shape="rect" href="xpath.html">XPath</a> language to extract the text from
the <code><foo></code> tag.<p> </p><div class="code panel pdl conf-macro
output-block" data-hasbody="true" data-macro-name="code" style="border-width:
1px;"><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java;
gutter: false; theme: Default" data-theme="Default">Object out =
producer.requestBodyAndHeader("language:xpath", "<foo>Hello
World</foo>", Exchange.LANGUAGE_SCRIPT, "/foo/text()");
assertEquals("Hello World", out);
</pre>
-</div></div><h3 id="BookInOnePage-Loadingscriptsfromresources">Loading scripts
from resources</h3><p><strong>Available as of Camel 2.9</strong></p><p>You can
specify a resource uri for a script to load in either the endpoint uri, or in
the <code>Exchange.LANGUAGE_SCRIPT</code> header.<br clear="none"> The uri must
start with one of the following schemes: file:, classpath:, or http:</p><p>For
example to load a script from the classpath:Error rendering macro 'code':
Invalid value specified for parameter 'java.lang.NullPointerException'</p><pre
class="conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup">
-from("direct:start")
- // load the script from the classpath
-
.to("language:simple:classpath:org/apache/camel/component/language/mysimplescript.txt")
- .to("mock:result");
-</pre>By default the script is loaded once and cached. However you can disable
the <code>contentCache</code> option and have the script loaded on each
evaluation.<br clear="none"> For example if the file myscript.txt is changed on
disk, then the updated script is used:Error rendering macro 'code': Invalid
value specified for parameter 'java.lang.NullPointerException'<pre
class="conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup">
-from("direct:start")
- // the script will be loaded on each message, as we disabled cache
- .to("language:simple:file:target/script/myscript.txt?contentCache=false")
- .to("mock:result");
-</pre>From <strong>Camel 2.11</strong> onwards you can refer to the resource
similar to the other <a shape="rect" href="language.html">Language</a>s in
Camel by prefixing with <code>"resource:"</code> as shown below:Error rendering
macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
-from("direct:start")
- // load the script from the classpath
-
.to("language:simple:resource:classpath:org/apache/camel/component/language/mysimplescript.txt")
- .to("mock:result");
-</pre><div class="conf-macro output-block" data-hasbody="false"
data-macro-name="include"><h3 id="BookInOnePage-SeeAlso.39">See Also</h3>
+</div></div><h3 id="BookInOnePage-Loadingscriptsfromresources">Loading scripts
from resources</h3><p><strong>Available as of Camel 2.9</strong></p><p>You can
specify a resource uri for a script to load in either the endpoint uri, or in
the <code>Exchange.LANGUAGE_SCRIPT</code> header.<br clear="none"> The uri must
start with one of the following schemes: file:, classpath:, or http:</p><p>For
example to load a script from the classpath:</p><div class="error conf-macro
output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup"><span class="error">Error
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20,
Size: 20</span> </div>By default the script is loaded once and cached. However
you can disable the <code>contentCache</code> option and have the script loaded
on each evaluation.<br clear="none"> For example if the file myscript.txt is
changed on disk, then the updated script is used:<div class="error conf-macro
output-inline" data-hasbody
="true" data-macro-name="unmigrated-inline-wiki-markup"><span
class="error">Error formatting macro: snippet:
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>From
<strong>Camel 2.11</strong> onwards you can refer to the resource similar to
the other <a shape="rect" href="language.html">Language</a>s in Camel by
prefixing with <code>"resource:"</code> as shown below:<div class="error
conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup"><span class="error">Error
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20,
Size: 20</span> </div><div class="conf-macro output-block" data-hasbody="false"
data-macro-name="include"><h3 id="BookInOnePage-SeeAlso.39">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></div><p> </p><ul
class="alternate"><li><a shape="rect"
href="languages.html">Languages</a></li><li><a shape="rect"
href="routing-slip.html">Routing Slip</a></li><li><a shape="rect"
href="dynamic-router.html">Dynamic Router</a></li><li><a shape="rect"
href="script.html">Script</a></li></ul></div> <div class="conf-macro
output-block" data-hasbody="false" data-macro-name="include"><h2
id="BookInOnePage-LDAPComponent">LDAP Component</h2><p>The
<strong>ldap</strong> component allows you to perform searches in LDAP servers
using filters as the message payload.<br clear="none"> This component uses
standard JNDI (<code>javax.naming</code> package) to access the
server.</p><p>Maven users will need to add the following de
pendency to their <code>pom.xml</code> for this component:</p><div class="code
panel pdl conf-macro output-block" data-hasbody="true" data-macro-name="code"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java;
gutter: false; theme: Default" data-theme="Default"><dependency>
<groupId>org.apache.camel</groupId>
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 Sat Feb 9
13:21:59 2019
@@ -192,22 +192,7 @@ from("direct:startInOut").inOut("bean:pr
<p>The following example shows how to route a request from an input
<strong>queue:a</strong> endpoint to either <strong>queue:b</strong>,
<strong>queue:c</strong> or <strong>queue:d</strong> depending on the
evaluation of various <a shape="rect" href="predicate.html">Predicate</a>
expressions</p>
<p><strong>Using the <a shape="rect" href="fluent-builders.html">Fluent
Builders</a></strong></p>
-Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
-RouteBuilder builder = new RouteBuilder() {
- public void configure() {
- errorHandler(deadLetterChannel("mock:error"));
-
- from("direct:a")
- .choice()
- .when(header("foo").isEqualTo("bar"))
- .to("direct:b")
- .when(header("foo").isEqualTo("cheese"))
- .to("direct:c")
- .otherwise()
- .to("direct:d");
- }
-};
-</pre>
+<div class="error conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup"><span class="error">Error
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20,
Size: 20</span> </div>
<p><strong>Using the <a shape="rect" href="spring-xml-extensions.html">Spring
XML Extensions</a></strong></p>
Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
@@ -364,16 +349,7 @@ from("activemq:My.Queue").
<p>Another option is to explicitly list the publish-subscribe relationship in
your routing logic; this keeps the producer and consumer decoupled but lets you
control the fine grained routing configuration using the <a shape="rect"
href="dsl.html">DSL</a> or <a shape="rect" href="xml-configuration.html">Xml
Configuration</a>.</p>
<p><strong>Using the <a shape="rect" href="fluent-builders.html">Fluent
Builders</a></strong></p>
-Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
-RouteBuilder builder = new RouteBuilder() {
- public void configure() {
- errorHandler(deadLetterChannel("mock:error"));
-
- from("direct:a")
- .multicast().to("direct:b", "direct:c", "direct:d");
- }
-};
-</pre>
+<div class="error conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup"><span class="error">Error
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20,
Size: 20</span> </div>
<p><strong>Using the <a shape="rect" href="spring-xml-extensions.html">Spring
XML Extensions</a></strong></p>
Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
@@ -512,29 +488,7 @@ jms:MyQueue?exchangePattern=InOut
<p>You can specify the exchange pattern in DSL rule or Spring
configuration.</p>
-Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
-// Send to an endpoint using InOut
-from("direct:testInOut").inOut("mock:result");
-
-// Send to an endpoint using InOut
-from("direct:testInOnly").inOnly("mock:result");
-
-// Set the exchange pattern to InOut, then send it from direct:inOnly to
mock:result endpoint
-from("direct:testSetToInOnlyThenTo")
- .setExchangePattern(ExchangePattern.InOnly)
- .to("mock:result");
-from("direct:testSetToInOutThenTo")
- .setExchangePattern(ExchangePattern.InOut)
- .to("mock:result");
-
-// Or we can pass the pattern as a parameter to the to() method
-from("direct:testToWithInOnlyParam").to(ExchangePattern.InOnly, "mock:result");
-from("direct:testToWithInOutParam").to(ExchangePattern.InOut, "mock:result");
-
-// Set the exchange pattern to InOut, then send it on
-from("direct:testSetExchangePatternInOnly")
- .setExchangePattern(ExchangePattern.InOnly).to("mock:result");
-</pre>
+<div class="error conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup"><span class="error">Error
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20,
Size: 20</span> </div>
Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
<camelContext xmlns="http://camel.apache.org/schema/spring">
@@ -987,23 +941,7 @@ Whereas using the <a shape="rect" href="
<p>In this example we want to check that a multipart order can be filled. Each
part of the order requires a check at a different inventory.</p>
-Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
-// split up the order so individual OrderItems can be validated by the
appropriate bean
-from("direct:start")
- .split().body()
- .choice()
- .when().method("orderItemHelper", "isWidget")
- .to("bean:widgetInventory")
- .otherwise()
- .to("bean:gadgetInventory")
- .end()
- .to("seda:aggregate");
-
-// collect and re-assemble the validated OrderItems into an order again
-from("seda:aggregate")
- .aggregate(new
MyOrderAggregationStrategy()).header("orderId").completionTimeout(100).completionTimeoutCheckerInterval(10)
- .to("mock:result");
-</pre>
+<div class="error conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup"><span class="error">Error
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20,
Size: 20</span> </div>
<p><strong>Using the <a shape="rect" href="spring-xml-extensions.html">Spring
XML Extensions</a></strong></p>
@@ -1049,88 +987,16 @@ from("seda:aggregate")
<h3 id="BookPatternAppendix-ExampleusingonlySplitter">Example using only
Splitter</h3>
<p>In this example we want to split an incoming order using the <a
shape="rect" href="splitter.html">Splitter</a> eip, transform each order line,
and then combine the order lines into a new order message.</p>
-Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
-// this routes starts from the direct:start endpoint
-// the body is then splitted based on @ separator
-// the splitter in Camel supports InOut as well and for that we need
-// to be able to aggregate what response we need to send back, so we provide
our
-// own strategy with the class MyOrderStrategy.
-from("direct:start")
- .split(body().tokenize("@"), new MyOrderStrategy())
- // each splitted message is then send to this bean where we can
process it
- .to("bean:MyOrderService?method=handleOrder")
- // this is important to end the splitter route as we do not want to do
more routing
- // on each splitted message
- .end()
- // after we have splitted and handled each message we want to send a
single combined
- // response back to the original caller, so we let this bean build it for
us
- // this bean will receive the result of the aggregate strategy:
MyOrderStrategy
- .to("bean:MyOrderService?method=buildCombinedResponse")
-</pre>
+<div class="error conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup"><span class="error">Error
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20,
Size: 20</span> </div>
<div class="confluence-information-macro confluence-information-macro-tip
conf-macro output-block" data-hasbody="true" data-macro-name="tip"><p
class="title">Using XML</p><span class="aui-icon aui-icon-small
aui-iconfont-approve confluence-information-macro-icon"> </span><div
class="confluence-information-macro-body">
<p>If you use XML, then the <split> tag offers the strategyRef attribute
to refer to your custom <code>AggregationStrategy</code></p></div></div>
<p>The bean with the methods to transform the order line and process the order
as well:</p>
-Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
-public static class MyOrderService {
-
- private static int counter;
-
- /**
- * We just handle the order by returning a id line for the order
- */
- public String handleOrder(String line) {
- LOG.debug("HandleOrder: " + line);
- return "(id=" + ++counter + ",item=" + line + ")";
- }
-
- /**
- * We use the same bean for building the combined response to send
- * back to the original caller
- */
- public String buildCombinedResponse(String line) {
- LOG.debug("BuildCombinedResponse: " + line);
- return "Response[" + line + "]";
- }
-}
-</pre>
+<div class="error conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup"><span class="error">Error
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20,
Size: 20</span> </div>
<p>And the <code>AggregationStrategy</code> we use with the <a shape="rect"
href="splitter.html">Splitter</a> eip to combine the orders back again (eg
fork/join):</p>
-Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
-/**
- * This is our own order aggregation strategy where we can control
- * how each splitted message should be combined. As we do not want to
- * loos any message we copy from the new to the old to preserve the
- * order lines as long we process them
- */
-public static class MyOrderStrategy implements AggregationStrategy {
-
- public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
- // put order together in old exchange by adding the order from new
exchange
-
- if (oldExchange == null) {
- // the first time we aggregate we only have the new exchange,
- // so we just return it
- return newExchange;
- }
-
- String orders = oldExchange.getIn().getBody(String.class);
- String newLine = newExchange.getIn().getBody(String.class);
-
- LOG.debug("Aggregate old orders: " + orders);
- LOG.debug("Aggregate new order: " + newLine);
-
- // put orders together separating by semi colon
- orders = orders + ";" + newLine;
- // put combined order back on old to preserve it
- oldExchange.getIn().setBody(orders);
-
- // return old as this is the one that has all the orders gathered
until now
- return oldExchange;
- }
-}
-</pre>
+<div class="error conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup"><span class="error">Error
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20,
Size: 20</span> </div>
<div class="conf-macro output-block" data-hasbody="false"
data-macro-name="include"><h4
id="BookPatternAppendix-UsingThisPattern.12">Using This Pattern</h4>
@@ -1676,19 +1542,10 @@ from("direct:resource")
<p><strong>Using the <a shape="rect" href="fluent-builders.html">Fluent
Builders</a></strong></p>
<p>Here is a simple example using the <a shape="rect" href="dsl.html">DSL</a>
directly</p>
-Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
-from("direct:start").setBody(body().append(" World!")).to("mock:result");
-</pre>
+<div class="error conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup"><span class="error">Error
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20,
Size: 20</span> </div>
<p>In this example we add our own <a shape="rect"
href="processor.html">Processor</a></p>
-Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
-from("direct:start").process(new Processor() {
- public void process(Exchange exchange) {
- Message in = exchange.getIn();
- in.setBody(in.getBody(String.class) + " World!");
- }
-}).to("mock:result");
-</pre>
+<div class="error conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup"><span class="error">Error
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20,
Size: 20</span> </div>
<p>For further examples of this pattern in use you could look at one of the
JUnit tests</p>
@@ -2039,17 +1896,7 @@ from("jms:MyQueue?concurrentConsumers=5"
<p>The other approach is to use a <a shape="rect"
href="message-filter.html">Message Filter</a> which is applied; then if the
filter matches the message your consumer is invoked as shown in the following
example</p>
<p><strong>Using the <a shape="rect" href="fluent-builders.html">Fluent
Builders</a></strong></p>
-Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
-RouteBuilder builder = new RouteBuilder() {
- public void configure() {
- errorHandler(deadLetterChannel("mock:error"));
-
- from("direct:a")
- .filter(header("foo").isEqualTo("bar"))
- .process(myProcessor);
- }
-};
-</pre>
+<div class="error conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup"><span class="error">Error
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20,
Size: 20</span> </div>
<p><strong>Using the <a shape="rect" href="spring-xml-extensions.html">Spring
XML Extensions</a></strong></p>
Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
@@ -2262,11 +2109,7 @@ from("direct:invokeMyService").to("bean:
<p>In this example we essentially have a route like
<code>from("direct:start").to("mock:result")</code> with a conditional detour
to the <code>mock:detour</code> endpoint in the middle of the route..</p>
-Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
-from("direct:start").choice()
- .when().method("controlBean", "isDetour").to("mock:detour").end()
- .to("mock:result");
-</pre>
+<div class="error conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup"><span class="error">Error
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20,
Size: 20</span> </div>
<p><strong>Using the <a shape="rect" href="spring-xml-extensions.html">Spring
XML Extensions</a></strong></p>
Modified: websites/production/camel/content/message-router.html
==============================================================================
--- websites/production/camel/content/message-router.html (original)
+++ websites/production/camel/content/message-router.html Sat Feb 9 13:21:59
2019
@@ -98,22 +98,7 @@
<p>The following example shows how to route a request from an input
<strong>queue:a</strong> endpoint to either <strong>queue:b</strong>,
<strong>queue:c</strong> or <strong>queue:d</strong> depending on the
evaluation of various <a shape="rect" href="predicate.html">Predicate</a>
expressions</p>
<p><strong>Using the <a shape="rect" href="fluent-builders.html">Fluent
Builders</a></strong></p>
-Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
-RouteBuilder builder = new RouteBuilder() {
- public void configure() {
- errorHandler(deadLetterChannel("mock:error"));
-
- from("direct:a")
- .choice()
- .when(header("foo").isEqualTo("bar"))
- .to("direct:b")
- .when(header("foo").isEqualTo("cheese"))
- .to("direct:c")
- .otherwise()
- .to("direct:d");
- }
-};
-</pre>
+<div class="error conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup"><span class="error">Error
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20,
Size: 20</span> </div>
<p><strong>Using the <a shape="rect" href="spring-xml-extensions.html">Spring
XML Extensions</a></strong></p>
Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
Modified: websites/production/camel/content/request-reply.html
==============================================================================
--- websites/production/camel/content/request-reply.html (original)
+++ websites/production/camel/content/request-reply.html Sat Feb 9 13:21:59
2019
@@ -117,29 +117,7 @@ jms:MyQueue?exchangePattern=InOut
<p>You can specify the exchange pattern in DSL rule or Spring
configuration.</p>
-Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
-// Send to an endpoint using InOut
-from("direct:testInOut").inOut("mock:result");
-
-// Send to an endpoint using InOut
-from("direct:testInOnly").inOnly("mock:result");
-
-// Set the exchange pattern to InOut, then send it from direct:inOnly to
mock:result endpoint
-from("direct:testSetToInOnlyThenTo")
- .setExchangePattern(ExchangePattern.InOnly)
- .to("mock:result");
-from("direct:testSetToInOutThenTo")
- .setExchangePattern(ExchangePattern.InOut)
- .to("mock:result");
-
-// Or we can pass the pattern as a parameter to the to() method
-from("direct:testToWithInOnlyParam").to(ExchangePattern.InOnly, "mock:result");
-from("direct:testToWithInOutParam").to(ExchangePattern.InOut, "mock:result");
-
-// Set the exchange pattern to InOut, then send it on
-from("direct:testSetExchangePatternInOnly")
- .setExchangePattern(ExchangePattern.InOnly).to("mock:result");
-</pre>
+<div class="error conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup"><span class="error">Error
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20,
Size: 20</span> </div>
Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
<camelContext xmlns="http://camel.apache.org/schema/spring">
Modified:
websites/production/camel/content/running-camel-standalone-and-have-it-keep-running.html
==============================================================================
---
websites/production/camel/content/running-camel-standalone-and-have-it-keep-running.html
(original)
+++
websites/production/camel/content/running-camel-standalone-and-have-it-keep-running.html
Sat Feb 9 13:21:59 2019
@@ -102,65 +102,7 @@
<p>The following example shows how you can create your main class, named
<code>MainExample</code> and use the <code>Main</code> class from Camel.</p>
-Error rendering macro 'code': Invalid value specified for parameter
'java.lang.NullPointerException'<pre class="conf-macro output-inline"
data-hasbody="true" data-macro-name="unmigrated-inline-wiki-markup">
-public class MainExample {
-
- private Main main;
-
- public static void main(String[] args) throws Exception {
- MainExample example = new MainExample();
- example.boot();
- }
-
- public void boot() throws Exception {
- // create a Main instance
- main = new Main();
- // bind MyBean into the registry
- main.bind("foo", new MyBean());
- // add routes
- main.addRouteBuilder(new MyRouteBuilder());
- // add event listener
- main.addMainListener(new Events());
- // set the properties from a file
- main.setPropertyPlaceholderLocations("example.properties");
- // run until you terminate the JVM
- System.out.println("Starting Camel. Use ctrl + c to terminate the
JVM.\n");
- main.run();
- }
-
- private static class MyRouteBuilder extends RouteBuilder {
- @Override
- public void configure() throws Exception {
- from("timer:foo?delay={{millisecs}}")
- .process(new Processor() {
- public void process(Exchange exchange) throws Exception {
- System.out.println("Invoked timer at " + new Date());
- }
- })
- .bean("foo");
- }
- }
-
- public static class MyBean {
- public void callMe() {
- System.out.println("MyBean.callMe method has been called");
- }
- }
-
- public static class Events extends MainListenerSupport {
-
- @Override
- public void afterStart(MainSupport main) {
- System.out.println("MainExample with Camel is now started!");
- }
-
- @Override
- public void beforeStop(MainSupport main) {
- System.out.println("MainExample with Camel is now being stopped!");
- }
- }
-}
-</pre>
+<div class="error conf-macro output-inline" data-hasbody="true"
data-macro-name="unmigrated-inline-wiki-markup"><span class="error">Error
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20,
Size: 20</span> </div>
<h3
id="RunningCamelstandaloneandhaveitkeeprunning-Usingcamel-springJARexample">Using
<code>camel-spring</code> JAR example</h3>
Modified: websites/production/camel/content/spring-security-example.html
==============================================================================
--- websites/production/camel/content/spring-security-example.html (original)
+++ websites/production/camel/content/spring-security-example.html Sat Feb 9
13:21:59 2019
@@ -123,8 +123,8 @@
</spring-security:authentication-manager>
<spring-security:user-service id="userDetailsService">
- <spring-security:user name="jim" password="jimspassword"
authorities="ROLE_USER, ROLE_ADMIN"/>
- <spring-security:user name="bob" password="bobspassword"
authorities="ROLE_USER"/>
+ <spring-security:user name="jim" password="{noop}jimspassword"
authorities="ROLE_USER, ROLE_ADMIN"/>
+ <spring-security:user name="bob" password="{noop}bobspassword"
authorities="ROLE_USER"/>
</spring-security:user-service>
<bean id="accessDecisionManager"
class="org.springframework.security.access.vote.AffirmativeBased">