You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2021/08/11 06:00:58 UTC

[camel] branch main updated (55f4dcb -> 6cf6547)

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git.


    from 55f4dcb  CAMEL-16853: Regen
     new b99554b  Polish and cleanup documentation
     new 6cf6547  Polish and cleanup documentation

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../eips/pages/content-based-router-eip.adoc       |   2 -
 .../docs/modules/eips/pages/content-enricher.adoc  |   7 -
 .../modules/eips/pages/content-filter-eip.adoc     |   2 -
 .../eips/pages/eventDrivenConsumer-eip.adoc        |   2 -
 .../docs/modules/eips/pages/polling-consumer.adoc  |   2 -
 .../main/docs/modules/eips/pages/wireTap-eip.adoc  |   4 -
 docs/user-manual/modules/ROOT/nav.adoc             |   1 -
 .../modules/ROOT/pages/exchange-pattern.adoc       |  12 +-
 .../modules/ROOT/pages/exchange-pooling.adoc       |   4 +-
 docs/user-manual/modules/ROOT/pages/exchange.adoc  |   2 +-
 .../user-manual/modules/ROOT/pages/expression.adoc |  68 +----
 .../modules/ROOT/pages/fluent-builders.adoc        |  11 -
 .../modules/ROOT/pages/getting-started.adoc        |  38 +--
 .../modules/ROOT/pages/graceful-shutdown.adoc      | 301 +++------------------
 14 files changed, 60 insertions(+), 396 deletions(-)
 delete mode 100644 docs/user-manual/modules/ROOT/pages/fluent-builders.adoc

[camel] 02/02: Polish and cleanup documentation

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 6cf65476f637935be3275506098e5b0264604ac7
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Aug 11 07:59:47 2021 +0200

    Polish and cleanup documentation
---
 .../src/main/docs/modules/eips/pages/content-based-router-eip.adoc | 2 --
 .../src/main/docs/modules/eips/pages/content-enricher.adoc         | 7 -------
 .../src/main/docs/modules/eips/pages/content-filter-eip.adoc       | 2 --
 .../src/main/docs/modules/eips/pages/eventDrivenConsumer-eip.adoc  | 2 --
 .../src/main/docs/modules/eips/pages/polling-consumer.adoc         | 2 --
 .../src/main/docs/modules/eips/pages/wireTap-eip.adoc              | 4 ----
 6 files changed, 19 deletions(-)

diff --git a/core/camel-core-engine/src/main/docs/modules/eips/pages/content-based-router-eip.adoc b/core/camel-core-engine/src/main/docs/modules/eips/pages/content-based-router-eip.adoc
index ae6ffb0..820bf2c 100644
--- a/core/camel-core-engine/src/main/docs/modules/eips/pages/content-based-router-eip.adoc
+++ b/core/camel-core-engine/src/main/docs/modules/eips/pages/content-based-router-eip.adoc
@@ -13,8 +13,6 @@ The following example shows how to route a request from an input
 *seda:a* endpoint to either *seda:b*, *seda:c* or *seda:d* depending on
 the evaluation of various xref:latest@manual:ROOT:predicate.adoc[Predicate] expressions
 
