You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

camel:run

The camel:run goal of the Camel Maven Plugin is used to run your Camel Spring configurations in a forked JVM from Maven. A good example application to get you started is the Spring Example.

cd examples/camel-example-spring
mvn camel:run

This makes it very easy to spin up and test your routing rules without having to write a main(String[]) method; it also lets you create multiple jars to host different sets of routing rules and easily test them independently.

How this works is that the plugin will compile the source code in the maven project, then boot up a Spring ApplicationContext using the XML confiuration files on the classpath at

META-INF/spring/*.xml

From Camel 2.10 onwards the camel:run plugin also supports running Blueprint application, and by default it scans for OSGi blueprint files in

OSGI-INF/blueprint/*.xml

This allows you to boot up any Spring services you wish; whether they are Camel related or any other Spring POJOs or Blueprint.

If you want to boot up your Camel routes a little faster, you could try the camel:embedded instead.

About DOT generation

camel:run will by default try to run dot generation to generate Visualisation diagrams.
This feature could in some rare cases cause the application to hang, so its by default disabled in Camel 1.6.1 or newer.

To enable it you should configure the useDot parameter:

      <plugin>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-maven-plugin</artifactId>
        <configuration>
          <useDot>true</useDot>
        </configuration>
      </plugin>    

Logging classpath being used

From Camel 2.10 onwards you can configure whether the classpath should be logged when camel:run runs. In older releases the classpath is always logged.
This can be verbose and noisy, so from Camel 2.10 onwards, the classpath is not logged anymore. You can enable this in the configuration using:

      <plugin>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-maven-plugin</artifactId>
        <configuration>
          <logClasspath>true</logClasspath>
        </configuration>
      </plugin>    
  • No labels