Karaf Support
Apache Camel is designed to work nicely into inside Apache Karaf OSGi container.
...
- 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.
NB: 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.
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 |
Preparing Karaf for Camel
...
- .
...
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:
This file has to be copied into Karaf etc folder.
...
title | Karaf 2.2.5 or newer |
---|
...
It is recommended to use at least Apache Karaf 4.x with current Camel versions.
Install Camel in Karaf
Assuming that you have a running Karaf instance, you can register the Camel features descriptor:
Code Block |
---|
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
Code Block |
---|
karaf@root> features:chooseurlfeature:repo-add camel 2.918.14 |
Now, we have all Camel features available:
Code Block |
---|
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:It is a good start to at least install camel-blueprint
Code Block |
---|
karaf@root> features:install camel-blueprint
|
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:
Code Block |
---|
karaf@root> features:install camel-blueprint
|
If, if your route, you use an endpoint like "stream:out", you have to install might need other features depending on what components you use in your routes. So for example if you use stream:out then you need the camel-stream feature:.
Code Block |
---|
karaf@root> features:install camel-stream |
Karaf commands
When you install the camel feature, new Karaf commands become available automatically.
Karaf commands in Camel 2.8.x
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. |
...
The camel commands below help managing your integrations. In many cases the commands support tab completion for context and route names.
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. |
...
. |
...
Command | Description|
---|---|
camel:endpoint-list | Lists endpoints fromm all camel contexts available in the current Karaf instance |
Karaf commands in Camel 2.11 onwards
Description | |
---|---|
camel:route-profile | To profile route(s) |
camel:route-reset-stats | To reset performance stats on the given route(s) |
Karaf commands in Camel 2.12.4 onwards
Command | Description|
---|---|
camel:context-suspend | Suspends the given Camel context |
camel:context-resume | Resumes the given Camel context |
camel:context-list
The *camel:context-list* command displays the list of CamelContext available in the current Karaf instance:
Code Block |
---|
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).
camel:route-list
...
camel:route-list
Code Block |
---|
karaf@root> camel:route-list [route1 ] |
...
Tip: use the TAB key to completion on the CamelContext ID.
...
The *
camel:context-info
Displays detailed * command displays detail information about a given CamelContext:
...
You can see the current Camel version used by the CamelContext, some context attributes, the components involved in the context, and the endpoints defined.
Tip: use TAB key for completion on the CamelContext name.
camel:context-start
The *camel:context-start* command starts a given CamelContext:
Code Block |
---|
karaf@root> camel:context-start 66-camel-3
|
Tip: use TAB key for completion on the CamelContext name.
camel:context-stop
The *camel:context-stop* command stops a given CamelContext. After stopping the context it becomes unavailable and cannot be started again.
...
Tip: use TAB key for completion on the CamelContext name.
...
Tip: use TAB key for completion on the route name.
camel:route-
...
The *camel:route-start* command starts a Camel route:
Code Block |
---|
karaf@root> camel:route-start route1
|
Tip: use TAB key for completion on the route name.
camel:route-stop
The *camel:route-stop* command stops a Camel route:
Code Block |
---|
karaf@root> camel:route-stop route1
|
Camel 2.9 or newer:
camel:route-suspend
The *camel:route-suspend* command suspends a Camel route:
...
Tip: use TAB key for completion on the route name.
...
.
...
camel:endpoint-list
The *camel:endpoint-list* command displays the list of the endpoints available in all camel contexts of the current Karaf instance:
...
It displays the context name/ID (used in others commands), the URI of the endpoint and the current status (started/stopped).
Camel 2.12.4 or newer:
camel:context-suspend
The *camel:context-suspend* command suspends a given CamelContext. It then may be resumed again.
Code Block |
---|
karaf@root> karaf@root> camel:context-suspend 66-camel-3
|
Tip: use TAB key for completion on the CamelContext name.
camel:context-resume
The *camel:context-resume* command resumes a given CamelContext. After that it returns to the started state.
Code Block |
---|
karaf@root> karaf@root> camel:context-resume 66-camel-3
|
Tip: use TAB key for completion on the CamelContext name.