You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by bu...@apache.org on 2019/02/10 03:34:21 UTC

svn commit: r1040216 [1/2] - /websites/production/camel/content/

Author: buildbot
Date: Sun Feb 10 03:34:21 2019
New Revision: 1040216

Log:
Production update by buildbot for camel

Modified:
    websites/production/camel/content/activemq-camel-tomcat.html
    websites/production/camel/content/book-component-appendix.html
    websites/production/camel/content/book-in-one-page.html
    websites/production/camel/content/custom-dataformat.html
    websites/production/camel/content/how-can-i-stop-a-route-from-a-route.html
    websites/production/camel/content/how-do-i-retry-processing-a-message-from-a-certain-point-back-or-an-entire-route.html
    websites/production/camel/content/news.html
    websites/production/camel/content/predicate.html
    websites/production/camel/content/sitemap.html
    websites/production/camel/content/spark-rest.html

Modified: websites/production/camel/content/activemq-camel-tomcat.html
==============================================================================
--- websites/production/camel/content/activemq-camel-tomcat.html (original)
+++ websites/production/camel/content/activemq-camel-tomcat.html Sun Feb 10 03:34:21 2019
@@ -218,7 +218,7 @@ Error rendering macro 'code': Invalid va
 
 	<!-- create a Camel ActiveMQ component to use, using the Spring bean style -->
 	<!-- we use the vm protocol to communicate intra-jvm which is much faster than tcp -->
-	<bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent">
+	<bean id="activemq" class="org.apache.camel.component.activemq.ActiveMQComponent">
 		<!-- vm://myBroker is the vm protocol, and myBroker is the broker name -->
 		<property name="brokerURL" value="vm://myBroker?create=false&waitForStart=5000"/>
 	</bean>

Modified: websites/production/camel/content/book-component-appendix.html
==============================================================================
--- websites/production/camel/content/book-component-appendix.html (original)
+++ websites/production/camel/content/book-component-appendix.html Sun Feb 10 03:34:21 2019
@@ -5833,7 +5833,11 @@ protected RouteBuilder createRouteBuilde
     <!-- use the same version as your Camel core version -->
 </dependency>
 </pre>
