anchor.diff:  karaf@root> feature:install camel-stream
   ----
   
  -[[Karaf-Karafcommands]]
  -== Karaf commands
  -
  -When you install the camel feature, new Karaf commands become available
  -automatically.
  -
  -[[Karaf-KarafcommandsinCamel2.8.x]]
  -== Karaf commands in Camel 2.8.x
  -
  -[width="100%",cols="1s,4",options="header",]
  -|=======================================================================
  -|Command |Description
  -|camel:list-contexts |Lists the camel contexts available in the
  -current Karaf instance
  -
  -|camel:list-routes |Displays the list of Camel routes available in the
  -current Karaf instance
  -
  -|camel:info-context |Displays detail information about a given Camel
  -context
  -
  -|camel:start-context |Starts the given Camel context
  -
  -|camel:stop-context |Stops the given Camel context
  -
  -|camel:info-route |Provides detail information about a Camel route
  -
  -|camel:show-route |Renders the route in XML
  -
  -|camel:start-route |Starts the given route
  -
  -|camel:stop-route |Stops the given route
  -|=======================================================================
  -
  -[[Karaf-KarafcommandsinCamel2.9onwards]]
  -== Karaf commands in Camel 2.9 onwards
  -
  -[width="100%",cols="1s,4",options="header",]
  -|=======================================================================
  -|Command |Description
  -|camel:context-list |Lists the camel contexts available in the current
  -Karaf instance
  -
  -|camel:context-info |Displays detail information about a given Camel
  -context
  -
  -|camel:context-start |Starts the given Camel context
  -
  -|camel:context-stop |Stops the given Camel context (it becomes
  -unavailable and it can't be started afterwards)
  -
  -|camel:route-list |Displays the list of Camel routes available in the
  -current Karaf instance
  -
  -|camel:route-info |Provides detail information about a Camel route
  -
  -|camel:route-show |Renders the route in XML
  -
  -|camel:route-start |Starts the given route. From Camel *2.10* onwards
  -you can use `*` as wildcard to match multiple routes.
  -
  -|camel:route-stop |Stops the given route. From Camel *2.10* onwards
  -you can use `*` as wildcard to match multiple routes.
  -
  -|camel:route-suspend |Suspends the given route. From Camel *2.10*
  -onwards you can use `*` as wildcard to match multiple routes.
  -
  -|camel:route-resume |Resumes the given route. From Camel *2.10*
  -onwards you can use `*` as wildcard to match multiple routes.
  -|=======================================================================
  -
  -[[Karaf-KarafcommandsinCamel2.10onwards]]
  -== Karaf commands in Camel 2.10 onwards
  -
  -[width="100%",cols="1s,4",options="header",]
  -|=======================================================================
  -|Command |Description
  -|camel:endpoint-list |Lists endpoints from all camel contexts
  -available in the current Karaf instance
  -|=======================================================================
  -
  -[[Karaf-KarafcommandsinCamel2.11onwards]]
  -== Karaf commands in Camel 2.11 onwards
  -
  -[width="100%",cols="1s,4",options="header",]
  -|=======================================================================
  -|Command |Description
  -|camel:route-profile |To profile route(s)
  -
  -|camel:route-reset-stats |To reset performance stats on the given
  -route(s)
  -|=======================================================================
  -
  -[[Karaf-KarafcommandsinCamel2.12.4onwards]]
  -== Karaf commands in Camel 2.12.4 onwards
  -
  -[width="100%",cols="1s,4",options="header",]
  -|=========================================================
  -|Command |Description
  -|camel:context-suspend |Suspends the given Camel context
  -|camel:context-resume |Resumes the given Camel context
  -|=========================================================
  -
  -[[Karaf-KarafcommandsinCamel3onwards]]
  -== Karaf commands in Camel 3 onwards
  -
  -[width="100%",cols="1s,4",options="header",]
  -|=======================================================================
  -|Command |Description
  -|camel:route-step |Display step information about Camel route(s).
  -|=======================================================================
  -
  -[[Karaf-camel:context-list]]
  -== `camel:context-list`
  -
  -The `camel:context-list` command displays the list of Camel contexts
  -available in the current Karaf instance:
  +And so on, for example if you use the sql, and http components:
   
   [source,sh]
   ----
  -karaf@root> camel:context-list
  -Name                 Status               Uptime
  -[66-camel-3        ] [Started           ] [14.559 seconds    ]
  +karaf@root> feature:install camel-sql camel-http
   ----
   
  -It displays the context name/ID (used in others commands), the current
  -status (started/stopped), the uptime (since when the context has been
  -started).
  +[[Karaf-CamelKarafcommands]]
  +== Camel Karaf commands
   
  -[[Karaf-camel:route-list]]
  -== `camel:route-list`
  +When you install the camel feature, new Camel Karaf commands become available
  +automatically.
   
  -The `camel:route-list` command displays the list of Camel routes
  -available in the current Karaf instance:
  -
  +For example to list all running Camel contexts:
   [source,sh]
   ----
  -karaf@root> camel:route-list
  -[route1              ]
  +karaf@root> karaf@root> camel:context-list
   ----
   
  -You can also filter the routes by Camel context:
  -
  -[source,sh]
  -----
  -karaf@root> camel:route-list 66-camel-3
  -[route1              ]
  -----
  -
  -TIP: use the kbd:[TAB] key to completion on the Camel context ID.
  -
  -[[Karaf-camel:info-context]]
  -== `camel:info-context`
  -
  -The `camel:context-info` command displays detail information about a
  -given Camel context:
  -
  -add the `--verbose` option (following the context name) to also list
  -the endpoints:
  -
  -[source]
  -----
  -karaf@root> camel:context-info 66-camel-3
  -Camel Context 66-camel-3
  -        Name: 66-camel-3
  -        Version: 2.8.0
  -        Status: Started
  -        Uptime: 1 minute
  -
  -Advanced
  -        Auto Startup: true
  -        Starting Routes: false
  -        Suspended: false
  -        Tracing: false
  -
  -Properties
  -
  -Components
  -        timer
  -        properties
  -        log
  -
  -Endpoints
  -        timer://test
  -        log://test
  -
  -Routes
  -        route1
  -
  -Used Languages
  -----
  -
  -You can see the current Camel version used by the Camel context, some
  -context attributes, the components involved in the context, and the
  -endpoints defined.
  +You can see all the Camel commands by typing `camel:` and then pressing TAB key.
   
   TIP: use kbd:[TAB] key for completion on the Camel context name.
  -
  -[[Karaf-camel:context-start]]
  -== `camel:context-start`
  -
  -The `camel:context-start` command starts a given Camel context:
  -
  -[source,sh]
  -----
  -karaf@root> camel:context-start 66-camel-3
  -----
  -
  -TIP: use kbd:[TAB] key for completion on the Camel context name.
  -
  -[[Karaf-camel:context-stop]]
  -== `camel:context-stop`
  -
  -The `camel:context-stop` command stops a given Camel context. After
  -stopping the context it becomes unavailable and cannot be started again.
  -
  -[source,sh]
  -----
  -karaf@root> karaf@root> camel:context-stop 66-camel-3
  -----
  -
  -TIP: use kbd:[TAB] key for completion on the Camel context name.
  -
  -[[Karaf-camel:route-info]]
  -== `camel:route-info`
  -
  -The `camel:route-info` command provides detail information about a
  -Camel route:
  -
  -[source]
  -----
  -karaf@root> camel:route-info route1
  -Camel Route route1
  -        Camel Context: 66-camel-3
  -
  -Properties
  -                id = route1
  -                parent = 2e7aacc1
  -
  -Statistics
  -        Exchanges Total: 98
  -        Exchanges Completed: 98
  -        Exchanges Failed: 0
  -        Min Processing Time: 1ms
  -        Max Processing Time: 2ms
  -        Mean Processing Time: 1ms
  -        Total Processing Time: 134ms
  -        Last Processing Time: 1ms
  -        First Exchange Date: 2011-06-29 07:21:57
  -        Last Exchange Completed Date: 2011-06-29 07:23:34
  -
  -Definition
  -<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  -<route id="route1" xmlns="http://camel.apache.org/schema/spring">
  -    <from uri="timer:test"/>
  -    <to uri="log:test" id="to1"/>
  -</route>
  -----
  -
  -You can see some statistics (the number of processed exchanges, the
  -processing time, etc) and a XML rendering of your route (whatever DSL
  -used to define the route).
  -
  -TIP: use kbd:[TAB] key for completion on the route name.
  -
  -[[Karaf-camel:route-show]]
  -== `camel:route-show`
  -
  -The `camel:route-show` command renders the route in XML. It's
  -independent from the DSL used to define the route:
  -
  -[source]
  -----
  -karaf@root> camel:route-show route1
  -<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  -<route id="route1" xmlns="http://camel.apache.org/schema/spring">
  -    <from uri="timer:test"/>
  -    <to uri="log:test" id="to1"/>
  -</route>
  -----
  -
  -TIP: use kbd:[TAB] key for completion on the route name.
  -
  -[[Karaf-camel:route-start]]
  -== `camel:route-start`
  -
  -The `camel:route-start` command starts a Camel route:
  -
  -[source,sh]
  -----
  -karaf@root> camel:route-start route1
  -----
  -
  -TIP: use kbd:[TAB] key for completion on the route name.
  -
  -[[Karaf-camel:route-stop]]
  -== `camel:route-stop`
  -
  -The `camel:route-stop` command stops a Camel route:
  -
  -[source,sh]
  -----
  -karaf@root> camel:route-stop route1
  -----
  -
  -[[Karaf-Camel2.9ornewer]]
  -=== Camel 2.9 or newer
  -
  -[[Karaf-camel:route-suspend]]
  -== `camel:route-suspend`
  -
  -The `camel:route-suspend` command suspends a Camel route:
  -
  -[source,sh]
  -----
  -karaf@root> camel:route-suspend route1
  -----
  -
  -TIP: use kbd:[TAB] key for completion on the route name.
  -
  -[[Karaf-camel:route-resume]]
  -== `camel:route-resume`
  -
  -The `camel:route-resume` command resume a Camel route:
  -
  -[source,sh]
  -----
  -karaf@root> camel:route-resume route1
  -----
  -
  -TIP: use kbd:[TAB] key for completion on the route name.
  -
  -[[Karaf-Camel2.10ornewer]]
  -=== Camel 2.10 or newer
  -
  -[[Karaf-camel:endpoint-list]]
  -== `camel:endpoint-list`
  -
  -The `camel:endpoint-list` command displays the list of the endpoints
  -available in all camel contexts of the current Karaf instance:
  -
  -[source]
  -----
  -karaf@root> camel:endpoint-list
  -camel-id             uri                  Status
  -[test              ] [timer://test      ] [Started           ]
  -[test              ] [direct://A        ] [Started           ]
  -----
  -
  -It displays the context name/ID (used in others commands), the URI of
  -the endpoint and the current status (started/stopped).
  -
  -[[Karaf-Camel2.12.4ornewer]]
  -=== Camel 2.12.4 or newer
  -
  -[[Karaf-camel:context-suspend]]
  -== `camel:context-suspend`
  -
  -The `camel:context-suspend` command suspends a given Camel context.
  -It then may be resumed again.
  -
  -[source,sh]
  -----
  -karaf@root> karaf@root> camel:context-suspend 66-camel-3
  -----
  -
  -TIP: use kbd:[TAB] key for completion on the Camel context name.
  -
  -[[Karaf-camel:context-resume]]
  -== `camel:context-resume`
  -
  -The `camel:context-resume` command resumes a given Camel context.
  -After that it returns to the _started_ state.
  -
  -[source,sh]
  -----
  -karaf@root> karaf@root> camel:context-resume 66-camel-3
  -----
  -
  -TIP: use kbd:[TAB] key for completion on the Camel context name.
  
positive.code: 
  * Camel features descriptor allowing to easily and quickly install Camel
  in Karaf.
  * Karaf commands allowing you to view, start, stop, get info, about the
  Camel contexts and routes running in the Karaf instance. +
  
  NOTE: Karaf commands are available starting with Camel 2.8.0, and the
  commands was renamed in Camel 2.9.0.
  
  Here are the versions that are compatible:
  
  [width="100%",cols="1m,1m",options="header",]
  |============================
  |Camel Version |Karaf Version
  |2.2.0 |1.2.0
  |2.3.0 |1.3.0
  |2.4.0 |1.4.0
  |2.5.0 |2.1.0
  |2.7.0 |2.2.0
  |2.7.2 |2.2.2
  |2.8.2 |2.2.4
  |2.9.0 |2.2.5
  |2.10.0 |2.2.8
  |2.11.0 |2.3.1
  |2.12.0 |2.3.2
  |2.13.0 |2.3.3
  |2.14.0 |2.3.7
  |2.15.0 |2.4.0
  |2.23.0 |4.2
  |3.0    |4.3
  |============================
  
  [[Karaf-PreparingKarafforCamel]]
  == Preparing Karaf for Camel
  
  Camel uses several bundles to provide low level package, such as
  `javax.annotation` or `javax.xml.bind`.
  
  Due to that, we mustn't use the default system package coming from the
  JDK. It means that we need to _exclude_ some packages from system
  packages in order to use packages provided by tiers bundles.
  
  Camel provides a ready to use `config.properties` file that you can
  download:
  
  http://svn.apache.org/repos/asf/camel/tags/camel-2.7.2/platforms/karaf/features/src/main/resources/config.properties
  
  This file has to be copied into Karaf etc folder.
  
  TIP: *Karaf 2.2.5 or newer* +
  Notice that Karaf 2.2.5 now provides an extra configuration file that
  has been configured to work with Camel and CXF, so its recommended to
  use this file if you use Karaf 2.2.5 or newer. You can prepare Karaf by
  copying the `etc/jre.properties.cxf` and override the existing
  `etc/jre.properties` file.
  
  
  [[Karaf-InstallCamelinKaraf]]
  
negative.code: 
  [source,sh]
  ----
  karaf@root> features:repo-add camel 2.24.2
  ----
  
  where 2.24.2 is the Camel version
  
  Now, we have all Camel features available:
  
  To install Camel, just install the `camel` feature:
  
  