Apache ServiceMix 4.2 includes Apache Camel 2.2.0. The following steps outline how you can add Apache Camel 2.3.0 in the same ServiceMix instance. This example uses the versions as released by Progress Fuse.
Go to the ServiceMix console, either by starting servicemix, or by ssh-ing into ServiceMix. To install Camel 2.3 we need to add a features repository. You can list the currently registered repositories using features:listUrl:
karaf@root> features:listUrl
mvn:org.apache.servicemix.nmr/apache-servicemix-nmr/1.2.0-fuse-01-00/xml/features
mvn:org.apache.felix.karaf/apache-felix-karaf/1.4.0-fuse-01-00/xml/features
mvn:org.apache.servicemix/apache-servicemix/4.2.0-fuse-01-00/xml/features
mvn:org.apache.camel.karaf/apache-camel/2.2.0-fuse-01-00/xml/features
mvn:org.apache.ode/ode-jbi-karaf/1.3.3-fuse-01-00/xml/features
Add the URL for the Camel 2.3.0 repository:
karaf@root> features:addUrl
mvn:org.apache.camel.karaf/apache-camel/2.3.0-fuse-01-00/xml/features
Verify that the repository has been added:
karaf@root> features:listUrl
mvn:org.apache.servicemix.nmr/apache-servicemix-nmr/1.2.0-fuse-01-00/xml/features
mvn:org.apache.felix.karaf/apache-felix-karaf/1.4.0-fuse-01-00/xml/features
mvn:org.apache.camel.karaf/apache-camel/2.3.0-fuse-01-00/xml/features
mvn:org.apache.servicemix/apache-servicemix/4.2.0-fuse-01-00/xml/features
mvn:org.apache.camel.karaf/apache-camel/2.2.0-fuse-01-00/xml/features
mvn:org.apache.ode/ode-jbi-karaf/1.3.3-fuse-01-00/xml/features
Using features:list you can see that new features are now available for installation:
karaf@root> features:list
State Version Name Repository
...
[uninstalled] [2.3.0-fuse-01-00 ] camel repo-0
[uninstalled] [2.3.0-fuse-01-00 ] camel-core repo-0
[uninstalled] [2.3.0-fuse-01-00 ] camel-spring-osgi repo-0
[uninstalled] [2.3.0-fuse-01-00 ] camel-test repo-0
[uninstalled] [2.3.0-fuse-01-00 ] camel-cxf repo-0
[uninstalled] [2.3.0-fuse-01-00 ] camel-cache repo-0
[uninstalled] [2.3.0-fuse-01-00 ] camel-castor repo-0
[uninstalled] [2.3.0-fuse-01-00 ] camel-crypto repo-0
[uninstalled] [2.3.0-fuse-01-00 ] camel-dozer repo-0
[uninstalled] [2.3.0-fuse-01-00 ] camel-http repo-0
[uninstalled] [2.3.0-fuse-01-00 ] camel-http4 repo-0
[uninstalled] [2.3.0-fuse-01-00 ] camel-mina repo-0
[uninstalled] [2.3.0-fuse-01-00 ] camel-jetty repo-0
[uninstalled] [2.3.0-fuse-01-00 ] camel-servlet repo-0
...
Install camel using features:install:
karaf@root> features:install camel-core 2.3.0-fuse-01-00
You can verify that the camel osgi bundle has been installed using osgi:list:
karaf@root> osgi:list
START LEVEL 100
ID State Blueprint Spring Level Name
[ 0] [Active ] [ ] [ ] [ 0] OSGi System Bundle (3.5.1.R35x_v20090827)
...
[ 180] [Active ] [ ] [ ] [ 60] Apache ServiceMix Specs :: ACTIVATION API 1.4 (1.5.0)
[ 181] [Active ] [ ] [ ] [ 60] Apache ServiceMix Specs :: JAXB API 2.1 (1.5.0)
[ 182] [Active ] [ ] [ ] [ 60] Apache ServiceMix Specs :: STAX API 1.0 (1.5.0)
[ 183] [Active ] [ ] [ ] [ 60] camel-core (2.3.0.fuse-01-00)
The steps outlined above will not work if you need to go through a proxy. One way to fix this is by adding your proxy settings in %SERVICEMIX_HOME%/bin/servicemix.bat:
set JAVA_OPTS=-Dhttp.proxyHost=host -Dhttp.proxyPort=8080 -Dhttp.proxyUser=user -Dhttp.proxyPassword=password -Dhttp.nonProxyHosts=*.local