blob: e97f59a56beef526befb40d4de7b2ace833509d7 [file] [log] [blame]
h2. Deploy as an OSGi bundle with Spring
Using an OSGi bundle to deploy your Camel routes allows you to use the Java or Scala DSL for defining your routes.
In this case, you're using Spring to start your Camel routes, so you include your Spring XML file (e.g. {{camel-context.xml}}) in the {{META-INF/spring}} folder inside your bundle.
{pygmentize:lang=text}
+ <bundle classes, incl. your RouteBuilder>
\- META-INF
|- MANIFEST.MF
\- spring
\- camel-context.xml
{pygmentize}
After the bundle has been activated, the Spring DM extender will find, create and start your Spring ApplicationContexts.
h3. Example: Referring to Java or Scala RouteBuilder classes
If your RouteBuilder classes have been defined in the {{org.apache.servicemix.manual.camel}} package, the file would look like this:
{pygmentize:lang=xml}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:camel="http://camel.apache.org/schema/spring"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring-${camel-version}.xsd">
<camelContext xmlns="http://camel.apache.org/schema/spring">
<package>org.apache.servicemix.manual.camel</package>
</camelContext>
</beans>
{pygmentize}
h3. Example in the distribution
Another example for using this deployment option can be found in the {{camel-osgi}} example that is shipped with Apache ServiceMix.