如何配置外部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保险丝,因此可以使用以下方法。
配置与蓝图
与我们的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