You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Karaf Support

Apache Camel is designed to work nicely into 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.
    NB: Karaf commands are available starting with Camel 2.8.0.

Install Camel in Karaf

Assuming that you have a running Karaf instance, you can register the Camel features descriptor:

karaf@root> features:addurl mvn:org.apache.camel.karaf/apache-camel/2.8.0/xml/features

Now, we have all Camel features available:

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:

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:

karaf@root> features:install camel-blueprint

If, if your route, you use an endpoint like "stream:out", you have to install the camel-stream feature:

karaf@root> features:install camel-stream

Karaf commands

When you install the camel feature, new Karaf commands become available automatically.

camel:list-contexts

The *camel:list-contexts* command displays the list of CamelContext available in the current Karaf instance:

karaf@root> camel:list-contexts 
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:list-routes

The *camel:list-routes* command displays the list of Camel routes available in the current Karaf instance:

karaf@root> camel:list-routes 
[route1              ]

You can also filter the routes by CamelContext:

karaf@root> camel:list-routes 66-camel-3 
[route1              ]

Tip: use the TAB key to completion on the CamelContext ID.

camel:info-context

The *camel:info-context* command displays detail information about a given CamelContext:

karaf@root> camel:info-context 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 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:start-context

The *camel:start-context* command starts a given CamelContext:

karaf@root> camel:start-context 66-camel-3

Tip: use TAB key for completion on the CamelContext name.

camel:stop-context

The *camel:stop-context* command stops a given CamelContext:

karaf@root> karaf@root> camel:stop-context 66-camel-3

Tip: use TAB key for completion on the CamelContext name.

camel:info-route

The *camel:info-route* command provides detail information about a Camel route:

karaf@root> camel:info-route 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 TAB key for completion on the route name.

camel:show-route

The *camel:show-route* command renders the route in XML. It's independent from the DSL used to define the route:

karaf@root> camel:show-route 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 TAB key for completion on the route name.

camel:start-route

The *camel:start-route* command starts a Camel route:

karaf@root> camel:start-route route1

Tip: use TAB key for completion on the route name.

camel:stop-route

The *camel:stop-route* command stops a Camel route:

karaf@root> camel:stop-route route1

Tip: use TAB key for completion on the route name.

  • No labels