-</div></div><h3 id="BookComponentAppendix-SMSlimitations">SMS limitations</h3><p>SMS is neither reliable or secure.&#160; Users who require reliable and secure delivery may want to consider using the XMPP or SIP components instead, combined with a smartphone app supporting the chosen protocol.</p><ul><li>Reliability: although the SMPP standard offers a range of feedback mechanisms to indicate errors, non-delivery and confirmation of delivery it is not uncommon for mobile networks to hide or simulate these responses.&#160; For example, some networks automatically send a delivery confirmation for every message even if the destination number is invalid or not switched on.&#160; Some networks silently drop messages if they think they are spam.&#160; Spam detection rules in the network may be very crude, sometimes more than 100 messages per day from a single sender may be considered spam.</li><li>Security: there is basic encryption for the last hop from the radio tower down to the recipi
 ent handset.&#160; SMS messages are not encrypted or authenticated in any other part of the network.&#160; Some operators allow staff in retail outlets or call centres to browse through the SMS message histories of their customers.&#160; Message sender identity can be easily forged.&#160; Regulators and even the mobile telephone industry itself has cautioned against the use of SMS in two-factor authentication schemes and other purposes where security is important.</li></ul><p>While the Camel component makes it as easy as possible to send messages to the SMS network, it can not offer an easy solution to these problems.</p><h2 id="BookComponentAppendix-Datacoding,alphabetandinternationalcharactersets">Data coding, alphabet and international character sets</h2><p>Data coding and alphabet can be specified on a per-message basis.&#160; Default values can be specified for the endpoint.&#160; It is important to understand the relationship between these options and the way the component act
 s when more than one value is set.</p><p>Data coding is an 8 bit field in the SMPP wire format.</p><p>Alphabet corresponds to bits 0-3 of the data coding field.&#160; For some types of message, where a message class is used (by setting bit 5 of the data coding field), the lower two bits of the data coding field are not interpreted as alphabet and only bits 2 and 3 impact the alphabet.</p><p>Furthermore, current version of the JSMPP library only seems to support bits 2 and 3, assuming that bits 0 and 1 are used for message class.&#160; This is why the Alphabet class in JSMPP doesn't support the value 3 (binary 0011) which indicates ISO-8859-1.</p><p>Although JSMPP provides a representation of the message class parameter, the Camel component doesn't currently provide a way to set it other than manually setting the corresponding bits in the data coding field.</p><p>When setting the data coding field in the outgoing message, the Camel component considers the following values and uses th
 e first one it can find:</p><ul><li>the data coding specified in a header</li><li>the alphabet specified in a header</li><li>the data coding specified in the endpoint configuration (URI parameter)</li></ul><p>Older versions of Camel had bugs in support for international character sets.&#160; This feature only worked when a single encoding was used for all messages and was troublesome when users wanted to change it on a per-message basis.&#160; Users who require this to work should ensure their version of Camel includes the fix for&#160;</p><div class="aui-message aui-message-error"><p class="title"><strong>Error rendering macro 'jira'</strong></p><p>Unable to locate Jira server for this macro. It may be due to Application Link configuration.</p></div>.<p> </p><p>In addition to trying to send the data coding value to the SMSC, the Camel component also tries to analyze the message body, convert it to a Java String (Unicode) and convert that to a byte array in the corresponding alphabe
 t&#160; When deciding which alphabet to use in the byte array, the Camel SMPP component does not consider the data coding value (header or configuration), it only considers the specified alphabet (from either the header or endpoint parameter).</p><p>If some characters in the String can't be represented in the chosen alphabet, they may be replaced by the question mark ( ? ) symbol.&#160; Users of the API may want to consider checking if their message body can be converted to ISO-8859-1 before passing it to the component and if not, setting the alphabet header to request UCS-2 encoding.&#160; If the alphabet and data coding options are not specified at all then the component may try to detect the required encoding and set the data coding for you.</p><p>The list of alphabet codes are specified in the SMPP specification v3.4, section 5.2.19.&#160; One notable limitation of the SMPP specification is that there is no alphabet code for explicitly requesting use of the GSM 3.38 (7 bit) char
 acter set.&#160; Choosing the value 0 for the alphabet selects the SMSC <em>default</em> alphabet, this usually means GSM 3.38 but it is not guaranteed.&#160; The SMPP gateway Nexmo <a shape="rect" class="external-link" href="https://help.nexmo.com/hc/en-us/articles/204015813-How-to-change-the-character-encoding-in-SMPP-" rel="nofollow">actually allows the default to be mapped to any other character set with a control panel option</a>. It is suggested that users check with their SMSC operator to confirm exactly which character set is being used as the default.</p><h3 id="BookComponentAppendix-Messagesplittingandthrottling">Message splitting and throttling</h3><p>After transforming a message body from a String to a byte array, the Camel component is also responsible for splitting the message into parts (within the 140 byte SMS size limit) before passing it to JSMPP.&#160; This is completed automatically.</p><p>If the GSM 3.38 alphabet is used, the component will pack up to 160 charac
 ters into the 140 byte message body.&#160; If an 8 bit character set is used (e.g. ISO-8859-1 for western Europe) then 140 characters will be allowed within the 140 byte message body.&#160; If 16 bit UCS-2 encoding is used then just 70 characters fit into each 140 byte message.</p><p>Some SMSC providers implement throttling rules.&#160; Each part of a message that has been split may be counted separately by the provider's throttling mechanism.&#160; The Camel Throttler component can be useful for throttling messages in the SMPP route before handing them to the SMSC.</p><h3 id="BookComponentAppendix-URIformat.58">URI format</h3><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">