-== Using the xref:latest@manual:ROOT:fluent-builders.adoc[Fluent Builders]
-
 [source,java]
 ----
 RouteBuilder builder = new RouteBuilder() {
diff --git a/core/camel-core-engine/src/main/docs/modules/eips/pages/content-enricher.adoc b/core/camel-core-engine/src/main/docs/modules/eips/pages/content-enricher.adoc
index 10be36a..4468a91 100644
--- a/core/camel-core-engine/src/main/docs/modules/eips/pages/content-enricher.adoc
+++ b/core/camel-core-engine/src/main/docs/modules/eips/pages/content-enricher.adoc
@@ -14,8 +14,6 @@ image::eip/DataEnricher.gif[image]
 [[ContentEnricher-ContentenrichmentusingaMessageTranslatororaProcessor]]
 == Content enrichment using a Message Translator or a Processor
 
-*Using the* *xref:latest@manual:ROOT:fluent-builders.adoc[Fluent Builders]*
-
 You can use xref:latest@manual:ROOT:templating.adoc[Templating] to consume a message from
 one destination, transform it with something like
 xref:components::velocity-component.adoc[Velocity] or xref:components::xquery-component.adoc[XQuery], and then send
@@ -136,8 +134,6 @@ longer apply and it just works.
 [[ContentEnricher-EnrichOptions]]
 == Enrich Options
 
-confluenceTableSmall
-
 [width="100%",cols="34%,33%,33%",options="header",]
 |=======================================================================
 |Name |Default Value |Description
@@ -206,9 +202,6 @@ endpoint URI that could not be resolved. If disabled, Camel will throw
 an exception identifying the invalid endpoint URI.
 |=======================================================================
 
-*Using the* *xref:latest@manual:ROOT:fluent-builders.adoc[Fluent Builders]*
-
-
 [source,java]
 ----
 AggregationStrategy aggregationStrategy = ... 
diff --git a/core/camel-core-engine/src/main/docs/modules/eips/pages/content-filter-eip.adoc b/core/camel-core-engine/src/main/docs/modules/eips/pages/content-filter-eip.adoc
index 89a23d9..f437ef0 100644
--- a/core/camel-core-engine/src/main/docs/modules/eips/pages/content-filter-eip.adoc
+++ b/core/camel-core-engine/src/main/docs/modules/eips/pages/content-filter-eip.adoc
@@ -18,8 +18,6 @@ A common way to filter messages is to use an
 xref:latest@manual:ROOT:expression.adoc[Expression] in the xref:latest@manual:ROOT:dsl.adoc[DSL] like
 xref:components:languages:xquery-language.adoc[XQuery].
 
-== Using the xref:latest@manual:ROOT:fluent-builders.adoc[Fluent Builders]
-
 Here is a simple example using the xref:latest@manual:ROOT:dsl.adoc[DSL] directly
 
 In this example we add our own xref:latest@manual:ROOT:processor.adoc[Processor]
diff --git a/core/camel-core-engine/src/main/docs/modules/eips/pages/eventDrivenConsumer-eip.adoc b/core/camel-core-engine/src/main/docs/modules/eips/pages/eventDrivenConsumer-eip.adoc
index 1a26413..aa3e086 100644
--- a/core/camel-core-engine/src/main/docs/modules/eips/pages/eventDrivenConsumer-eip.adoc
+++ b/core/camel-core-engine/src/main/docs/modules/eips/pages/eventDrivenConsumer-eip.adoc
@@ -24,8 +24,6 @@ http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Proces
 defined in the Camel xref:latest@manual:ROOT:registry.adoc[Registry] which is
 invoked when an event occurs from a xref:components::jms-component.adoc[JMS] queue.
 
-*Using the xref:latest@manual:ROOT:fluent-builders.adoc[Fluent Builders]*
-
 [source,java]
 ----
 from("jms:queue:foo")
diff --git a/core/camel-core-engine/src/main/docs/modules/eips/pages/polling-consumer.adoc b/core/camel-core-engine/src/main/docs/modules/eips/pages/polling-consumer.adoc
index 4c78805..ba3dadd 100644
--- a/core/camel-core-engine/src/main/docs/modules/eips/pages/polling-consumer.adoc
+++ b/core/camel-core-engine/src/main/docs/modules/eips/pages/polling-consumer.adoc
@@ -190,8 +190,6 @@ For more details see:
 
 The *`ScheduledPollConsumer`* supports the following options:
 
-confluenceTableSmall
-
 [width="100%",cols="34%,33%,33%",options="header",]
 |=======================================================================
 |Option |Default |Description
diff --git a/core/camel-core-engine/src/main/docs/modules/eips/pages/wireTap-eip.adoc b/core/camel-core-engine/src/main/docs/modules/eips/pages/wireTap-eip.adoc
index 86a7b67..de9b7ac 100644
--- a/core/camel-core-engine/src/main/docs/modules/eips/pages/wireTap-eip.adoc
+++ b/core/camel-core-engine/src/main/docs/modules/eips/pages/wireTap-eip.adoc
@@ -75,8 +75,6 @@ values.
 
 == Sending a Copy (traditional wiretap)
 
-* Using the xref:latest@manual:ROOT:fluent-builders.adoc[Fluent Builders]
-
 [source,java]
 ----
     protected RouteBuilder createRouteBuilder() {
@@ -102,8 +100,6 @@ values.
 
 == Sending a New xref:latest@manual:ROOT:exchange.adoc[Exchange]
 
-*Using the xref:latest@manual:ROOT:fluent-builders.adoc[Fluent Builders]*
-
 Camel supports either a processor or an
 xref:latest@manual:ROOT:expression.adoc[Expression] to populate the new
 xref:latest@manual:ROOT:exchange.adoc[Exchange]. Using a processor gives you full power

[camel] 01/02: Polish and cleanup documentation

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit b99554b00768302bf1864f936b081581544f9ee7
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Aug 11 07:58:07 2021 +0200

    Polish and cleanup documentation
---
 docs/user-manual/modules/ROOT/nav.adoc             |   1 -
 .../modules/ROOT/pages/exchange-pattern.adoc       |  12 +-
 .../modules/ROOT/pages/exchange-pooling.adoc       |   4 +-
 docs/user-manual/modules/ROOT/pages/exchange.adoc  |   2 +-
 .../user-manual/modules/ROOT/pages/expression.adoc |  68 +----
 .../modules/ROOT/pages/fluent-builders.adoc        |  11 -
 .../modules/ROOT/pages/getting-started.adoc        |  38 +--
 .../modules/ROOT/pages/graceful-shutdown.adoc      | 301 +++------------------
 8 files changed, 60 insertions(+), 377 deletions(-)

diff --git a/docs/user-manual/modules/ROOT/nav.adoc b/docs/user-manual/modules/ROOT/nav.adoc
index 8f213d5..e4d26c6 100644
--- a/docs/user-manual/modules/ROOT/nav.adoc
+++ b/docs/user-manual/modules/ROOT/nav.adoc
@@ -49,7 +49,6 @@
 ** xref:endpoint-annotations.adoc[Endpoint Annotations]
 ** xref:exception-clause.adoc[Exception Clause]
 ** xref:exchange-pooling.adoc[Exchange Pooling]
-** xref:fluent-builders.adoc[Fluent Builders]
 ** xref:http-session-handling.adoc[HTTP-Session Handling]
 ** xref:parameter-binding-annotations.adoc[Parameter Binding Annotations]
 ** xref:pojo-producing.adoc[POJO Producing]
diff --git a/docs/user-manual/modules/ROOT/pages/exchange-pattern.adoc b/docs/user-manual/modules/ROOT/pages/exchange-pattern.adoc
index d5828fd..8431277 100644
--- a/docs/user-manual/modules/ROOT/pages/exchange-pattern.adoc
+++ b/docs/user-manual/modules/ROOT/pages/exchange-pattern.adoc
@@ -1,21 +1,21 @@
 [[ExchangePattern-ExchangePattern]]
 = Exchange Pattern
 
-There are many different _Message Exchange Patterns_ you can use in
+There are two _Message Exchange Patterns_ you can use in
 messaging.
 
 From there xref:{eip-vc}:eips:enterprise-integration-patterns.adoc[Enterprise
-Integration Patterns] the common examples are:
+Integration Patterns] they are:
 
-* Event Message (or one-way)
-* Request Reply
+* xref:{eip-vc}:eips:event-message.adoc[Event Message] (or one-way)
+* xref:{eip-vc}:eips:requestReply-eip.adoc[Request Reply]
 
 In Camel we have an
 `org.apache.camel.ExchangePattern`
 enumeration which can be configured on the *exchangePattern* property on
 the Message Exchange indicating if a message
-exchange is a one way Event Message (*InOnly*) or
-a Request Reply message exchange (*InOut*).
+exchange is a one way xref:{eip-vc}:eips:event-message.adoc[Event Message] (*InOnly*) or
+a xref:{eip-vc}:eips:requestReply-eip.adoc[Request Reply] message exchange (*InOut*).
 
 For example to override the default pattern on a xref:components::jms-component.adoc[JMS]
 endpoint you could use the `exchangePattern` parameter in the Endpoint xref:uris.adoc[URI]
diff --git a/docs/user-manual/modules/ROOT/pages/exchange-pooling.adoc b/docs/user-manual/modules/ROOT/pages/exchange-pooling.adoc
index d1643fb..527a931d 100644
--- a/docs/user-manual/modules/ROOT/pages/exchange-pooling.adoc
+++ b/docs/user-manual/modules/ROOT/pages/exchange-pooling.adoc
@@ -1,8 +1,6 @@
 [[ExchangePooling-ExchangePooling]]
 = Exchange Pooling
 
-*Since Camel 3.9*
-
 Apache Camel requires a tiny resource overhead when routing message.
 
 For example the routing engine keeps state of each individual message, keeping track of the message flow,
@@ -76,6 +74,6 @@ via JMX. This requires to add `camel-management` JAR to the classpath.
 == Examples
 
 We have provided a few examples which we are using for performance profiling.
-For example the basic `timer-log` example is on github at: https://github.com/apache/camel-performance-tests/tree/master/profiling/timer-log
+For example the basic https://github.com/apache/camel-performance-tests/tree/master/profiling/timer-log[timer-log] example.
 
 
diff --git a/docs/user-manual/modules/ROOT/pages/exchange.adoc b/docs/user-manual/modules/ROOT/pages/exchange.adoc
index 31804d4..0d311b2 100644
--- a/docs/user-manual/modules/ROOT/pages/exchange.adoc
+++ b/docs/user-manual/modules/ROOT/pages/exchange.adoc
@@ -4,7 +4,7 @@
 To support various message exchange patterns
 like one way xref:{eip-vc}:eips:event-message.adoc[Event Message] and
 xref:{eip-vc}:eips:requestReply-eip.adoc[Request Reply] messages Camel
-uses an `Exchange` interface which has a xref:exchange-pattern.adoc[Exchange Pattern]
+uses an `Exchange` interface which has an xref:exchange-pattern.adoc[Exchange Pattern]
 property which can be set to *InOnly* for an
 xref:{eip-vc}:eips:event-message.adoc[Event Message] which has a single inbound Message,
 or *InOut* for a xref:{eip-vc}:eips:requestReply-eip.adoc[Request Reply]
diff --git a/docs/user-manual/modules/ROOT/pages/expression.adoc b/docs/user-manual/modules/ROOT/pages/expression.adoc
index 61fa147..e00eab8 100644
--- a/docs/user-manual/modules/ROOT/pages/expression.adoc
+++ b/docs/user-manual/modules/ROOT/pages/expression.adoc
@@ -3,24 +3,21 @@
 
 Expressions and Predicates can then be used to
 create the various xref:{eip-vc}:eips:enterprise-integration-patterns.adoc[Enterprise
-Integration Patterns] in the DSL or
-XML Configuration like the
-Recipient List. +
- To support dynamic rules Camel supports pluggable
+Integration Patterns] in the xref:dsl.adoc[DSL] like with the xref:{eip-vc}:eips:recipientList-eip.adoc[Recipient List] EIP.
+
+To support dynamic rules Camel supports pluggable
 https://www.javadoc.io/doc/org.apache.camel/camel-api/current/org/apache/camel/Expression.html[Expression]
 strategies using a variety of different Languages.
 
