2015-11-20 53 views
0

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

我們需要知道如何在OSGI配置屬性文件, 按我的知識,我們可以配置.cfg的文件,但有任何最簡單的方式來使用像彈簧配置配置。

在我們的代碼中,我們正在從屬性文件中讀取。使用命名空間ext:proeprtyplaceHolder給出我們給出的bean id和值。 幫助提供是否有任何最簡單的方法來讀取屬性文件

回答

1

有幾種添加配置的方法,因爲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