2010-07-22 28 views
1

有沒有辦法更改OSGi Configuration Admin服務的配置存儲位置?我希望將屬性文件存在於另一個捆綁包中,以便它們在部署中的源控件&中存在,而不是在OSGi存儲中。更改OSGi Configuration Admin服務的配置存儲位置?

+0

ConfigAdmin如何持久存儲數據取決於實現。你能更具體一點,你正在使用哪種OSGi實現? – akr 2010-07-22 22:07:31

+0

我正在使用Felix Config Admin實現。我注意到它可以設置數據存儲位置,但它添加了我不關心的服務屬性。 然後,我發生了Felix文件安裝,我可以用它來配置我的捆綁屬性文件。這就是我目前使用的。我希望能夠使用Config Admin服務將更改推回通過文件安裝加載的屬性。 – oconnor0 2010-07-26 17:13:33

回答

0

最後,我決定使用Apache Felix文件安裝來更新Configuration Admin ManagedService的配置屬性。這似乎工作得很好。

這是一個小問題,因爲當文件更新時,新的配置屬性被推送到託管服務,而不考慮它們是否是正確的值。這意味着在下次啓動時,值仍然會很差&需要設置爲默認值。

它應該現在工作。

0

配置管理員實現不能這樣做,至少不能通過規範以便攜方式。相反,您需要一個「管理代理」,通過API將配置數據推送到配置管理員中;它可以從它希望的任何來源派生出配置數據。

FileInstall是管理代理的一個非常簡單的例子。如果它不完全符合你的要求,那麼編寫你自己的代碼並不困難。

ManagedServices仍需要對傳入配置數據進行驗證並動態響應新的配置數據。 OSGi是一個動態平臺,Config Admin旨在允許對正在運行的系統進行即時重新配置。