== Cafe Example

=== Introduction

This example shows how to work with splitter and aggregator to implement
a Cafe demo.

First It uses the splitter to dispatch the order, then sends the orders
to barista by checking if the coffee is hot or cold. When the coffee is
ready, we use a aggregate to gather the drinks for waiter to deliver.

=== Build

You will need to compile this example first:

....
mvn compile
....

=== Run

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

=== Help and contributions

If you hit any problem using Camel or have some feedback, then please
https://camel.apache.org/support.html[let us know].

We also love contributors, so
https://camel.apache.org/contributing.html[get involved] :-)

The Camel riders!
