Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Using servicemix-camel in embedded mode

This component is both a JBI component and a camel component, which means that when embedding servicemix-camel in a non JBI compliant way (in an embedded ServiceMix configuration for example), the component must be configured in a specific way:

Code Block
langxml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xbean.org/schemas/spring/1.0" 
       xmlns:sm="http://servicemix.apache.org/config/1.0" 
       xmlns:bean="http://servicemix.apache.org/bean/1.0" 
       xmlns:camel="http://activemq.apache.org/camel/schema/spring" 
       xmlns:myproject="http://my.namespace.com/"> 

  <!-- the JBI container --> 
  <sm:container id="jbiContainer" embedded="true">
    <sm:components>
      <ref id="jbi" />
    </sm:components>
    <sm:endpoints>
      <bean:endpoint service="myproject:tracker" endpoint="tracker" bean="#tracker" />
    </sm:endpoints>
  </sm:container>

  <bean id="jbi" class="org.apache.servicemix.camel.CamelJbiComponent" /> 

  <camelContext id="camelContext" useJmx="true" xmlns="http://activemq.apache.org/camel/schema/spring">
    <package>my.project.routeBuilders</package> 
  </camelContext> 

</beans>

Note that the servicemix-camel component (CamelJbiComponent) has to be defined as a top level bean under the id jbi so that camel can recognize it as a camel component.