== Cafe Example with Endpoint DSL

=== Introduction

This example uses the Camel Endpoint DSL to configure Camel endpoints
using a type-safe Java endpoint DSL (eg fluent builder style).

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.

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!
