Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Camel now supports configuring two aspects:

  • auto startup
  • order of starting routes

Configuring whether Camel should be auto started or not in XML DSL

The old option shouldStartContext have been removed and replaced with this new autoStartup option instead. What it allows is to configure Camel to not auto start when Spring starts.

...

Code Block
    ApplicationContext ac = ...
    SpringCamelContext camel = (SpringCamelContext) ac.getBean("myCamel");
    
    // now start Camel manually
    camel.start();

Configuring whether a route should be started or not in XML DSL

You can use the autoStartup option to configure if a given route should be started when Camel starts. By default a route is auto started.

You can disable or enable it as follows:

...

...


from("activemq:queue:special").noAutoStartup().to("file://backup");

And to explicit state it should be started

Code Block

from("activemq:queue:special").autoStartup().to("file://backup");

In XML DSL you define it as follows:

...

Code Block
xml
xml
<route autoStartup="true">
   <from uri="activemq:queue:special"/>
   <to uri="file://backup"/>
</route>

Configuring whether a route should be started or not in Java DSL

You can use the autoStartup option to configure if a given route should be started when Camel starts. By default a route is auto started.

You can disable or enable it as follows:

Code Block

from("activemq:queue:special").noAutoStartup().to("file://backup");

Configuring whether a route should be started or not, using a boolean or String, in Java DSL

Available as of Camel 2.9

To startup based on a boolean, String or Property, do one of the following:

Code Block

boolean startupRoute = true;   
from("activemq:queue:special").autoStartup(startupRoute).to("file://backup");
...
String startupRoute = "true";   
from("activemq:queue:special").autoStartup(startupRoute).to("file://backup");
...
from("activemq:queue:special").autoStartup("{{startupRouteProperty}}").to("file://backup");

Configuring starting order for routes

...

It can help in cases where routes are inter dependent on each other and also help with graceful shutting down Camel as Camel can stop the routes in the correct order as well.

Info
titleStopping routes

Camel 2.2: Camel will stop the routes in the same order in which they was that they were started.
Camel 2.3: Camel will stop the routes in the reverse order that they were started.

Examples

Lets try a couple of examples

...

Code Block
    from("seda:foo").startupOrder(21).to("mock:result");
    from("direct:start").startupOrder(12).to("seda:foo");

And the same example with XML DSL:

Code Block
xml
xml
    <route startupOrder="21">
        <from uri="seda:foo"/>
        <to uri="mock:result"/>
    </route>

    <route startupOrder="12">
        <from uri="direct:start"/>
        <to uri="seda:foo"/>
    </route>

In this example we have two routes in which we have started that the direct:start route should be started before the after the seda:foo route.
As direct:start is consider the input and we want that seda:foo route to be up and running beforehand.

You can also mix and match routes with and without startupOrder define.

...

Code Block
    from("seda:foo").startupOrder(21).to("mock:result");
    from("direct:start").startupOrder(12).to("seda:foo");

    from("direct:bar").to("seda:bar");

...

Code Block
xml
xml
    <route startupOrder="21">
        <from uri="seda:foo"/>
        <to uri="mock:result"/>
    </route>

    <route startupOrder="12">
        <from uri="direct:start"/>
        <to uri="seda:foo"/>
    </route>

    <route>
        <from uri="direct:bar"/>
        <to uri="seda:bar"/>
    </route>

...

So you can use this to your advantage to only assign a startupOrder on the routes which really needs it.

Shutdown

Camel 2.2: Camel will shutdown the routes in the same order that they were started.
Camel 2.3: Camel will shutdown the routes in the reverse order that they were started.

as they was started. See also Graceful Shutdown.

See also