我正在開發Karaf的組合功能(即包含嵌套元素的其他功能的功能)。我想寫出嵌套特性的配置文件,然後從外部作用域(即我寫的特性)寫出配置文件,我想重新啓動嵌套特性中包含的包。Karaf:動態包重新啓動
如何在運行時從另一個捆綁包中查詢其所有捆綁軟件的功能。
如何從另一個捆綁包動態重新啓動捆綁包?
我正在開發Karaf的組合功能(即包含嵌套元素的其他功能的功能)。我想寫出嵌套特性的配置文件,然後從外部作用域(即我寫的特性)寫出配置文件,我想重新啓動嵌套特性中包含的包。Karaf:動態包重新啓動
如何在運行時從另一個捆綁包中查詢其所有捆綁軟件的功能。
如何從另一個捆綁包動態重新啓動捆綁包?
對於所有的兩個操作,你需要org.osgi.framework.BundleContext
的實例 - 你可以在你的bundle激活器中獲得一個。
要查詢功能(及其相關功能及其捆綁包),您需要訪問Karaf的org.apache.karaf.features.FeaturesService
OSGi服務 - 例如使用BundleContext
的getServiceReference()
方法。
要得到任何包(要能重新啓動它),你可以得到一個知道它的ID:BundleContext.getBundle("ID")
是否有一種獨立於彼此配置捆綁的方式?即如何在實例化時將變量傳遞給包? – LostInTheFrequencyDomain
有配置管理服務 - 它應該用於捆綁配置「OSGi的方式」 - 見[這裏](http://felix.apache.org/documentation/subprojects/apache-felix-config-admin.html) –
你可以這樣做,但它不是OSGi的方式。更好的方法是讓每個軟件包對配置更改作出反應。藍圖以及聲明性服務提供了對配置更改作出反應的功能。 –