I’ve been using and distributing a Apache Camel based example project as part of informal training and JUG talks for several years. I wrote the example to demonstrate best practices for the use of Camel as well as the wonderful testing support baked into the Camel libraries in the context of a complete use case. The example extends the lessons provided in the examples found in the Apache Camel distribution by tying a number of concepts together just like developers do in real world solutions. I recently updated the example to demonstrate the flexibility of Camel to move from a simple deployment in a Tomcat instance to a scalable multi-node deployment using asynchronous messaging.
These updates aim to demonstrate the low-invasiveness of Apache Camel to your existing code base when deployed alongside traditional Web applications in a Servlet container or JEE application server as well as the ability of Camel to scale with your deployment as needed. The updates demonstrate how Camel can scale your integration and business logic on a collection of manually managed and deployed Tomcat instances or on a managed cluster of Fuse ESB (JBoss Fuse) instances leveraging Fuse Fabric and Fuse Management Console to provide more enterprise ready management, monitoring, and provisioning capabilities.
The example code and tutorial documentation are available on GitHub at https://github.com/DavidValeri/intro-to-camel-by-example.
Note that with the Red Hat acquisition of FuseSource, Fuse ESB has been rebranded as JBoss Fuse. At this time, Fuse ESB 7.1 represents the latest GA release of the product line. The example code and tutorial referenced in this post will leverage Fuse ESB 7.1 until the GA release of the rebranded JBoss Fuse becomes available.