外部啓動OSGI以及調用OSGI插件裏面的類

《OSGI原理與最佳實踐》一書中已經給出了基本的方式,這裏在林昊的基礎上增添幾行代碼完成一個可用的例子:

 

 1 首先建立幾個插件工程,並導出成插件包,這裏將導出的插件包統一放置到G://osgi_prj//system_bundle目錄下

 2 建立java project,並寫一個帶main方法的類,用於啓動OSGI以及先前的插件

 源碼:

 

3 運行便可以看到調用到了osgi的內部類方法

 

說明:osgi裏面的bundle是通過自己的classloader加載內部類,所以只能通過反射進入指定bundle獲取class,而不能將包導入調用工程中,這裏也可以看到findbyproperty方法只能返回不帶類型的List,如果換成List<Message>將會出錯,因爲調用工程與插件的class不一樣。

發佈了30 篇原創文章 · 獲贊 20 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章