close

使用Eclipse開發OSGi Bundle,及如何手動/自動載入到Apache Felix上。

 

開發環境:Eclipse-SDK-4.3
OSGi 版本:Apache felix 4.0.3 

 

1. 首先建立一個新的project,「File → New → Project...」,之後選擇「Plug-in Development」中的「Plug-in Project」。

第一支Bundle1

 

第一支Bundle2

 

2. 設定Project,本教學專案取名為「HelloService」,並勾選「an OSGi Framework」,完成後繼續下一步。

第一支Bundle3  

 

3. 在Bundle中會有一個啟動類別,通常預設為「專案名稱.Activator」在此我們更改為「helloservice.HelloService」,再來不要直接按「Finish」,請按「Next」繼續設定專案。

第一支Bundle4  

 

4. 將「Create a plug-in using one of the templates」取消勾選,設定完成後按下「Finish」即可。

第一支Bundle5  

 

5. 開啟專案內的「Src → helloservice → HelloService.java」,程式中已經有預設好的框架,我們可以在「start」和「stop」方法中撰寫簡單的程式碼。

第一支Bundle6  

 

第一支Bundle7  

 

6. 在專案項目案右鍵,選擇「Export...」將檔案匯出成jar檔,並指定存放路徑為OSGi 的資料夾中,完成後按下「Finish」。

第一支Bundle8  

 

第一支Bundle9  

 

第一支Bundle10  

 

7. 上步驟結束後便會在OSGi 的專案內產生「plugins」資料夾,其中會有剛才匯出的jar檔。

第一支Bundle11  

 

8. 接下來要將HelloService Bundle install進OSGi Framework中,此動作有兩種方式,以下將分別介紹。

8-1. 透過指令方式手動安裝Bundle:

「g!」表示要輸入指令的地方。

安裝Bundle指令:install file:資料夾/檔名

此處的資料夾即為剛才產生的「plugins」,檔名就是匯入的jar檔,且檔名需要打完整的名稱,包含副檔名。

完成後便會顯示安裝好的Bundle ID,之後便可透過指令對該ID(Bundle)進行動作。

第一支Bundle12  

 

8-2. 將要啟動的Bundle加入「config.properties」檔案內,讓OSGi在啟動時可以自動啟動Bundle。

「config.properties」檔案的位置在「conf」資料夾中,我們需要做的是,找到該檔案中的「felix.auto.start.1=」並在後面接上「資料夾/檔名」,這樣便可以在啟動時自動載入Bundle,若要載入多個Bundle則在後面加上「;」號即可。

完成後啟動OSGi Framework,並輸入「lb」即可看到HelloService Bundle已經自動載入了。

第一支Bundle13  

 

第一支Bundle14  

 

第一支Bundle15    

arrow
arrow
    全站熱搜

    fiend1120 發表在 痞客邦 留言(0) 人氣()