Karaf SupportApache Camel is designed to work nicely into Apache Karaf OSGi container. It includes:
Here are the versions that are compatible.
Preparing Karaf for CamelCamel 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: This file has to be copied into Karaf etc folder.
Install Camel in KarafAssuming 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.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 karaf@root> features:chooseurl camel 2.9.1 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 commandsWhen you install the camel feature, new Karaf commands become available automatically. Karaf commands in Camel 2.8.x
Karaf commands in Camel 2.9 onwards
Karaf commands in Camel 2.10 onwards
Karaf commands in Camel 2.11 onwards
camel:context-listThe *camel:context-list* command displays the list of CamelContext available in the current Karaf instance: 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-listThe *camel:route-list* command displays the list of Camel routes available in the current Karaf instance: karaf@root> camel:route-list [route1 ] You can also filter the routes by CamelContext: karaf@root> camel:route-list 66-camel-3 [route1 ] Tip: use the TAB key to completion on the CamelContext ID. camel:info-contextThe *camel:context-info* command displays detail information about a given CamelContext: add the *--verbose* option (following the context name) to also list the endpoints
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 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-startThe *camel:context-start* command starts a given CamelContext: karaf@root> camel:context-start 66-camel-3 Tip: use TAB key for completion on the CamelContext name. camel:context-stopThe *camel:context-stop* command stops a given CamelContext: karaf@root> karaf@root> camel:context-stop 66-camel-3 Tip: use TAB key for completion on the CamelContext name. camel:route-infoThe *camel:route-info* command provides detail information about a Camel route:
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 TAB key for completion on the route name. camel:route-showThe *camel:route-show* command renders the route in XML. It's independent from the DSL used to define the route: 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 TAB key for completion on the route name. camel:route-startThe *camel:route-start* command starts a Camel route: karaf@root> camel:route-start route1 Tip: use TAB key for completion on the route name. camel:route-stopThe *camel:route-stop* command stops a Camel route: karaf@root> camel:route-stop route1 Camel 2.9 or newer:camel:route-suspendThe *camel:route-suspend* command suspends a Camel route: karaf@root> camel:route-suspend route1 Tip: use TAB key for completion on the route name. camel:route-resumeThe *camel:route-resume* command resume a Camel route: karaf@root> camel:route-resume route1 Tip: use TAB key for completion on the route name. Camel 2.10 or newer:camel:endpoint-listThe *camel:endpoint-list* command displays the list of the endpoints available in all camel contexts of the current Karaf instance: 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). |