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 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-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">