9.6. 向该功能添加 OSGi 配置


如果您的应用程序使用 OSGi 配置管理服务,您可以使用功能定义的 config 子元素指定该服务的配置设置。例如,要指定 prefix 属性具有值 MyTransform,请将以下 config 子元素添加到功能配置中:

<?xml version="1.0" encoding="UTF-8"?>
<features name="MyFeaturesRepo">
  <feature name="example-camel-bundle">
    <config name="org.fusesource.fuseesb.example">
      prefix=MyTransform
    </config>
  </feature>
</features>

其中 config 元素的 name 属性指定属性设置 的持久性 ID (持久性 ID 充当属性名称的名称范围)。config 元素的内容与 Java 属性文件 相同。

config 元素中的设置可以被 InstallDir/etc 目录中的 Java 属性文件中的设置覆盖,该文件以持久 ID 命名,如下所示:

InstallDir/etc/org.fusesource.fuseesb.example.cfg

作为在实践中如何使用上述配置属性的示例,请考虑以下蓝图 XML 文件来访问 OSGi 配置属性:

<?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"
           xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0">

    <!-- osgi blueprint property placeholder -->
    <cm:property-placeholder id="placeholder"
                             persistent-id="org.fusesource.fuseesb.example">
        <cm:default-properties>
            <cm:property name="prefix" value="DefaultValue"/>
        </cm:default-properties>
    </cm:property-placeholder>

    <bean id="myTransform" class="org.fusesource.fuseesb.example.MyTransform">
      <property name="prefix" value="${prefix}"/>
    </bean>

</blueprint>

当此 Blueprint XML 文件部署到 example-camel-bundle 捆绑包中时,属性引用 ${prefix} 替换为值 MyTransform,它由 feature 存储库中的 config 元素指定。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.