Console Example
===============

This is a simple example that shows how to get started with Camel.

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 XML in the directory:
  src/main/resources/META-INF/spring

To stop the example hit ctrl + c

You can also run the example from your editor such as Eclipse, IDEA etc,
by opening the org.apache.camel.example.console.CamelConsoleMain class
and then right click, and chose run java application.

This example is documented at
  http://camel.apache.org/console-example.html

If you hit any problems please talk to us 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!
