Extract Transform Load (ETL) Example
====================================

This example shows how to use Camel as an ETL tool
  http://camel.apache.org/etl.html

For a full description of this example please see
  http://camel.apache.org/etl-example.html

You will need to compile this example first:
  mvn compile

To run the example type
  mvn camel:run

You can see the routing rules by looking at the java code in the src/main/java
directory and the Spring XML configuration lives in
  src/main/resources/META-INF/spring

To stop the example hit ctrl + c


If you hit any problems please let us know on the Camel Forums
  http://camel.apache.org/discussion-forums.html

Please help us make Apache Camel better - we appreciate any feedback you may
have.  Enjoy!

------------------------
The Camel riders!