-[[Expression-API]]
-== API
+== Expression API
 
-If you are outside of the DSL and want to create your own
+If you are outside the DSL and want to create your own
 expressions you can either implement the
 https://www.javadoc.io/doc/org.apache.camel/camel-api/current/org/apache/camel/Expression.html[Expression
 interface], reuse one of the other builders or try the
 https://www.javadoc.io/doc/org.apache.camel/camel-support/current/org/apache/camel/support/builder/ExpressionBuilder.html[ExpressionBuilder
 class].
 
-[[Expression-Expression]]
 === Expression
 
 The API for a Camel Expression is defined in the
@@ -41,7 +38,6 @@ public interface Expression {
 }
 -------------------------------------------------------------------------------
 
-[[Expression-Predicate]]
 === Predicate
 
 The API for a Camel Predicate is defined in the
@@ -54,7 +50,7 @@ public interface Predicate {
     /**
      * Evaluates the predicate on the message exchange and returns true if this
      * exchange matches the predicate
-     * 
+     *
      * @param exchange the message exchange
      * @return true if the predicate matches
      */
@@ -63,55 +59,3 @@ public interface Predicate {
 }
 -------------------------------------------------------------------------------
 
-[[Expression-ExpressionLanguages]]
-== Expression Languages
-
-The following languages are supported out of the box
-
-* xref:components:languages:bean-language.adoc[Bean Language] for using Java for expressions
-* xref:components:languages:constant-language.adoc[Constant]
-* xref:components:languages:header-language.adoc[Header]
-* xref:components:languages:jsonpath-language.adoc[JSonPath]
-* xref:components::mvel-component.adoc[Mvel]
-* xref:components:languages:ognl-language.adoc[OGNL]
-* xref:components:languages:ref-language.adoc[Ref Language]
-* ExchangeProperty / Property
-* Scripting Languages such as
-** BeanShell
-** JavaScript
-** xref:components:languages:groovy-language.adoc[Groovy]
-* xref:components:languages:simple-language.adoc[Simple]
-** xref:components:languages:file-language.adoc[File Language]
-* xref:components:languages:spel-language.adoc[Spring Expression Language]
-* xref:components::sql-component.adoc[SQL]
-* Tokenizer
-* xref:components:languages:xpath-language.adoc[XPath]
-* xref:components::xquery-component.adoc[XQuery]
-* https://github.com/camel-extra/camel-extra/blob/master/components/camel-vtdxml/src/main/docs/vtdxml-component.adoc[VTD-XML]
-
-Most of these languages is also supported used as
-xref:parameter-binding-annotations.adoc[Annotation Based
-Expression Language].
-
-[[Expression-UsingExpressionsinyourIDE]]
-== Using Expressions in your IDE
-
-To use different expression and predicates in your IDE you need to
-perform a static import of the builder class for the language(s) you
-wish to use.
-
-[width="100%",cols="20%,80%",options="header",]
-|=======================================================================
-|Language(s) |Builder class to import
-
-|Scripting Languages such as
-BeanShell, JavaScript,
-xref:components:languages:groovy-language.adoc[Groovy] |
-
-|xref:components::sql-component.adoc[SQL] |
-
-|xref:components:languages:xpath-language.adoc[XPath] |https://github.com/apache/camel/blob/main/components/camel-xpath/src/main/java/org/apache/camel/language/xpath/XPathBuilder.java[org.apache.camel.builder.xml.XPathBuilder]
-
-|xref:components::xquery-component.adoc[XQuery] |https://github.com/apache/camel/blob/main/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryBuilder.java[org.apache.camel.builder.saxon.XQueryBuilder]
-|=======================================================================
-
diff --git a/docs/user-manual/modules/ROOT/pages/fluent-builders.adoc b/docs/user-manual/modules/ROOT/pages/fluent-builders.adoc
deleted file mode 100644
index 29d2fd6..0000000
--- a/docs/user-manual/modules/ROOT/pages/fluent-builders.adoc
+++ /dev/null
@@ -1,11 +0,0 @@
-[[FluentBuilders-FluentBuilders]]
-= Fluent Builders
-
-Camel provides _fluent builders_ for creating routing and mediation
-rules using a type-safe IDE friendly way which provides smart completion
-and is refactoring safe.
-
-For more information see:
-
-* xref:dsl.adoc[Java Domain Specific Language]
-* xref:xml-configuration.adoc[XML Configuration]
diff --git a/docs/user-manual/modules/ROOT/pages/getting-started.adoc b/docs/user-manual/modules/ROOT/pages/getting-started.adoc
index b7cde44..42c3d6c 100644
--- a/docs/user-manual/modules/ROOT/pages/getting-started.adoc
+++ b/docs/user-manual/modules/ROOT/pages/getting-started.adoc
@@ -5,7 +5,7 @@ First you need to Download the Camel distribution;
 or you could grab the Source and try
 Building it yourself.
 
-Then come back here and you might want to read the following
+Then come back here, and you might want to read the following
 documentation before continuing:
 
 * Longer xref:book-getting-started.adoc[Getting Started Guide]
@@ -14,7 +14,6 @@ documentation before continuing:
 * Review the xref:architecture.adoc[Architecture guide] to see how to build Routes using the xref:java-dsl.adoc[Java DSL]
   or xref:xml-configuration.adoc[XML DSL]
 
-[[GettingStarted-WorkingwithCamelContextsandRouteBuilders]]
 == Working with CamelContexts and RouteBuilders
 
 To get started with Camel:
@@ -28,38 +27,3 @@ When your application is closing you may wish to stop the context
 When you are ready, why not xref:walk-through-an-example.adoc[Walk through an Example]?
 And then continue the walk xref:walk-through-another-example.adoc[Walk through another example].
 
-[[GettingStarted-WorkingwithSpring]]
-== Working with Spring
-
-If you use Spring as a Dependency Injection container then please refer
-to the Camel Spring documentation.
-
-[[GettingStarted-OtherResources]]
-== Other Resources
-
-We strongly suggest that you brew a cup of coffee or tea and take the 30
-minutes to read one or more of the following resources:
-
-* http://manning.com/ibsen/chapter1sample.pdf[Camel in Action, Chapter 1
-(direct link)] free chapter 1 of the http://www.manning.com/ibsen[Camel
-in Action] book. Highly recommended to read to learn what Camel is and
-the basic Camel concepts. This is a free chapter you can download
-directly as a pdf (about 20 pages) and introduces you to Camel. We have
-been told by experience Camel end users they wished this chapter was
-available to them when they started learning Camel.
-
-* https://dzone.com/articles/open-source-integration-apache[Open
-Source Integration with Apache Camel and How Fuse IDE Can Help] by
-Jonathan Anstey. Updated article of the
-https://dzone.com/articles/apache-camel-integration[Apache
-Camel: Integration Nirvana]. Great article to learn what Camel is and
-has a good use case example.
-
-* Several of the vendors on the
-Commercial Camel Offerings page
-also offer various tutorials, webinars, examples, etc.... that may be
-useful.
-
-* Articles is a link collection with articles,
-blogs, podcasts, presentations and the likes about Camel done by people
-from the community.
diff --git a/docs/user-manual/modules/ROOT/pages/graceful-shutdown.adoc b/docs/user-manual/modules/ROOT/pages/graceful-shutdown.adoc
index 72a4a2e..fc6dd37 100644
--- a/docs/user-manual/modules/ROOT/pages/graceful-shutdown.adoc
+++ b/docs/user-manual/modules/ROOT/pages/graceful-shutdown.adoc
@@ -5,32 +5,28 @@ Camel supports a pluggable shutdown strategy using
 `org.apache.camel.spi.ShutdownStrategy`. Its responsible for shutting
 down routes in a graceful manner. The other resources will still be
 handled by xref:camelcontext.adoc[CamelContext] to shutdown. This leaves
