The OSGi framework allows third-party frameworks to be piggybacked on top of it.
In particular, Fuse ESB Enterprise enables the Spring framework and the blueprint framework, by
default. In the case of the Spring framework, OSGi
automatically activates any Spring XML files under the META-INF/spring/
directory in a JAR, and Spring XML files can also be hot-deployed to the
directory. In
the case of the blueprint framework, OSGi automatically
activates any blueprint XML files under the ESBInstallDir/deployOSGI-INF/blueprint/
directory in a JAR, and blueprint XML files can also be hot-deployed to the
directory.ESBInstallDir/deploy
There are two kinds of file that you can use to configure your project:
Spring configuration—in the standard Maven directory layout, Spring XML configuration files are located under
.ProjectDir/src/main/resources/META-INF/springBlueprint configuration—in the standard Maven directory layout, blueprint XML configuration files are located under
.ProjectDir/src/main/resources/OSGI-INF/blueprint
If you decide to use the blueprint configuration, you can embed
camelContext elements in the blueprint file, as described in Blueprint configuration file.
If you decide to configure your Apache Camel application using blueprint, you must
ensure that the camel-blueprint feature is installed. If necessary,
install it by entering the following console command:
karaf@root> features:install camel-blueprint
You can deploy a camelContext using a Spring configuration file,
where the root element is a Spring beans element and the
camelContext element is a child of the beans element.
In this case, the camelContext namespace must be
http://camel.apache.org/schema/spring.
For example, the following Spring configuration defines a route that generates
timer messages every two seconds, sending the messages to the
ExampleRouter log (which get incorporated into the console log
file,
):InstallDir/data/log/servicemix.log
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > <camelContext xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="timer://myTimer?fixedRate=true&period=2000"/> <to uri="log:ExampleRouter"/> </route> </camelContext> </beans>
It is not necessary to specify schema locations in the configuration. But if you are editing the configuration file with an XML editor, you might want to add the schema locations in order to support schema validation and content completion in the editor. For the preceding example, you could specify the schema locations as follows:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
...Before deploying routes in a blueprint configuration file, check that the camel-blueprint feature is already installed.
You can deploy a camelContext using a blueprint configuration file,
where the root element is blueprint and the camelContext
element is a child of the blueprint element. In this case, the
camelContext namespace must be
http://camel.apache.org/schema/blueprint.
For example, the following blueprint configuration defines a route that generates
timer messages every two seconds, sending the messages to the
ExampleRouter log (which get incorporated into the console log
file,
):InstallDir/data/log/servicemix.log
<?xml version="1.0" encoding="UTF-8"?> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > <camelContext xmlns="http://camel.apache.org/schema/blueprint"> <route> <from uri="timer://myTimer?fixedRate=true&period=2000"/> <to uri="log:ExampleRouter"/> </route> </camelContext> </blueprint>
![]() | Note |
|---|---|
Blueprint is a dependency injection framework, defined by the OSGi standard, which is similar to Spring in many respects. For more details about blueprint, see The Blueprint Container. |






![[Note]](imagesdb/note.gif)


