| :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. |