After writing my post about setting up Apache CXF in OSGi, I’ve had a couple people ask about how to do the same with Apache Camel. Camel is a bit more complex due to all the libraries that it may pull in depending on which components you use, but it’s not really that much more complex.
As with CXF, the easiest way to get it up and running would be to grab a distribution that has it ready to go. Again, I’d recommend either the Talend Integration Factory or Talend ESB. Both have Apache Camel, Apache CXF and Apache ActiveMQ pre setup to run and everything well configured. The more popular Camel components are pre-installed with their dependencies making it fairly easy to get started.
That said, setting up your own instance is really not that hard.
- Follow steps 1-3 from my post about setting up Apache CXF in OSGi. This gets Karaf setup and ready.
- From the Karaf command line, run:
features:addurl mvn:org.apache.activemq/activemq-karaf/5.5.0/xml/features features:addurl mvn:org.apache.cxf.karaf/apache-cxf/2.5.0/xml/features features:addurl mvn:org.apache.camel.karaf/apache-camel/2.8.2/xml/features
That will add the ActiveMQ, CXF, and Camel features into Karafs feature resolver.
- If you plan on using JMS, it’s recommended to install the ActiveMQ features first. From the Karaf command line, run:
features:install activemq features:install activemq-spring (if you use spring)
- Next up would be CXF if you plan on using the CXF components. Again, from the Karaf command line, run:
- Finally, install the Camel components you are interested in using:
features:install camel-core features:install camel-spring features:install camel-jms features:install camel-cxf etc...
You can get a list of the Camel features by doing a “features:list | grep camel” from the Karaf command line.
That’s pretty much all there is to it. It’s not hard. 🙂 It’s now all setup! To try it out, I’d once again grabbing the samples package from Talend Integration Factory. There are several examples in there on how to do various Camel things, all running in OSGi.