Karaf user guide Asciidoc documentation
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/ae50d660 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/ae50d660 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/ae50d660 Branch: refs/heads/master Commit: ae50d6602e79b7cfc73f552c7c55c7e2e22e41c7 Parents: dffb0d6 Author: Antonin Stefanutti <anto...@stefanutti.fr> Authored: Mon Feb 8 18:36:55 2016 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Tue Feb 9 08:38:58 2016 +0100 ---------------------------------------------------------------------- docs/user-manual/en/SUMMARY.md | 3 + docs/user-manual/en/karaf.adoc | 528 ++++++++++++++++++++++++++++++++++++ 2 files changed, 531 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/ae50d660/docs/user-manual/en/SUMMARY.md ---------------------------------------------------------------------- diff --git a/docs/user-manual/en/SUMMARY.md b/docs/user-manual/en/SUMMARY.md index 36e57b4..3d25860 100644 --- a/docs/user-manual/en/SUMMARY.md +++ b/docs/user-manual/en/SUMMARY.md @@ -118,3 +118,6 @@ * Data Formats * [XML JSON](xmljson.adoc) + +* User Guide + * [Karaf](karaf.adoc) http://git-wip-us.apache.org/repos/asf/camel/blob/ae50d660/docs/user-manual/en/karaf.adoc ---------------------------------------------------------------------- diff --git a/docs/user-manual/en/karaf.adoc b/docs/user-manual/en/karaf.adoc new file mode 100644 index 0000000..6b03f55 --- /dev/null +++ b/docs/user-manual/en/karaf.adoc @@ -0,0 +1,528 @@ +:experimental: + +[[Karaf-KarafSupport]] +Karaf Support +~~~~~~~~~~~~~ + +Apache Camel is designed to work nicely into +http://karaf.apache.org[Apache Karaf] OSGi container. + +It includes: + +* 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 +|============================ + +[[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]] +Install Camel in Karaf +~~~~~~~~~~~~~~~~~~~~~~ + +Assuming that you have a running Karaf instance, you can register the +Camel features descriptor: + +[source,sh] +---- +karaf@root> features:addurl mvn:org.apache.camel.karaf/apache-camel/2.8.2/xml/features +---- + +From Karaf 2.2.6 onwards this has been simplified as there is a new +`features:chooseurl` command that is pre-setup for Camel: + +[source,sh] +---- +karaf@root> features:chooseurl camel 2.9.1 +---- + +Now, we have all Camel features available: + +[source,sh] +---- +karaf@root> features:list|grep -i camel +[uninstalled] [2.8.0 ] camel repo-0 +[uninstalled] [2.8.0 ] camel-core repo-0 +[uninstalled] [2.8.0 ] camel-spring repo-0 +[uninstalled] [2.8.0 ] camel-blueprint repo-0 +[uninstalled] [2.8.0 ] camel-test repo-0 +[uninstalled] [2.8.0 ] camel-cxf repo-0 +[uninstalled] [2.8.0 ] camel-cache repo-0 +[uninstalled] [2.8.0 ] camel-castor repo-0 +[uninstalled] [2.8.0 ] camel-crypto repo-0 +[uninstalled] [2.8.0 ] camel-http repo-0 +[uninstalled] [2.8.0 ] camel-http4 repo-0 +[uninstalled] [2.8.0 ] camel-mina repo-0 +[uninstalled] [2.8.0 ] camel-jetty repo-0 +[uninstalled] [2.8.0 ] camel-servlet repo-0 +[uninstalled] [2.8.0 ] camel-jms repo-0 +... +---- + +To install Camel, just install the `camel` feature: + +[source,sh] +---- +karaf@root> features:install camel +---- + +You have to install the Camel features depending of your requirements. + +For instance, if you want to use blueprint as Camel DSL, you have to +install the `camel-blueprint` feature: + +[source,sh] +---- +karaf@root> features:install camel-blueprint +---- + +If, in your route, you use an endpoint like `stream:out`, you have to +install the `camel-stream` feature: + +[source,sh] +---- +karaf@root> features: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-camel:context-list]] +`camel:context-list` +^^^^^^^^^^^^^^^^^^^^ + +The `camel:context-list` command displays the list of Camel contexts +available in the current Karaf instance: + +[source,sh] +---- +karaf@root> camel:context-list +Name Status Uptime +[66-camel-3 ] [Started ] [14.559 seconds ] +---- + +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-camel:route-list]] +`camel:route-list` +^^^^^^^^^^^^^^^^^^ + +The `camel:route-list` command displays the list of Camel routes +available in the current Karaf instance: + +[source,sh] +---- +karaf@root> camel:route-list +[route1 ] +---- + +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. + +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.