如何配置外部properfiles到OSGi

问题描述:

我们使用的是Jboss fuse 6.2 along with technical stack blueprint,camel ,activeMQ and Mybatis.如何配置外部properfiles到OSGi

我们需要知道如何在OSGI配置属性文件, 按我的知识,我们可以配置.cfg的文件,但有任何最简单的方式来使用像弹簧配置配置。

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

有几种添加配置的方法,因为OSGi服务可以通过ConfigurationAdmin服务访问配置。蓝图也可以通过它访问属性值。 使用karaf的JBoss保险丝,因此可以使用以下方法。

(有一个从http://www.liquid-reality.de/display/liquid/2011/09/23/Karaf+Tutorial+Part+2+-+Using+the+Configuration+Admin+Service一些报价)

配置与蓝图

与我们的bean类的整合主要是一个简单的bean定义,我们定义标题属性,并指定这将是占位符使用配置管理服务解决。唯一特别的是init方法。在纯粹的OSGi例子中完成所有更改之后,这用于给我们机会做出反应。 对于蓝图,我们不需要任何Maven依赖项,因为我们的Java代码是纯Java bean。蓝图上下文只需将其放入OSGI-INF/blueprint目录并加载蓝图扩展器即可激活。由于蓝图总是装在卡拉夫,我们不需要任何其他东西。

<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的等,或与给定持续-ID是MyApp的在我们的名称,例如deploy目录。 (例如:/etc/ConfigApp.cfg)

title=Configured title