-the problem at hand with properly shutting down all the routes in a
-reliable manner to the `ShutdownStrategy`.
+the problem at hand with properly shutting down all the routes reliably
+to the `ShutdownStrategy`.
 
 Camel provides a default strategy in the
 `org.apache.camel.impl.engine.DefaultShutdownStrategy` which is capable of
 doing that.
 
-[[GracefulShutdown-DefaultShutdownStrategy]]
 == DefaultShutdownStrategy
 
 The default strategy will gracefully shutdown routes:
 
-* in the reverse order they was started. The option
-`shutdownRoutesInReverseOrder` can be used to use the old behavior.
+* in the reverse order they were started
 * let pending and current in flight exchanges run to completion before
 shutting down
-* using a timeout of 45 seconds which then forces a shutdown now
+* using a timeout of 45 seconds which then forces a _hard_ shutdown
 
-You can configure the timeout, and whether it should shutdown now
-remaining routes when the timeout occurred or ignore. See the setters on
-the class.
+The settings are configurable, so you can change the timeout, and
+whether in case of timeout to force a _hard_ shutdown or ignore.
 
-It will output to log the progress during graceful shutdown as shown in
-an example below
+When shutting down the strategy will output to log the progress:
 
-[source,bash]
+[source,log]
 ---------------------------------
 2009-12-20 10:56:53,055 [main ] INFO DefaultCamelContext - Apache Camel
 (CamelContext:camel-1) is stopping 2009-12-20 10:56:53,056 [main ] INFO
