...
Apache ServiceMix Kernel is a small OSGi based runtime which provides a lightweight container onto which various bundles can be deployed. Now you can deploy your route rule into it to leverage the power of OSGi.
Tip | ||
---|---|---|
| ||
For further details see the ServiceMix Kernel Quick Start Guide and this great tutorial on using Camel in any OSGi container. |
An example: to convert ServiceMix Kernel into an Apache Camel route container, we just type these three commands in the kernel's console to install the basic required bundles:
Code Block |
---|
osgi install -s mvn:org.apache.geronimo.specs/geronimo-activation_1.1_spec/1.0.2 osgi install -s mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.0/1.1.0 osgi install -s mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxb-api-2.1/1.1.0 osgi install -s mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-impl/2.1.6_1 |
And these commands for the Camel related bundles:
Code Block |
---|
osgi install -s mvn:org.apache.camel/camel-core/1.5.0 osgi install -s mvn:org.springframework/spring-tx/2.5.5 osgi install -s mvn:org.apache.camel/camel-corespring/1.5.0 osgi install -s mvn:org.apache.camel/camel-springosgi/1.5.0 |
This will get the bundles from a local or remote Maven repository, install and start them. Once this is done, you can just create a simple XML file containing the route definitions in the deploy and kernel's file monitor will install and deploy them. You can check the log file with the log d
command to see the route in action.
Code Block | ||
---|---|---|
| ||
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://activemq.apache.org/camel/schema/spring http://activemq.apache.org/camel/schema/spring/camel-spring.xsd"> <camelContext xmlns="http://activemq.apache.org/camel/schema/spring"> <route> <from uri="timer://myTimer?fixedRate=true&period=2000"/> <to uri="log:demo?showBodyType=false"/> </route> </camelContext> </beans> |