該helloworld例子程式主要的功能是在啟動和停止一個Bundle的時候來做些事情(輸出資訊)。
1、建立bundle工程
(1)在eclipse中建立一個Plug-in工程
(2)輸入工程相關資訊
(3)輸入Bundle的相關中繼資料資訊:
Plug_in ID指的是Bundle的唯一標識,在實際項目中可以採用類似java的包名組織策略來保證標識的唯一性
Plug-in Version 指的是Bundle的版本
Plug-in Name 指的是BundleBundle的更具有意義的名稱
Plug-in Provider 指的是Bundle的供應商
Execution Environment 指的是Bundle運行需要的環境
剩下的關鍵就是Activitor部分了,填入自己的一個類名就可以了,在工程建立時Eclipse會自動建立這個類
(4)完成了Bundle工程的建立後,在Package視圖中就可以看到如下圖所示,表明工程建立成功:
2、完成Activator的代碼
(1)開啟預設的Activator.java
這個類實現了BundleActivator介面,其中有兩個空的方法--start和stop。start方法是在Bundle被啟動的時候調用的,stop是在Bundle被停止時調用的,加入代碼:
HelloWorld的例子完成。
3、運行
(1)首先建立一個HelloWorld用的回合組態
(2)然後設定HelloWorldde 的Auto-Start屬性為false
(3)點擊Run,在Console中出現"osgi>"提示。表明成功啟動一個OSGi應用。
在osgi>提示符後面輸入 ss,按斷行符號鍵,如下圖:
可以看到,HelloWorld Bundle已經被安裝並且完成瞭解析,但是 還沒有啟動。下面在osgi>提示符下輸入 start 1,然後斷行符號,然後再輸入ss:
看到HelloWorld啟動了,通過ss可以看到HelloWorld Bundle的狀態改變為ACTIVE,說明啟動成功。並且在Activitor的start方法中加入的輸出資訊也正確的列印出來了。
接著 輸入 stop 1 ,並且再用ss命令查看bundle的狀態:
這個時候Bundle停止。
至此,一個OSGi Bundle順利完成,第一個OSGi程式順利運行。