@@ -54,37 +50,34 @@ DefaultInflightRepository - Shutting down with no inflight exchanges.
 (CamelContext:camel-1) stopped
 ---------------------------------
 
-Notice how it waits while there are inflight exchanges still being
-processed before it can shutdown.
+Notice how the strategy waits while there are inflight exchanges still being
+processed before it shtudown the routes and after that Camel itself.
 
-[[GracefulShutdown-Suppressingloggingduetotimeoutnotallowingallinflightmessagestocomplete]]
 == Suppressing logging due to timeout not allowing all inflight messages to complete
 
 If a graceful shutdown could not shutdown cleanly within the given
-timeout period, then Camel performs a more aggressive shutdown by
-forcing routes and thread pools etc to shutdown. And as well the routing
+timeout period, then Camel performs a more aggressive shutdown (hard) by
+forcing routes and thread pools etc to shut down, and the routing
 engine will reject continue processing xref:exchange.adoc[Exchange]s. If
 this happens you may see WARN logs about xref:exchange.adoc[Exchange]s
 being rejected and other failures due the forced shutdown.
 
 If you do not want to see these logs, you can suppress this by setting
-the option SuppressLoggingOnTimeout to true.
+the option suppressLoggingOnTimeout to true.
 
 [source,java]
 ---------------------------------
 context.getShutdownStrategy().setSuppressLoggingOnTimeout(true);
 ---------------------------------
 
