Camel Persistent Aggregate
==========================

This example shows how to use the new feature in Camel 2.3 which is an overhauled
Aggregator EIP which also support persistent store.

The example can be run using Maven.

Its an interactive example where you can type in some numbers which then are aggregated.

You will need to compile this example first:
  mvn compile

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

To stop the example hit ctrl + c
If you restart the example you should notice how it remember the aggregated values, as it
uses a persistent store.

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

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

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

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



