blob: 7de3d77e66cbe67cbe40463c388fc82aa10c8fc8 [file] [log] [blame]
[[WhatisCamel-WhatisCamel]]
= What is Camel?
Apache Camel (TM) is a versatile open-source integration framework based on
known xref:{eip-vc}:eips:enterprise-integration-patterns.adoc[Enterprise Integration
Patterns].
Camel empowers you to define routing and mediation rules in a variety of
domain-specific languages, including a Java-based xref:ROOT:dsl.adoc[Fluent
API], xref:ROOT:spring.adoc[Spring] or
xref:ROOT:using-osgi-blueprint-with-camel.adoc[Blueprint]
xref:ROOT:xml-configuration.adoc[XML Configuration] files.
This means you get smart completion of
routing rules in your IDE, whether in a Java or XML editor.
Apache Camel uses xref:ROOT:uris.adoc[URIs] to work directly with any kind of
xref:ROOT:transport.adoc[Transport] or messaging model such as
xref:components::http-component.adoc[HTTP], xref:components::activemq-component.adoc[ActiveMQ], xref:components::jms-component.adoc[JMS],
JBI, SCA, xref:components::mina-component.adoc[MINA] or xref:components::cxf-component.adoc[CXF], as
well as pluggable xref:ROOT:component.adoc[Components] and
xref:ROOT:data-format.adoc[Data Format] options. Apache Camel is a small
library with minimal xref:what-are-the-dependencies.adoc[dependencies]
for easy embedding in any Java application. Apache Camel lets you work
with the same xref:ROOT:exchange.adoc[API] regardless which kind of
xref:ROOT:transport.adoc[Transport] is used -- so learn the API once and you
can interact with all the xref:components::index.adoc[Components] provided
out-of-box.
Apache Camel provides support for xref:ROOT:bean-binding.adoc[Bean Binding]
and seamless integration with popular frameworks such as
xref:components:others:cdi.adoc[CDI], xref:ROOT:spring.adoc[Spring] and
xref:ROOT:using-osgi-blueprint-with-camel.adoc[Blueprint].
Camel also has extensive support for
xref:ROOT:testing.adoc[unit testing] your routes.
The following projects can leverage Apache Camel as a routing and
mediation engine:
* http://servicemix.apache.org/[Apache ServiceMix] -- a popular
distributed open source ESB and JBI container
* http://activemq.apache.org/[Apache ActiveMQ] -- a mature, widely used
open source message broker
* http://cxf.apache.org/[Apache CXF] -- a smart web services suite
(JAX-WS and JAX-RS)
* http://karaf.apache.org/[Apache Karaf] -- a small OSGi based runtime in
which applications can be deployed
* http://mina.apache.org/[Apache MINA] -- a high-performance
http://en.wikipedia.org/wiki/New_I/O[NIO]-driven networking framework
So don't get the hump -- try Camel today! :smile:
[NOTE]
====
*Too many buzzwords -- what exactly is Camel?*
Okay, so the description above is technology focused.
There's a great discussion about Camel at
http://stackoverflow.com/questions/8845186/what-exactly-is-apache-camel[Stack
Overflow]. We suggest you view the post, read the comments, and browse
the suggested links for more details.
====