-Notice the suppress is a "best effort" though there may still be some
-logs coming from 3rd party libraries and whatnot, which Camel cannot
-control.
+Notice that suppression is _a best effort_ attempt and there may still be some
+logging from 3rd party libraries, which Camel cannot control.
 
-[[GracefulShutdown-Logginginflightexchangeinformationontimeout]]
 == Logging inflight exchange information on timeout
 
 If a graceful shutdown could not shutdown cleanly within the given
 timeout period, then Camel performs a more aggressive shutdown by
-forcing routes and thread pools etc to shutdown. When the timeout
+forcing routes and thread pools etc to shut down. When the timeout
 happens, then Camel logs information about the current inflight
 exchanges, which shows from which route the exchange origins, and where
 it currently is being routed. For example the logging below, shows that
@@ -97,7 +90,7 @@ If you enable DEBUG logging level
 on `org.apache.camel.impl.engine.DefaultShutdownStrategy` then it logs the same
 inflight exchange information during graceful shutdown
 
-[source,bash]
+[source,log]
 ---------------------------------
 2015-01-12 13:23:23,656 [ - ShutdownTask] INFO DefaultShutdownStrategy -
 There are 1 inflight exchanges: InflightExchange:
@@ -114,7 +107,6 @@ the option logInflightExchangesOnTimeout to false.
 context.getShutdownStrategy().setLogInflightExchangesOnTimeout(false);
 ---------------------------------
 
-[[GracefulShutdown-Controllingorderingofroutes]]
 == Controlling ordering of routes
 
 You can configure the order in which routes should be started, and thus
@@ -123,7 +115,6 @@ also the same order they are being shutdown.
 xref:configuring-route-startup-ordering-and-autostartup.adoc[Configuring
 route startup ordering and autostartup].
 
-[[GracefulShutdown-Finegrainedconfiguration]]
 == Fine grained configuration
 
 You can control two areas that influence graceful shutdown in the Camel
@@ -132,13 +123,11 @@ routing:
 * `ShutdownRoute`
 * `ShutdownRunningTask`
 
-These options can be configured on two scopes: `context` and `route`.
-Where a route will fallback to the `context` scoped option, if not
-explicit configured. (same principle as xref:error-handler.adoc[Error
-Handler], etc.).
+These options can be configured on two levels: _context_ and _route_.
+The route level take precedence over context, meaning that if not
+explicit configured on the route level, then the context level is used.
 
-[[GracefulShutdown-ShutdownRoute]]
-== ShutdownRoute
+=== ShutdownRoute
 
 This option can control how a given route should act during graceful
 shutdown. It has two values `Default` and `Defer`. The `Default` is
@@ -147,242 +136,48 @@ early as possible. The `Defer` is used to defer shutting down this route
 to a later stage. This is useful when other routes are dependent upon
 it. For example an internal route which other routes reuse.
 
