POJO Messaging Example
======================

This example shows that you don't need to learn Camel's super cool DSLs 
if you don't want to. Camel has a set of annotations that allow you to 
produce, consume or route messages to endpoints. 

The example should run if you type
  mvn compile camel:run

To stop the example hit ctrl + c

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

If you hit an 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!
