我有兩個OSGi包A和B.兩者都是使用API /實現模型創建的。這兩個軟件包都通過Blueprint機制激活。 API捆綁包都會導出接口,而實現捆綁包不會導出任何內容。只有A依賴於B.從一個不同的包中加載OSGi包的資源
我的問題是,我想傳遞一個資源文件名(xml文件)駐留在包A到包B(在我使用BundleContext.getServiceReferences()方法獲取B之後),然後在Bundle B中加載資源並處理它。我怎樣才能達到相同的目標,甚至是可行的?
我讀過以下帖子,尼爾巴特利特的答案表明它應該工作。
Access resources in another osgi bundle?
然而,當我讀到getEntry,findEntries,getEntrypath方法,他們不談論其他包(或者我誤會了吧)。他們只談論碎片。
我的問題是,我可以使用上述三種方法中的任何一種來達到目標嗎?如果是這樣,你可以指向一些其他線程有答案或一些示例代碼?
如果這是不可能的,我可以使用片段包(僅包含資源)嗎?同樣,Bundle B更像是一個提供商,它可以接收任何資源文件並對其進行處理並滿足客戶請求(Bundle A)。因此,即使我想使用bundle分片方法,我也需要B加載客戶端指定的片段bundle(僅在需要的基礎上)(比如它們提供片段bundle符號名稱)。請提供與類似問題或任何樣本相關的建議或其他帖子。