-For example in the route below we have two routes, where route 1 is
-dependent upon route 2. At shutdown we want route 1 to complete all its
-current messages and we also want the 2nd route to do this as well. So
-we can mark both routes to `Defer` but since route 1 is a
-xref:components::seda-component.adoc[SEDA] based route its `Defer` by default (it uses
-`ShutdownAware`).
-
-A Java DSL based example to defer shutting down the 2nd:
-
-[source,java]
----------------------------------
-package org.apache.camel.processor;
-
-import java.io.File;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import org.apache.camel.Component;
-import org.apache.camel.ContextTestSupport;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.file.FileConsumer;
-import org.apache.camel.component.file.FileEndpoint;
-import org.apache.camel.component.file.GenericFileOperations;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.Before;
-import org.junit.Test;
-
-import static org.apache.camel.ShutdownRoute.Defer;
-
-public class ShutdownDeferTest extends ContextTestSupport {
-
-    private static final AtomicBoolean CONSUMER_SUSPENDED = new AtomicBoolean();
-
-    @Override
-    @Before
-    public void setUp() throws Exception {
-        deleteDirectory("target/deferred");
-        super.setUp();
-    }
-
-    @Test
-    public void testShutdownDeferred() throws Exception {
-        MockEndpoint bar = getMockEndpoint("mock:bar");
-        bar.expectedMinimumMessageCount(1);
-
-        template.sendBody("seda:foo", "A");
-        template.sendBody("seda:foo", "B");
-        template.sendBody("seda:foo", "C");
-        template.sendBody("seda:foo", "D");
-        template.sendBody("seda:foo", "E");
-
-        assertMockEndpointsSatisfied();
-
-        Thread.sleep(50);
-
-        context.stop();
-
-        assertFalse("Should not have been suspended", CONSUMER_SUSPENDED.get());
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            // START SNIPPET: e1
-            public void configure() throws Exception {
-                from("seda:foo")
-                    .startupOrder(1)
-                    .to("file://target/deferred");
-
-                // use file component to transfer files from route 1 -> route 2 as it
-                // will normally suspend, but by deferring this we can let route 1
-                // complete while shutting down
-                MyDeferFileEndpoint defer = new MyDeferFileEndpoint("file://target/deferred?initialDelay=0&delay=10", getContext().getComponent("file"));
-                defer.setFile(new File("target/deferred"));
-
-                from(defer)
-                    // defer shutting down this route as the 1st route depends upon it
-                    .startupOrder(2).shutdownRoute(Defer)
-                    .to("mock:bar");
-            }
-            // END SNIPPET: e1
-        };
-    }
-
-    private static final class MyDeferFileEndpoint extends FileEndpoint {
-
-        private MyDeferFileEndpoint(String endpointUri, Component component) {
-            super(endpointUri, component);
-        }
-
-        @Override
-        protected FileConsumer newFileConsumer(Processor processor, GenericFileOperations<File> operations) {
-            return new FileConsumer(this, processor, operations, createGenericFileStrategy()) {
-                @Override
-                protected void doSuspend() throws Exception {
-                    CONSUMER_SUSPENDED.set(true);
-                    super.doSuspend();
-                }
-            };
-        }
-    }
-}
----------------------------------
-
-Defer shutting down internal routes only
-
-Its best to only defer shutting down internal routes only. As *public*
-routes should shutdown as quickly as possible otherwise it will just
+NOTE: It is best to only defer shutting down internal routes only. Public
+routes should shut down as quickly as possible otherwise it will just
 keep intake new messages which will delay the shutdown processor. Or
 even have it timeout if a lot of new messages keep coming in.
 
-[[GracefulShutdown-ShutdownRunningTask]]
-== ShutdownRunningTask
+=== ShutdownRunningTask
 
 This option control how a given route consumer acts during shutdown.
 Most route consumer will only operate on a single task (message),
 however the xref:batch-consumer.adoc[Batch Consumer] can operate on many
-messages (in a batch). This option is for those kind of consumers. By
-default it uses the option `CompleteCurrentTaskOnly` which mean that the
+messages (in a batch). This option is for batch consumers.
+
+The default value is `CompleteCurrentTaskOnly` which mean that the
 current _in progress_ task (message) will be completed and then the
-consumer will shutdown. The other option `CompleteAllTasks` allows the
+consumer will shut down. The other option `CompleteAllTasks` allows the
 consumer to complete all the tasks (messages) before shutting down. For
 example a xref:components::file-component.adoc[File] consumer will process all the pending
 files it has picked up before shutting down.
 
