Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

How

...

Do I Import Routes From Other XML Files?

Available as of Camel 2.3

...

In Camel 2.3 it is now possible to define routes outside <camelContext/> which you do in a new <routeContext/> tag.

...

...

Notice: When you

...

use <routeContext> then they are separated, and cannot reuse existing <onException>, <intercept>, <dataFormats> and similar cross cutting functionality defined in the <camelContext>. In other words

...

the <routeContext> is currently isolated. This may change in Camel 3.x.

For example we could have a file named myCoolRoutes.xml which contains a couple of routes as shown:

...

{snippet:id=e1|lang=xml|title=myCoolRoutes.xml|url=camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/config/myCoolRoutes.xml}

...

Then in your XML file which contains the CamelContext you can use Spring to import the myCoolRoute.xml file.
And then inside <camelContext/> you can refer to the <routeContext/> by its its id as shown below:

...

{snippet:id=e1|lang=xml|url=camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/config/RouteRefIncludeXmlFileTest.xml}

...

Also notice that you can mix and match, having routes inside inside CamelContext and also externalized in RouteContext.

You can have as many <routeContextRef/> as you like.

...

...

The routes defined in <routeContext/> can be reused by multiple <camelContext/>. However its only the definition which is reused. At runtime

...

each CamelContext will create its own instance of the route based on the definition.