Camel 2.8.0 new features for Karaf/ServiceMix
Camel provides Karaf features descriptor since quite a long time now. But Camel 2.8.0 will include new Karaf features very useful and turning Karaf and ServiceMix as the main container to run Camel.
Install Camel in Karaf
Installing Camel in Karaf is very simple as a features descriptor is provided. It means that you can register the Camel features descriptor in your running Karaf instance:
karaf@root> features:addurl mvn:org.apache.camel.karaf/apache-camel/2.8.0/xml/features
Now, you have the 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
Deploy Camel features
To start using Camel in Karaf, you have to install at least the camel feature:
root@karaf> features:install camel
Depending of your requirements, you will certainly install others Camel features.
For instance, if you use Blueprint Camel DSL, you have to install the camel-blueprint feature:
root@karaf> features:install camel-blueprint
or, if you use stream component in an endpoint (for instance “stream:out”), you will install the camel-stream feature:
root@karaf> features:install camel-stream
Camel and OSGi
When Camel is used in an OSGi environment, it automatically exposes CamelContexts as OSGi services. It means that, when you deploy a route, the associated CamelContext is available for OSGi bundles.
You can look up for CamelContext OSGi services with this small code snippet:
ServiceReference[] references = bundleContext.getServiceReferences(CamelContext.class.getName(), null);
if (references != null) {
for (ServiceReference reference : references) {
if (reference != null) {
CamelContext camelContext = (CamelContext) bundleContext.getService(reference);
if (camelContext != null) {
// do what you want on the CamelContext
}
}
}
}
Camel Karaf commands
Camel 2.8.0 provides a set of Karaf commands which allow you to get information, start, stop about Camel contexts and routes.
- camel:list-contexts displays the list of Camel context currently available in the running Karaf/ServiceMix instance
- camel:list-routes displays the list of Camel routes currently available in the running Karaf/ServiceMix instance
- camel:start-context starts a Camel context
- camel:stop-context stops a Camel context
- camel:info-context display detailed information about a Camel context
- camel:start-route starts a Camel route
- camel:stop-route stops a Camel route
- camel:show-route displays the XML rendering of a Camel route (whatever your route DSL is)
- camel:info-route displays detailed information about a Camel route including statistics
Comments
Post a Comment