Child pages
  • How to run Camel in a osgi container
Skip to end of metadata
Go to start of metadata

Run Camel With ServiceMix Kernel

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.

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>

See Also

  • No labels

2 Comments

  1. and if I wanted to use other routes (like iBatis) that require different files? How can I deploy the project to smx kernel?

  2. please correct "osgi install" with osgi/install"

    is it possibile to update the page for camel release 1.6.0?