+</div></div><h3 id="BookComponentAppendix-SMSlimitations">SMS limitations</h3><p>SMS is neither reliable or secure.&#160; Users who require reliable and secure delivery may want to consider using the XMPP or SIP components instead, combined with a smartphone app supporting the chosen protocol.</p><ul><li>Reliability: although the SMPP standard offers a range of feedback mechanisms to indicate errors, non-delivery and confirmation of delivery it is not uncommon for mobile networks to hide or simulate these responses.&#160; For example, some networks automatically send a delivery confirmation for every message even if the destination number is invalid or not switched on.&#160; Some networks silently drop messages if they think they are spam.&#160; Spam detection rules in the network may be very crude, sometimes more than 100 messages per day from a single sender may be considered spam.</li><li>Security: there is basic encryption for the last hop from the radio tower down to the recipi
 ent handset.&#160; SMS messages are not encrypted or authenticated in any other part of the network.&#160; Some operators allow staff in retail outlets or call centres to browse through the SMS message histories of their customers.&#160; Message sender identity can be easily forged.&#160; Regulators and even the mobile telephone industry itself has cautioned against the use of SMS in two-factor authentication schemes and other purposes where security is important.</li></ul><p>While the Camel component makes it as easy as possible to send messages to the SMS network, it can not offer an easy solution to these problems.</p><h2 id="BookComponentAppendix-Datacoding,alphabetandinternationalcharactersets">Data coding, alphabet and international character sets</h2><p>Data coding and alphabet can be specified on a per-message basis.&#160; Default values can be specified for the endpoint.&#160; It is important to understand the relationship between these options and the way the component act
 s when more than one value is set.</p><p>Data coding is an 8 bit field in the SMPP wire format.</p><p>Alphabet corresponds to bits 0-3 of the data coding field.&#160; For some types of message, where a message class is used (by setting bit 5 of the data coding field), the lower two bits of the data coding field are not interpreted as alphabet and only bits 2 and 3 impact the alphabet.</p><p>Furthermore, current version of the JSMPP library only seems to support bits 2 and 3, assuming that bits 0 and 1 are used for message class.&#160; This is why the Alphabet class in JSMPP doesn't support the value 3 (binary 0011) which indicates ISO-8859-1.</p><p>Although JSMPP provides a representation of the message class parameter, the Camel component doesn't currently provide a way to set it other than manually setting the corresponding bits in the data coding field.</p><p>When setting the data coding field in the outgoing message, the Camel component considers the following values and uses th
 e first one it can find:</p><ul><li>the data coding specified in a header</li><li>the alphabet specified in a header</li><li>the data coding specified in the endpoint configuration (URI parameter)</li></ul><p>Older versions of Camel had bugs in support for international character sets.&#160; This feature only worked when a single encoding was used for all messages and was troublesome when users wanted to change it on a per-message basis.&#160; Users who require this to work should ensure their version of Camel includes the fix for&#160;<span class="aui-message aui-message-warning jim-error-message jim-error-message-single conf-macro output-block" data-hasbody="false" data-macro-name="jira">
+        <span class="icon-in-pdf"> </span>
+     Unable to locate Jira server for this macro. It may be due to Application Link configuration.
+    </span>
+.</p><p>In addition to trying to send the data coding value to the SMSC, the Camel component also tries to analyze the message body, convert it to a Java String (Unicode) and convert that to a byte array in the corresponding alphabet&#160; When deciding which alphabet to use in the byte array, the Camel SMPP component does not consider the data coding value (header or configuration), it only considers the specified alphabet (from either the header or endpoint parameter).</p><p>If some characters in the String can't be represented in the chosen alphabet, they may be replaced by the question mark ( ? ) symbol.&#160; Users of the API may want to consider checking if their message body can be converted to ISO-8859-1 before passing it to the component and if not, setting the alphabet header to request UCS-2 encoding.&#160; If the alphabet and data coding options are not specified at all then the component may try to detect the required encoding and set the data coding for you.</p><p>The 
 list of alphabet codes are specified in the SMPP specification v3.4, section 5.2.19.&#160; One notable limitation of the SMPP specification is that there is no alphabet code for explicitly requesting use of the GSM 3.38 (7 bit) character set.&#160; Choosing the value 0 for the alphabet selects the SMSC <em>default</em> alphabet, this usually means GSM 3.38 but it is not guaranteed.&#160; The SMPP gateway Nexmo <a shape="rect" class="external-link" href="https://help.nexmo.com/hc/en-us/articles/204015813-How-to-change-the-character-encoding-in-SMPP-" rel="nofollow">actually allows the default to be mapped to any other character set with a control panel option</a>. It is suggested that users check with their SMSC operator to confirm exactly which character set is being used as the default.</p><h3 id="BookComponentAppendix-Messagesplittingandthrottling">Message splitting and throttling</h3><p>After transforming a message body from a String to a byte array, the Camel component is also r
 esponsible for splitting the message into parts (within the 140 byte SMS size limit) before passing it to JSMPP.&#160; This is completed automatically.</p><p>If the GSM 3.38 alphabet is used, the component will pack up to 160 characters into the 140 byte message body.&#160; If an 8 bit character set is used (e.g. ISO-8859-1 for western Europe) then 140 characters will be allowed within the 140 byte message body.&#160; If 16 bit UCS-2 encoding is used then just 70 characters fit into each 140 byte message.</p><p>Some SMSC providers implement throttling rules.&#160; Each part of a message that has been split may be counted separately by the provider's throttling mechanism.&#160; The Camel Throttler component can be useful for throttling messages in the SMPP route before handing them to the SMSC.</p><h3 id="BookComponentAppendix-URIformat.58">URI format</h3><div class="code panel pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div cla
 ss="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; gutter: false; theme: Default" data-theme="Default">smpp://[username@]hostname[:port][?options]
 smpps://[username@]hostname[:port][?options]
 </pre>

