Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Update to supported camel versions. Delete some superficial descriptions

 

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.02.3.3
2.14.02.3.7
2.15.02.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:

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.

...

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

...

.

...

Description

Command

camel:endpoint-list

Lists endpoints fromm all camel contexts available in the current Karaf instance

Karaf commands in Camel 2.11 onwards

Command

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

Description

Command

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.