-[source,java]
----------------------------------
-package org.apache.camel.processor;
-
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.apache.camel.ContextTestSupport;
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.ShutdownRunningTask;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.Before;
-import org.junit.Test;
-
-public class ShutdownCompleteAllTasksTest extends ContextTestSupport {
-
-    private static String url = "file:target/pending?initialDelay=0&delay=10";
-    private static AtomicInteger counter = new AtomicInteger();
-    private static CountDownLatch latch = new CountDownLatch(2);
-
-    @Override
-    @Before
-    public void setUp() throws Exception {
-        deleteDirectory("target/pending");
-        super.setUp();
-
-        template.sendBodyAndHeader(url, "A", Exchange.FILE_NAME, "a.txt");
-        template.sendBodyAndHeader(url, "B", Exchange.FILE_NAME, "b.txt");
-        template.sendBodyAndHeader(url, "C", Exchange.FILE_NAME, "c.txt");
-        template.sendBodyAndHeader(url, "D", Exchange.FILE_NAME, "d.txt");
-        template.sendBodyAndHeader(url, "E", Exchange.FILE_NAME, "e.txt");
-    }
-
-    @Test
-    public void testShutdownCompleteAllTasks() throws Exception {
-        // give it 30 seconds to shutdown
-        context.getShutdownStrategy().setTimeout(30);
-
-        // start route
-        context.startRoute("foo");
-
-        MockEndpoint bar = getMockEndpoint("mock:bar");
-        bar.expectedMinimumMessageCount(1);
-
-        assertMockEndpointsSatisfied();
-
-        int batch = bar.getReceivedExchanges().get(0).getProperty(Exchange.BATCH_SIZE, int.class);
-
-        // wait for latch
-        latch.await(10, TimeUnit.SECONDS);
-
-        // shutdown during processing
-        context.stop();
-
-        // should route all
-        assertEquals("Should complete all messages", batch, counter.get());
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            // START SNIPPET: e1
-            public void configure() throws Exception {
-                from(url).routeId("foo").noAutoStartup()
-                    // let it complete all tasks during shutdown
-                    .shutdownRunningTask(ShutdownRunningTask.CompleteAllTasks)
-                    .process(new MyProcessor())
-                    .to("mock:bar");
-            }
-            // END SNIPPET: e1
-        };
-    }
-
-    public static class MyProcessor implements Processor {
-
-        public void process(Exchange exchange) throws Exception {
-            counter.incrementAndGet();
-            latch.countDown();
-        }
-    }
-
-}
----------------------------------
-
-[[GracefulShutdown-JMXmanaged]]
 == JMX managed
 
-The `ShutdownStrategy` is JMX aware as well so you can manage it from a
-JMX console. For example you can change the timeout value.
+The `ShutdownStrategy` is JMX aware, so you can manage it from a
+JMX console. This allows to adjust the strategy at runtime, such as changing the timeout setting.
 
-[[GracefulShutdown-Shuttingdownindividualroutes]]
-== Shutting down individual routes
+== Stop individual routes
 
-It is possible to gracefully shutdown an individual route using
-`shutdownRoute(routeId)` method on `CamelContext`. Its also possible to
-provide a specific timeout to use instead of the default timeout
-settings using `shutdownRoute(routeId, timeout, timeUnit)`.
+It is possible to stop (will do a gracefully shut down) an individual route using
+`stopRoute(routeId)` method as shown:
 
-[[GracefulShutdown-Developerrelated]]
-== Developer related
+[source,java]
+----
+camelContet.getRouteController().stopRoute(routeId);
+----
+
+Routes can also be stopped via JMX.
+
+== Implementing custom component or ShutdownStrategy
 
 If you develop your own Camel component or want to implement your own
 shutdown strategy then read this section for details.
 
-[[GracefulShutdown-ShutdownStrategy]]
-== ShutdownStrategy
+=== ShutdownStrategy
 
 You can implement your own strategy to control the shutdown by
 implementing the `org.apache.camel.spi.ShutdownStrategy` and the set it
@@ -394,8 +189,7 @@ look it up at startup and use it instead of its default. See more at
 xref:advanced-configuration-of-camelcontext-using-spring.adoc[Advanced
 configuration of CamelContext using Spring].
 
-[[GracefulShutdown-ShutdownAware]]
-== ShutdownAware
+=== ShutdownAware
 
 The interface `org.apache.camel.spi.ShutdownAware` is an optional
 interface consumers can implement to have fine grained control during
@@ -407,8 +201,8 @@ this allows is to let it control the shutdown process to let it complete
 its pending messages.
 
 The method `getPendingExchangesSize` should return the number of pending
-messages which reside on the in memory queues. +
- The method `deferShutdown` should return `true` to defer the shutdown
+messages which reside on the in memory queues.
+The method `deferShutdown` should return `true` to defer the shutdown
 to a later stage, when there are no more pending and inflight messages.
 
 xref:batch-consumer.adoc[Batch Consumer] should implement
@@ -416,8 +210,3 @@ xref:batch-consumer.adoc[Batch Consumer] should implement
 option. See `GenericFileConsumer` for an example.
 
 
-== See Also
-
-When Camel is starting up, then its xref:route-controller.adoc[Route Controller]
-that handles this to ensure all the routes are started with support for managing
-troublesome routes with restaring.