Modified: websites/production/camel/content/book-in-one-page.html
==============================================================================
--- websites/production/camel/content/book-in-one-page.html (original)
+++ websites/production/camel/content/book-in-one-page.html Sun Feb 10 03:34:21 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.rbtoc1549743599439 {padding: 0px;}
-div.rbtoc1549743599439 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1549743599439 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1549769250228 {padding: 0px;}
+div.rbtoc1549769250228 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1549769250228 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1549743599439">
+/*]]>*/</style><div class="toc-macro rbtoc1549769250228">
 <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>

Modified: websites/production/camel/content/custom-dataformat.html
==============================================================================
--- websites/production/camel/content/custom-dataformat.html (original)
+++ websites/production/camel/content/custom-dataformat.html Sun Feb 10 03:34:21 2019
@@ -92,52 +92,10 @@
 <div class="wiki-content maincontent"><h2 id="CustomDataFormat-CustomDataFormat">Custom DataFormat</h2>
 
 <p>You can use your custom <a shape="rect" href="data-format.html">Data Format</a> implementation with Camel. All you have to do is to implement the <code>DataFormat</code> interface. For example in the following we will implement a reverse data format as shown below:</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 final class MyReverseDataFormat extends ServiceSupport implements DataFormat {
-
-    public void marshal(Exchange exchange, Object graph, OutputStream stream) throws Exception {
-        byte[] bytes = exchange.getContext().getTypeConverter().mandatoryConvertTo(byte[].class, graph);
-        String body = reverseBytes(bytes);
-        stream.write(body.getBytes());
-    }
-
-    public Object unmarshal(Exchange exchange, InputStream stream) throws Exception {
-        byte[] bytes = exchange.getContext().getTypeConverter().mandatoryConvertTo(byte[].class, stream);
-        String body = reverseBytes(bytes);
-        return body;
-    }
-
-    private String reverseBytes(byte[] data) {
-        StringBuilder sb = new StringBuilder(data.length);
-        for (int i = data.length - 1; i &gt;= 0; i--) {
-            char ch = (char) data[i];
-            sb.append(ch);
-        }
-        return sb.toString();
-    }
-
-    @Override
-    protected void doStart() throws Exception {
-        // noop
-    }
-
-    @Override
-    protected void doStop() throws Exception {
-        // noop
-    }
-}
-</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 to use it in Java DSL:</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:a")
-    .marshal().custom("reverse")
-    .to("mock:a");
-
-from("direct:b")
-    .unmarshal().custom("reverse")
-    .to("mock:b");
-</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>Notice we use custom to refer to the <a shape="rect" href="data-format.html">Data Format</a> in the <a shape="rect" href="registry.html">Registry</a>. In Java DSL you can also provide the instance directly as shown:</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">

Modified: websites/production/camel/content/how-can-i-stop-a-route-from-a-route.html
==============================================================================
--- websites/production/camel/content/how-can-i-stop-a-route-from-a-route.html (original)
+++ websites/production/camel/content/how-can-i-stop-a-route-from-a-route.html Sun Feb 10 03:34:21 2019
@@ -103,138 +103,15 @@
 
 <h3 id="HowcanIstoparoutefromaroute-UsingalatchtostopCamelfromaroute">Using a latch to stop Camel from a route</h3>
 <p>In this example we use a <code>CountdownLatch</code> to signal when Camel should stop, triggered from a 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">
