2017-02-15 39 views
0

我有一個預先創建的包「A」,其中包含一些方法(註冊爲服務)。現在我想創建另一個使用「A」方法的包「B」。據我瞭解,我應該從類「getServiceReference()」在「B」激活器中包含這些方法。但是我怎樣才能訪問這些課程?我應該用「A」作爲庫導入項目還是將「.jar」文件導入「B」項目?我在閱讀「OSGI在行動」,但在那裏找不到明確的答案。你能回答或建議一些有助於找到答案的文章嗎?
P.S.我使用Inteleji IDEA IDE。如何製作使用另一個包中的方法的OSGi包?

回答

0

軟件包A應該導出A類所在的軟件包,這是通過向Manifest添加一個「Export-Package」字段來完成的。

捆綁包B應該導入A類所在的包,這是通過向Manifest添加一個「導入包」字段來完成的。

捆綁包A應該將A註冊爲服務。

捆綁包B應該從A獲得服務,然後它可以調用A類的方法。

根據您使用哪些工具進行編譯(gradle/maven,bnd工具...),導出和導入包可以是「自動」的。

根據您在運行時使用的工具(藍圖,iPOJO,ds,...),註冊和注入服務可以是「自動」的。

相關問題