[[UsingOSGiblueprintwithCamel-UsingOSGiblueprintwithCamel]]
Using OSGi blueprint with Camel
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

*Available as of Camel 2.4*

A custom XML namespace for Blueprint has been created to let you
leverage the nice XML dialect. Given Blueprint custom namespaces are not
standardized yet, this namespace can only be used on the
http://incubator.apache.org/aries/[Apache Aries] Blueprint
implementation, which is the one used by http://karaf.apache.org[Apache
Karaf].

[[UsingOSGiblueprintwithCamel-Overview]]
Overview
^^^^^^^^

The XML schema is mostly the same as the one for Spring, so all the xml
snippets throughout the documentation referring to Spring XML also apply
to Blueprint routes.

Here is a very simple route definition using blueprint:

[source,xml]
-------------------------------------------------------------------
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">

    <camelContext xmlns="http://camel.apache.org/schema/blueprint">
        <route>
            <from uri="timer:test" />
            <to uri="log:test" />
        </route>
    </camelContext>

</blueprint>
-------------------------------------------------------------------

There are a few limitations at this point about the supported xml
elements (compared to the Spring xml syntax):

* beanPostProcessor are specific to Spring and aren't allowed

However, using blueprint when you deploy your applications in an OSGi
enviroment has several advantages:

* when upgrading to a new camel version, you don't have to change the
namespace, as the correct version will be selected based on the camel
packages that are imported by your bundle
* no startup ordering issue with respect to the custom namespaces and
your bundles
* you can use Blueprint property placeholders, see more at
link:using-propertyplaceholder.html[Using PropertyPlaceholder]

[[UsingOSGiblueprintwithCamel-Usingcamel-blueprint]]
Using camel-blueprint
^^^^^^^^^^^^^^^^^^^^^

To leverage camel-blueprint in OSGi, you only need the Aries Blueprint
bundle and the camel-blueprint bundle, in addition to camel-core and its
dependencies.

If you use Karaf, you can use the feature named `camel-blueprint` which
will install all the required bundles.
