[轉]Eclipse插件開發之基礎篇(4) OSGi框架
原文地址:http://www.cnblogs.com/liuzhuo/archive/2010/08/18/eclipse_plugin_1_2_1.html
1. 什麽是OSGi框架
OSGi(Open Service Gateway Initiative)框架是運行在JavaVM環境裏的服務平臺。框架提供的主要功能是對應用和組件的生命周期管理,系統可以在無需重啟的情況下,遠程操縱組件的安裝、啟動、停止。
OSGi框架不僅用於Eclipse,從移動終端到車載系統,各個領域都在應用這個技術。
2. OSGi和Eclipse的關系
Eclipse采用OSGi框架來管理插件的安裝、開始、停止和生命周期。在Eclipse中采用的OSGi框架稱為Equinox。Equinox在Eclipse3.0時被使用,在3.3時,Equinox通過Equinox PDE,不僅可以用來開發插件,也可以用來制作其他OSGi框架上的組件。
3. OSGi控制臺
在Eclipse提啟動的時候加入-console參數,可以在Eclipse啟動的同時創建一個OSGi框架控制臺。
圖4-1,4-2 啟動OSGi控制臺
構建於OSGi之上的各種應用被稱為OSGi Bundle。OSGi控制臺可以執行下表所示的操作。
表4-1 OSGi控制臺的命令
命令 | 說明 |
start | 開始Bundle |
stop | 停止Bundle |
install | 安裝指定Bundle |
uninstall | 卸載指定Bundle |
update | 更新指定Bundle |
active | 列出被註冊並且處於活動狀態的Bundle |
ss | 列出所有被註冊的Bundle |
我們可以看一下執行Eclipse的動作後,Bundle的狀態變化。首先執行ss命令。在ss命令後加入一個參數[help],這樣可以列出所有名稱含有help的bundle。
代碼1
?1 2 3 4 5 6 7 8 9 10 | id State Bundle 78 RESOLVED org.eclipse.epp.mpc.help.ui_1.0.0.v20100611-0430 136 ACTIVE org.eclipse.help_3.5.0.v20100524 137 << LAZY >> org.eclipse.help.appserver_3.1.400.v20100427 138 << LAZY >> org.eclipse.help.base_3.5.0.v201006080911 139 << LAZY >> org.eclipse.help.ui_3.5.0.v20100517 140 << LAZY >> org.eclipse.help.webapp_3.5.0.v20100507 178 << LAZY >> org.eclipse.mylyn.help.ui_3.4.0.v20100608-0100-e3x 196 RESOLVED org.eclipse.mylyn.wikitext.help.ui_1.3.0.v20100608-0100-e3x 228 RESOLVED org.eclipse.rap.help_1.3.0.20100615-1734 |
請註意其中狀態為lazy的行,這個狀態說明Bundle還沒有被加載入內存。在必要時將加載入內存。
我們先打開Eclipse的幫助。然後再看一下Bundle的狀態。
代碼2
?1 2 3 4 5 6 7 8 9 10 | id State Bundle 78 RESOLVED org.eclipse.epp.mpc.help.ui_1.0.0.v20100611-0430 136 ACTIVE org.eclipse.help_3.5.0.v20100524 137 << LAZY >> org.eclipse.help.appserver_3.1.400.v20100427 138 ACTIVE org.eclipse.help.base_3.5.0.v201006080911 139 ACTIVE org.eclipse.help.ui_3.5.0.v20100517 140 << LAZY >> org.eclipse.help.webapp_3.5.0.v20100507 178 << LAZY >> org.eclipse.mylyn.help.ui_3.4.0.v20100608-0100-e3x 196 RESOLVED org.eclipse.mylyn.wikitext.help.ui_1.3.0.v20100608-0100-e3x 228 RESOLVED org.eclipse.rap.help_1.3.0.20100615-1734 |
我們看到了org.eclipse.help.base_3.5.0.v201006080911和 org.eclipse.help.ui_3.5.0.v20100517兩個Bundle從lazy狀態變成了活動狀態。
從以上例子我們知道了,使用OSGi控制臺可以確認Eclipse插件的活動狀態,也可以用控制臺來控制插件的開始和停止。
[轉]Eclipse插件開發之基礎篇(4) OSGi框架