tree: 5ec3dd6729a12f25b375291d9ccbf98e10d94c72 [path history] [tgz]
  1. src/
  2. pom.xml
  3. Readme.md
examples/camel-example-reload/Readme.md

Camel Example Reload

This example runs a Camel Standalone application where the routes are defined in Camel XML files located in src/main/resources/camel/myroutes.xml.

At runtime you can modify this file in the source code and then Camel will automatic reload the route on-the-fly.

The reload only applies to Camel routes, eg the <route> elements inside <camelContext>. For changes to Spring or OSGi Blueprint <bean>s or Java code, then alternative reload strategies can be used. For example Spring Boot has a live reload tool, which you can try with the camel-example-spring-boot-live-reload example. OSGi Blueprint can be reloaded using Karaf container where you can run the dev:watch * command and then rebuild your code with mvn install which triggers Karaf to redeploy the bundle when the SNAPSHOT jar is updated in the local Maven repository.

How to try

You need to build the example first with

mvn compile

Then you can run it from Maven

mvn camel:run

Reload changes

When the example is running then try to modify the XML file such as changing the message to be Bye World

  <transform>
    <constant>Bye World</constant>
  </transform>

You modify the source file directory in the src/main/resources/camel/ directory

Enabling live reload

Live reload is enabled in the camel-maven-plugin as shown below:

  <plugin>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-maven-plugin</artifactId>
    <version>${project.version}</version>
    <configuration>
      <!-- turn on reload when the XML file is updated in the source code -->
      <fileWatcherDirectory>src/main/resources/META-INF/spring</fileWatcherDirectory>
    </configuration>
  </plugin>