== Widget and Gadget Example - CDI

=== 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 Java with CDI dependency injection. The
example uses JBoss Weld as the minimal CDI container to run the
application, but you can run the application in any CDI compliant
container.

==== Camel component used in this example

* camel-core
* 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
`+WidgetMain.java+` source code.

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

....
mvn compile camel:run
....

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
`+org.apache.camel.example.widget.WidgetApplication.java+` 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!
