Welcome to Apache Camel 
=======================

Apache Camel is a powerful rule based routing and mediation engine which 
provides a POJO based implementation of the Enterprise Integration Patterns 
using an extremely powerful fluent API (or declarative Java Domain Specific 
Language) to configure routing and mediation rules. The Domain Specific 
Language means that Apache Camel can support type-safe smart completion of 
routing rules in your IDE using regular Java code without huge amounts of 
XML configuration files; though Xml Configuration inside Spring is also 
supported.

Apache Camel uses generics, annotations and URIs so that it can easily work 
directly with any kind of Transport or messaging model such as HTTP, JMS, JBI, 
SCA, MINA or CXF Bus API without mandating a normalized message API which can 
often lead to leaky abstractions. Apache Camel is also a small library which 
has minimal dependencies for easy embedding in any Java application.

Getting Started
===============
To help you get started, try the following links:

Getting Started
http://activemq.apache.org/camel/getting-started.html

Building
http://activemq.apache.org/camel/building.html

We welcome contributions of all kinds, for details of how you can help
http://activemq.apache.org/camel/contributing.html

Please refer to the website for details of finding the issue tracker, email lists, wiki or IRC channel
http://activemq.apache.org/camel/

Please help us make Apache ActiveMQ better - we appreciate any feedback you may have.
Enjoy!

------------------------
The Apache ActiveMQ team
