2009-05-27 68 views
11

我們正在考慮使用配置管理服務作爲主API來配置基於OSGi的應用程序中的組件。如果我們可以重新使用一些現有的實現,這將是很好的,所以我試圖調查和評估最流行的實現。我知道有:OSGi Configuration Admin Service的現有實現?

是否還有其他的實現需要考慮?

此外,我無法找到這些實現的任何良好的文檔。我主要對實現特定的細節感興趣。例如,我想知道不同的實現如何持久保存配置數據(例如多個屬性文件?XML文件?多個XML文件?數據庫?,...)。

回答

6

的三個公立實現我所知道的是

Equinox的實施ConfigurationAdmin的服務似乎不支持對持久性策略的精細控制,就像Felix的那樣,而Knopflerfish實現看起來(我只是簡單地閱讀了源代碼)與Equinox類似。

菲利克斯似乎是最近更新和最可靠。

目前這些是我能找到的唯一的;在dm服務器上,我們決定使用Felix的捆綁軟件,現在可以從SpringSource Enterprise Bundle Repository中獲得,您可以在其中快速搜索Apache FelixConfigAdmin

+0

感謝您的確認,我們決定使用Felix Config Admin實施(以及我們自己的持久性策略)。 – 2009-06-17 15:04:00

7

Felix的配置管理員有一個default implementation持續到文件系統,但他們定義一個服務接口(org.apache.felix.cm.PersistenceManager)替代後端,你可以插入。

的默認實現執行以下操作:在給定的目錄中 性質類似文件

的FilePersistenceManager類存儲配置數據。所有配置文件都位於同一目錄中的 。

通過將 擴展名「.config」附加到配置的PID中,可以在配置目錄中創建配置文件。 PID 通過將封閉圓點替換爲斜線將其轉換爲相對路徑名稱。 PID中的非符號名字符以其十六進制的Unicode字符代碼編碼爲 。

1

只是爲了進一步完成答案:我個人也更喜歡Felix的實現。有關如何使用PersistenceManager更改後端存儲方式的示例,另請參閱使用標準Java屬性文件作爲後備存儲的this實現。有一些限制,但至少可以讓你將你的配置存儲在你的應用程序中,除了你的OSGi框架實現。

相關問題