== Widget and Gadget Example - XML

=== Introduction

This example shows the Widget and Gadget use-case from the Enterprise
Integration Patterns book.

The example provides a simple order system, where incoming orders, is
routed to either a widget or gadget inventory system, for further
processing. The example uses the most famous pattern from the EIP book,
which is the Content Based Router.

The example is implemented in Spring XML only without using any kind of
_application server_ but or Java code.

==== Camel component used in this example

* camel-core
* camel-spring
* camel-jms
* camel-activemq

=== Build

You will need to build this example first:

....
mvn install
....

=== Run

This example requires an existing Apache ActiveMQ broker running.

To setup and run Apache ActiveMQ then download it from the
http://activemq.apache.org/[ActiveMQ website].

Then extract the download such as (the .tar)

....
tar xf ~/Downloads/apache-activemq-5.13.0-bin.tar.gz
....

Then the broker can be started with

....
cd apache-activemq-5.13.0
bin/activemq console
....

And then Broker is running (you can press ctrl+c in the shell to stop
the broker).

The Camel application connects to the remote broker on url:
`+tcp://localhost:61616+`. The url can be changed in the `+widget.xml+`
source code.

When the ActiveMQ broker is running, then you can run this example
using:

....
mvn compile exec:java
....

When the Camel application runs, you should see 2 orders being processed
and logged to the console, such as:

....
2016-01-11 12:53:53,978 [sumer[newOrder]] INFO  widget                         - Exchange[ExchangePattern: InOnly, BodyType: byte[], Body: <order>  <customerId>123</customerId>  <product>widget</product>  <amount>2</amount></order>]
2016-01-11 12:53:54,005 [sumer[newOrder]] INFO  gadget                         - Exchange[ExchangePattern: InOnly, BodyType: byte[], Body: <order>  <customerId>456</customerId>  <product>gadget</product>  <amount>3</amount></order>]
....

You can access the ActiveMQ web console using
http://localhost:8161/admin/ and then browse the queues. You should see
the three queues:

* newOrder
* widget
* gadget

The Camel application can be stopped pressing ctrl+c in the shell.

=== Configuration

The Camel application is configured in the
`+src/main/resources/META-INF/spring/widget.xml+` file.

=== 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!
