1. 程式人生 > >建立並執行第一個OSGi程式-HelloWorld

建立並執行第一個OSGi程式-HelloWorld

還記得我們在學習Java語言、C語言、或C++語言等各個計算機語言時都寫過的 HelloWorld 嗎?那些 HelloWorld 程式都是在執行後輸出一個“Hello World”,然後就結束了程式,我們今天來看看OSGi中的HelloWorld 程式,該程式的主要功能是在啟動和停止一個 Buddle 的時候做些事情,下面我們就來一步一步完成一個Buddle (HelloWorld)。

需要的工具

1、java(SDK)這是必不可少的
2、eclipse for javaee,下面的下載地址中是我用的eclipse
http://pan.baidu.com/s/1c27sEM

建立Buddle工程

1、在Eclipse中建立一個Plug-in-project(如下圖所示)
這裡寫圖片描述
輸入Huddle的相關元資料資訊

1、Plug-in ID 指的是Buddle 的唯一標識,在實際的專案中可以採用類似於java的包名組織策略來保證標識唯一性;
2、 Plug-in Version 指的是Buddle 版本
3、 Plug-in Name 指的是 Buddle 的更有意義的名稱
4、Plug-in Provider 指的是 Buddle 的提供商
5、Execution Environment 指的是 Buddle 執行需要的環境
6、 Activator 部分,這裡填入自己一個類名即可,在工程建立時 Eclipse 會自動建立這個類

這裡寫圖片描述

注意在這裡 This Plug-in is targeted to run with : 項下選擇 an OSGi framework: standard

完成 Buddle 工程的建立後,在 package 檢視中就可以看到如下檢視,表明工程建立成功了。
這裡寫圖片描述

完成 Activator 程式碼

開啟預設的Activator.java 程式碼(如下所示)在 start 和stop函式中新增語句列印相應資訊
這裡寫圖片描述

執行

首先建立一個HelloWorld 用的執行配置,run-run configurations
你會看到很多 Buddles 如下圖所示:

這裡寫圖片描述

首選選中 HelloWorld 並把 Auto-Start 設為 false
然後再在下面的眾多Buddle 中選上
org.apache.felix.gogo.command
org.apache.felix.gogo.runtime
org.apache.felix.gogo.shell
org.eclipse.equinox.console
org.eclipse.osgi
都選中之後,將右邊的 Only show selected 前面打勾 結果如下圖所示:

這裡寫圖片描述

點選 run 在Console 中出現 “osgi>”提示,這表明已經成功啟動了我們的第一個 OSGi應用。

在osgi> 提示符下輸入 ss, 然後回車,我們可以看到如下圖所示顯示:

這裡寫圖片描述

可以看到 HelloWorld Buddle 已經被安裝並且完成了解析,已經啟動,下面我們在 osgi> 提示符下輸入 stop HelloWorld, 回車,看看會發生什麼,再輸入 ss,會看到如下圖所示輸出資訊

這裡寫圖片描述

可一看到 “HelloWorldBuddle stopped” 並且通過 ss 命令,看到 HelloWorldBuddle 的狀態從前面的ACTIVE變成了 RESOVLED ,說明 HelloWorldBuddle 已成功停止。