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.
|
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 type these commands in the kernel's console to install the basic required bundles:
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:
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-spring/1.5.0 osgi install -s mvn:org.apache.camel/camel-osgi/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.
<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>
|