【问题标题】:how to configure the external properfiles into the OSGI如何将外部属性文件配置到 OSGI
【发布时间】:2015-11-20 05:45:17
【问题描述】:

我们正在使用Jboss fuse 6.2 along with technical stack blueprint,camel ,activeMQ and Mybatis.

我们需要知道如何配置OSGI 中的属性文件, 据我所知,我们可以配置 .cfg 文件,但是有没有最简单的方法可以使用,例如 spring 配置配置。

在我们的代码中,我们从属性文件中读取。使用命名空间 ext:proeprtyplaceHolder 给出我们给出的 bean id 和值。 帮助提供是否有任何最简单的方法来读取属性文件

【问题讨论】:

    标签: fuseesb jbossfuse blueprint-osgi jboss-esb


    【解决方案1】:

    有几种方法可以添加配置,因为 OSGi 服务可以通过 ConfigurationAdmin 服务访问配置。蓝图还可以访问其上的属性值。 JBoss fuse 使用的是 karaf,所以可以使用以下方法。

    (有一些引用来自http://www.liquid-reality.de/display/liquid/2011/09/23/Karaf+Tutorial+Part+2+-+Using+the+Configuration+Admin+Service

    使用蓝图配置

    与我们的 bean 类的集成主要是一个简单的 bean 定义,我们在其中定义 title 属性并分配将使用配置管理服务解决的占位符。唯一特别的是init方法。这用于让我们有机会在进行所有更改后做出反应,就像在纯 OSGi 示例中一样。 对于蓝图,我们不需要任何 maven 依赖项,因为我们的 Java 代码是纯 Java bean。只需将蓝图上下文放入 OSGI-INF/blueprint 目录并加载蓝图扩展程序即可激活蓝图上下文。由于蓝图总是在 Karaf 中加载,我们不需要其他任何东西。

    <cm:property-placeholder persistent-id="ConfigApp" update-strategy="reload" >
        <cm:default-properties>
             <cm:property name="title" value="Default Title"/>
        </cm:default-properties>
    </cm:property-placeholder>
    
    <bean id="myApp" init-method="refresh">
        <property name="title" value="${title}"></property>
    </bean>
    

    你可以把一个cfg文件(这是一个标准的java属性文件)放到 karaf 的 etc 或部署目录,其名称为给定的持久 ID,在我们的示例中为 MyApp。 (例如:/etc/ConfigApp.cfg)

    title=Configured title
    

    【讨论】:

      猜你喜欢
      • 2018-10-25
      • 2017-08-18
      • 2018-12-30
      • 1970-01-01
      • 1970-01-01
      • 2017-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多