第 49 章 将 OSGi 蓝图与 Camel 搭配使用

已创建一个用于 Blueprint 的自定义 XML 命名空间,以便让您充分利用 nice XML 死机。由于 Blueprint 自定义命名空间尚未标准化,但这个命名空间只能用于 Apache Aries Blueprint 实施,后者是 Apache Karaf 所用命名空间。

49.1. 概述

XML 模式大体与 Spring 的选项基本相同,因此所有引用 Spring XML 的文档中的 xml 代码段也适用于 Blueprint 路由。

以下是使用蓝图的简单路由定义:

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

此时,支持的 xml 元素(专用于 Spring xml 语法)有一些限制:

  • beanPostProcessor 特定于 Spring,不允许

但是,当您在 OSGi 环境中部署应用程序时,使用蓝图有几个优点:

  • 当升级到新的 camel 版本时,您不必更改命名空间,因为正确的版本将根据捆绑包导入的 camel 软件包来选择。
  • 对自定义命名空间和捆绑包没有启动排序问题
  • 您可以使用 Blueprint 属性占位符