-// use a latch as signal when to stop Camel
-private final CountDownLatch latch = new CountDownLatch(1);
-
-@Test
-public void testStopCamelFromRoute() throws Exception {
-    // create camel, add routes, and start camel
-    CamelContext context = new DefaultCamelContext();
-    context.addRoutes(createMyRoutes());
-    context.start();
-
-    // setup mock expectations for unit test
-    MockEndpoint start = context.getEndpoint("mock:start", MockEndpoint.class);
-    start.expectedMessageCount(1);
-    MockEndpoint done = context.getEndpoint("mock:done", MockEndpoint.class);
-    done.expectedMessageCount(1);
-
-    // send a message to the route
-    ProducerTemplate template = context.createProducerTemplate();
-    template.sendBody("direct:start", "Hello Camel");
-
-    // wait for the latch (use 1 minute as fail safe, due unit test)
-    assertTrue(latch.await(1, TimeUnit.MINUTES));
-
-    // stop camel
-    context.stop();
-
-    // unit test assertions
-    start.assertIsSatisfied();
-    done.assertIsSatisfied();
-}
-</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 in the route we call the latch as shown:</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 RouteBuilder createMyRoutes() throws Exception {
-    return new RouteBuilder() {
-        @Override
-        public void configure() throws Exception {
-            from("direct:start").routeId("myRoute")
-                .to("mock:start")
-                .process(new Processor() {
-                    @Override
-                    public void process(Exchange exchange) throws Exception {
-                        // stop Camel by signalling to the latch
-                        latch.countDown();
-                    }
-                }).to("mock:done");
-        }
-    };
-}
-</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="HowcanIstoparoutefromaroute-Usingathreadtostoparoutefromaroute">Using a thread to stop a route from a route</h3>
 <p>In this example we use a separate <code>Thread</code> to stop the route, triggered from the route itself.</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">
-@Test
-public void testStopRouteFromRoute() throws Exception {
-    // create camel, add routes, and start camel
-    CamelContext context = new DefaultCamelContext();
-    context.addRoutes(createMyRoutes());
-    context.start();
-
-    assertTrue("Route myRoute should be started", context.getRouteController().getRouteStatus("myRoute").isStarted());
-    assertTrue("Route bar should be started", context.getRouteController().getRouteStatus("bar").isStarted());
-
-    // setup mock expectations for unit test
-    MockEndpoint start = context.getEndpoint("mock:start", MockEndpoint.class);
-    start.expectedMessageCount(1);
-    MockEndpoint done = context.getEndpoint("mock:done", MockEndpoint.class);
-    done.expectedMessageCount(1);
-
-    // send a message to the route
-    ProducerTemplate template = context.createProducerTemplate();
-    template.sendBody("direct:start", "Hello Camel");
-
-    // just wait a bit for the thread to stop the route
-    latch.await(5, TimeUnit.SECONDS);
-
-    // the route should now be stopped
-    assertTrue("Route myRoute should be stopped", context.getRouteController().getRouteStatus("myRoute").isStopped());
-    assertTrue("Route bar should be started", context.getRouteController().getRouteStatus("bar").isStarted());
-
-    // stop camel
-    context.stop();
-
-    // unit test assertions
-    start.assertIsSatisfied();
-    done.assertIsSatisfied();
-}
-</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 in the route we create the thread and call the <code>stopRoute</code> method as shown:</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 RouteBuilder createMyRoutes() throws Exception {
-    return new RouteBuilder() {
-        @Override
-        public void configure() throws Exception {
-            from("direct:start").routeId("myRoute")
-                .to("mock:start")
-                .process(new Processor() {
-                    Thread stop;
-
-                    @Override
-                    public void process(final Exchange exchange) throws Exception {
-                        // stop this route using a thread that will stop
-                        // this route gracefully while we are still running
-                        if (stop == null) {
-                            stop = new Thread() {
-                                @Override
-                                public void run() {
-                                    try {
-                                        exchange.getContext().getRouteController().stopRoute("myRoute");
-                                    } catch (Exception e) {
-                                        // ignore
-                                    } finally {
-                                        // signal we stopped the route
-                                        latch.countDown();
-                                    }
-                                }
-                            };
-                        }
-
-                        // start the thread that stops this route
-                        stop.start();
-                    }
-                }).to("mock:done");
-            
-            from("direct:bar").routeId("bar")
-                .to("mock:bar");
-        }
-    };
-}
-</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="HowcanIstoparoutefromaroute-Alternativesolutions">Alternative solutions</h3>

