= Using OSGi blueprint with Camel
:page-source: components/camel-blueprint/src/main/docs/blueprint.adoc

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 Apache Aries Blueprint
implementation, which is the one used by Apache Karaf.

== 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


== 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.