Modified: websites/production/camel/content/how-do-i-retry-processing-a-message-from-a-certain-point-back-or-an-entire-route.html
==============================================================================
--- websites/production/camel/content/how-do-i-retry-processing-a-message-from-a-certain-point-back-or-an-entire-route.html (original)
+++ websites/production/camel/content/how-do-i-retry-processing-a-message-from-a-certain-point-back-or-an-entire-route.html Sun Feb 10 03:34:21 2019
@@ -95,44 +95,12 @@
 
 <p>In the example above we have 2 routes (direct:start, direct:sub). In case of a failure anywhere in the direct:sub route, then the entire route is retried. This happens because we have instructed the direct:sub route to not use any error handler (eg the no error handler). Then we link the routes using the <a shape="rect" href="direct.html">Direct</a> component by calling the sub route from the 1st 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">
-
-// in case of io exception then try to redeliver up till 2 times
-// (do not use any delay due faster unit testing)
-onException(IOException.class)
-    .maximumRedeliveries(2).redeliveryDelay(0);
-
-from("direct:start")
-    .to("mock:a")
-    // call sub route (using direct)
-    .to("direct:sub")
-    .to("mock:c");
-
-from("direct:sub")
-    // disable error handler, so the entire route can be retried in case of redelivery
-    .errorHandler(noErrorHandler())
-    .to("mock:b")
-    .process(new 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>The code above is based on an unit test, and as you can see the processor below is configured to fail the first 2 attempts. <br clear="none">
 So that means the entire direct:sub route is redeliveried, meaning that the "mock:b" endpoint receives the incoming message again.</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 MyProcessor implements Processor {
-
-    private int counter;
-
-    @Override
-    public void process(Exchange exchange) throws Exception {
-        // use a processor to simulate error in the first 2 calls
-        if (counter++ &lt; 2) {
-            throw new IOException("Forced");
-        }
-        exchange.getIn().setBody("Bye World");
-    }
-}
-</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>The same example is shown below using the XML DSL:</p>
 

Modified: websites/production/camel/content/news.html
==============================================================================
--- websites/production/camel/content/news.html (original)
+++ websites/production/camel/content/news.html Sun Feb 10 03:34:21 2019
@@ -89,6 +89,30 @@
             <span class="logoBlock">
                  <span class="aui-avatar aui-avatar-large">
                      <span class="aui-avatar-inner">
+                         <a shape="rect" class="userLogoLink" href="    /confluence/display/~gzurowski ">
+              <img class="userLogo logo" src="news.userimage/gzurowski-89607-pp-wojtek-avatar.png" alt="User icon: gzurowski" title="gzurowski">
+           </a>                     </span>
+                 </span>
+            </span>
+            <span class="blogHeading">
+                <a shape="rect" class="blogHeading" href="2019/02/09/apache-camel-2215-released.html">Apache Camel 2.21.5 Released</a>
+                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="    /confluence/display/~gzurowski ">Gregor Zurowski</a> posted on Feb 09, 2019</div>
+            
+        </div>
+    
+    <div class="wiki-content">
+        <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&#160;<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&#160;<a shape="rect" class="external-link" href="http://camel.apache.org/camel-2215-release.html">download</a>&#160;either from the Apache mirrors or from the Central Maven repository. For more details please take a look at the&#160;<a shape="rect" class="external-link" href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12344816&amp;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>
+    
+        
+    </div>
+    
+        
+<div class="blog-post-listing">
+            <div class="logo-heading-block">
+            <span class="logoBlock">
+                 <span class="aui-avatar aui-avatar-large">
+                     <span class="aui-avatar-inner">
                          <a shape="rect" class="userLogoLink" href="    /confluence/display/~zregvart ">
               <img class="userLogo logo" src="news.userimage/user-avatar" alt="User icon: zregvart" title="zregvart">
            </a>                     </span>
@@ -138,7 +162,7 @@
                  <span class="aui-avatar aui-avatar-large">
                      <span class="aui-avatar-inner">
                          <a shape="rect" class="userLogoLink" href="    /confluence/display/~gzurowski ">
-              <img class="userLogo logo" src="news.userimage/gzurowski-89607-pp-wojtek-avatar.png" alt="User icon: gzurowski" title="gzurowski">
+              <img class="userLogo logo" src="news.userimage//confluence/download/attachments/38568918/gzurowski-89607-pp-wojtek-avatar.png" alt="User icon: gzurowski" title="gzurowski">
            </a>                     </span>
                  </span>
             </span>
@@ -537,30 +561,6 @@
     </div>
     
         
-    </div>
-    
-        
-<div class="blog-post-listing">
-            <div class="logo-heading-block">
-            <span class="logoBlock">
-                 <span class="aui-avatar aui-avatar-large">
-                     <span class="aui-avatar-inner">
-                         <a shape="rect" class="userLogoLink" href="    /confluence/display/~gzurowski ">
-              <img class="userLogo logo" src="news.userimage/gzurowski-89607-pp-wojtek-avatar.png" alt="User icon: gzurowski" title="gzurowski">
-           </a>                     </span>
-                 </span>
-            </span>
-            <span class="blogHeading">
-                <a shape="rect" class="blogHeading" href="2018/03/30/apache-camel-2195-released.html">Apache Camel 2.19.5 Released</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="    /confluence/display/~gzurowski ">Gregor Zurowski</a> posted on Mar 30, 2018</div>
-            
-        </div>
-    
-    <div class="wiki-content">
-        <p>The Camel community announces the immediate availability of the new patch release Camel 2.19.5. This release contains 42 fixes and improvements. An overview of the changes is available&#160;<a shape="rect" href="https://cwiki.apache.org/confluence/display/CAMEL/Camel+2.19.5+Release">here</a>. This is the last planned patch release for the 2.19.x branch.</p><p>The artifacts are published and ready for you to&#160;<a shape="rect" href="https://cwiki.apache.org/confluence/display/CAMEL/Download">download</a>&#160;either from the Apache mirrors or from the Central Maven repository. For more details please take a look at the&#160;<a shape="rect" class="external-link" href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12342135&amp;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>
-    
-        
     </div>
     </div></div>
         </td>

Modified: websites/production/camel/content/predicate.html
==============================================================================
--- websites/production/camel/content/predicate.html (original)
+++ websites/production/camel/content/predicate.html Sun Feb 10 03:34:21 2019
@@ -140,13 +140,7 @@ import static org.apache.camel.builder.P
 </div></div>
 
 <p>And then we can use it to enclose an existing predicate and negate it as the example shows:</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(not(header("username").regex("goofy|pluto"))).to("mock:people")
-        .otherwise().to("mock:animals")
-    .end();
-</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="Predicate-CompoundPredicates">Compound Predicates</h3>
@@ -171,32 +165,7 @@ PredicateBuilder.and(XPathBuilder.xpath(
 </div></div>
 
 <p>The sample below demonstrates further use cases:</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">
-// We define 3 predicates based on some user roles
-// we have static imported and/or from org.apache.camel.builder.PredicateBuilder
-
-// First we have a regular user that is just identified having a username header
-Predicate user = header("username").isNotNull();
-
-// The admin user must be a user AND have a admin header as true
-Predicate admin = and(user, header("admin").isEqualTo("true"));
-
-// And God must be an admin and (either have type god or a special message containing Camel Rider)
-Predicate god = and(admin, or(body().contains("Camel Rider"), header("type").isEqualTo("god")));
-
-// As you can see with the predicates above we can stack them to build compound predicates
-
-// In our route below we can create a nice content based router based on the predicates we
-// have defined. Then the route is easy to read and understand.
-// We encourage you to define complex predicates outside the fluent router builder as
-// it will just get a bit complex for humans to read
-from("direct:start").choice()
-  .when(god).to("mock:god")
-  .when(admin).to("mock:admin")
-  .when(user).to("mock:user")
-  .otherwise().to("mock:guest")
-.end();
-</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="Predicate-ExtensiblePredicates">Extensible Predicates</h3>
 <p>Camel supports extensible Predicates using multiple <a shape="rect" href="languages.html">Languages</a>; the following languages are supported out of the box</p>