精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

OSGi Bundle之Hello World

開發 后端
本文介紹如何開發OSGi Bundle,使用Hello World做為范例。開發工具為Eclipse,使用容器為Equinox。

本文是《你好,OSGi》系列的第二部分。之前曾介紹過OSGi是什么,下面將繼續上篇介紹的內容,講述一個簡單的OSGi Bundle:Hello World是如何開發的。

51CTO編輯推薦:OSGi入門與實踐全攻略

開發一個簡單的Hello World的OSGi Bundle(OSGi綁定包)

在OSGi中,軟件是以Bundle的形式發布的。一個Bundle由Java類和其它資源構成,它可為其它的Bundle提供服務,也可以導入其它Bundle中的Java包;同時,OSGi的Bundle也可以為其所在的設備提供一些功能。Eclipse為開發OSGiBundle提供了優秀的支持,它不僅提供了向導來創建OSGi Bundle,而且還提供了內嵌的Equinox容器,您可以使用該容器執行和調試OSGi插件。請注意每一個Eclipse插件,從本質上說,都是一個OSGi Bundle,只是這個OSGiBundle多加了一些Eclipse專用的代碼而已。下面我們來看看如何使用Eclipse開發一個簡單的OSGi的HelloWorld Bundle。

3.1.新建Bundle

1) 在Eclipse中,點擊“File->New->Project”菜單,您將會看到新項目創建對話框;

2) 在新項目對話框中,選擇“Plug-inProject(插件項目)”并點擊“Next(下一步)”按鈕,您將看到插件項目對話框;

3) 在插件項目對話框中,請鍵入下列值:

Project Name(項目名稱):com.javaworld.sample.HelloWorld

Target Platform(目標平臺):an OSGiFramework->Standard (OSGi框架->標準)

4) 對其它的要求輸入值采用缺省值,并點擊“Next(下一步)”按鈕,您將會看到插件上下文對話框;

5) 在插件上下文對話框中,請選擇缺省值并點擊“Next(下一步)”按鈕;

6) 在模板對話框中,請選擇“Hello OSGiBundle(你好,OSGi包)”模板,然后點擊“Finish(完成)”按鈕完成該項目。

Eclipse將花幾秒鐘生成HelloWorld Bundle模板代碼,它將新建兩個文件:Activator.java和MANIFEST.MF,下面,讓我們看看這兩個文件:

3.1.1. Activator.java文件

源代碼清單1.Activator.java

  1. package com.javaworld.sample.helloworld;  
  2. importorg.osgi.framework.BundleActivator;  
  3. importorg.osgi.framework.BundleContext;  
  4. publicclass Activator implements BundleActivator {  
  5. public void start(BundleContext context)throws Exception {  
  6. System.out.println("Helloworld");  
  7. }  
  8. public void stop(BundleContext context)throws Exception {  
  9. System.out.println("GoodbyeWorld");  
  10. }  
  11. }  
  12.  

如果您想讓您開發的Bundle能在其啟動或關閉時通知自身,那么您應新建一個類,讓它實現BundleActivator接口,同時,您還需要遵行下列規則:

這個實現了BundleActivator接口的類必須有一個public的、不帶參數的構造函數,這樣,OSGi框架就能調用該類的Class.newInstance()方法創建這個BundleActivator對象;

容器將調用Activator類的start()方法來啟動Bundle,因此,我們可以在start()方法中執行一些資源初始化的操作,例如,我們可以在該方法中獲取數據庫連接,以備后用。這個start()方法的唯一參數是一個BundleObject對象,Bundles可以通過該對象和OSGi框架通訊,我們可以從該對象中獲取OSGi容器相關的一些信息;如果某個Bundle拋出異常,容器將之置為“stopped(已停止)”狀態,此時,這個Bundle就不能對外提供服務。

如果我們要關閉一個Bundle,容器將調用Activator類中的stop()方法。因此,我們可在stop()方法中執行一些資源清理任務,比如釋放數據庫連接。

一旦Activator類準備就緒,您就可以通過MANIFEST.MF文件把該包的合法名稱傳給容器。下面,我們就看看這個MANIFEST.MF文件。

3.1.2. MANIFEST.MF文件

該文件是Bundle的部署描述文件,其格式和正常JAR文件包中的MANIFEST.MF文件相同,因此它由一系列的屬性及這些屬性對應的值組成,屬性名位于每一行的開頭,我們可以稱其為屬性頭。OSGi規范規定,您可以使用屬性頭向容器描述您的Bundle。您的HelloWorld Bundle的MANIFEST.MF文件看起來應該如清單2所示:

源代碼清單2. Hello World Bundle中的MANIFEST.MF文件

  1. Manifest-Version:1.0 
  2. Bundle-ManifestVersion:2 
  3. Bundle-Name:HelloWorld Plug-in  
  4. Bundle-SymbolicName:com.javaworld.sample.HelloWorld  
  5. Bundle-Version:1.0.0 
  6. Bundle-Activator:com.javaworld.sample.helloworld.Activator  
  7. Bundle-Vendor:JAVAWORLD  
  8. Bundle-Localization:plugin  
  9. Import-Package:org.osgi.framework;version="1.3.0" 
  10.  

我們來看看這個文件中使用的屬性頭:

Bundle-ManifestVersion

該屬性頭告訴OSGi容器,本Bundle將遵循OSGi規范,數值2表示本Bundle和OSGi規范第4版本兼容;如果該屬性的數值為1,那么則表示本包和OSGi版本3或更早版本兼容。

Bundle-Name

該屬性頭為本Bundle定義了一個簡短的、可以閱讀的名稱;

Bundle-SymbolicName

這個屬性頭為本Bundle定義了一個唯一的、非本地化的名字;當您需要從別的Bundles中訪問某一指定的Bundle時,您就要使用這個名字。

Bundle-Version

該屬性頭給出了本Bundle的版本號。

Bundle-Activator

該屬性頭給出了本Bundle中使用的監聽器類名字,這個屬性值是可選的。監聽器將對Activator中的start()和stop()方法監聽。在程序清單2中,該屬性頭的值為com.javaworld.sample.helloworld.Activator。

Bundle-Vendor

該屬性頭是對本Bundle發行商的表述。

Bundle-Localization

該屬性頭包含了本Bundle的本地化文件所在的位置,我們的HelloWorld Bundle中并沒有本地化文件,但Eclipse IDE仍自動產生這個屬性頭

Import-Package

該屬性頭定義了本Bundle中引入的Java包,我將在本文后面的依賴性管理小節中詳細講解這個問題。現在,HelloWorld Bundle已經準備就緒,讓我們來運行并看看它的輸出結果。

3.2. 運行Bundle

我在前面提到,Eclipse IDE中有一個內嵌的EquinoxOSGi容器,您可以利用它來執行或調試OSGi Bundle。請按照下面步驟執行剛才的HelloWorld Bundle:

1 ) 單擊RunàRun… 菜單(譯者注,在Eclipse3.3中,請單擊RunàOpen Run Diglog…菜單);

2) Eclipse會打開“Create,manage and run configuration(新建、管理和運行配置)”對話框,請雙擊”EquinoxOSGi Framework”按鈕,Eclipse將打開運行時配置對話框;

3) 在上面的對話框中,將Name(名稱)輸入框的值改為HelloWorld Bundle;

4) 您會注意到在Workspace插件目錄下,有一個名為com.javaworld.sample.HelloWorld的插件,請選中它;在TargetPlatform(目標平臺)下,請確保org.eclipse.osgi插件被選中。您的Run(運行)對話框應該看起來如圖1所示:

HelloWorld Bundle的運行配置 

圖1. HelloWorld Bundle的運行配置

5) 現在,請單擊Run(運行)按鈕,您應該看到控制臺視圖上打印出“HelloWorld”。其實,Eclipse是在控制臺視圖中打開OSGi控制臺。

3.2.1. OSGi控制臺

OSGi控制臺是OSGi容器的命令行界面,您可以在這個控制臺上啟動、停止、安裝、更新和刪除Bundles。在EclipseIDE中,請點擊該控制臺視圖獲得焦點,然后按回車鍵,這時您可以看到OSGi提示符,如圖2所示:(譯者注,在Eclipse3.3中,如果您沒有看到OSGi提示符,請在圖1的運行配置中,點擊Arguments標簽,然后在ProgramArguments(程序參數)輸入框中鍵入“-console”,然后再次運行該Bundle)。

OSGi控制臺和HelloWorldActivator.java 

圖2. OSGi控制臺和HelloWorldActivator.java

下面是幾個經常使用的OSGi命令,您可以使用這些命令與OSGi容器進行交互。

  1. ss: 該命令顯示所有已安裝的Bundles及它們的狀態,它將顯示Bundle ID,Bundle的簡短名稱及Bundle狀態;  
  2. start< bundleid>: 該命令將啟動一個Bundle;  
  3. stop< bundleid>: 該命令將停止一個Bundle;  
  4. update< bundleid>: 該命令使用新的JAR文件更新一個Bundle;  
  5. install< bundleid>: 該命令將一個新的Bundle安裝到OSGi容器;  
  6. uninstall< bundleid>: 從OSGi容器中卸載一個已安裝的Bundle。   

請注意,這些命令是OSGi規范中規定的,因此,您可以使用它們和任何OSGi容器交互。

讀到這里,希望您對OSGi Bundle的開發有了一個大致的了解。

【編輯推薦】

  1. OSGi是什么:Java語言的動態模塊系統
  2. OSGi 4.2將于8月發布 新版特性預覽
  3. Spring Tool Suite開始支持OSGi
  4. 基于OSGi的動態化系統搭建
  5. 初探OSGi Web容器:控制Web程序的生命周期
責任編輯:yangsai 來源: Carl的博客
相關推薦

2009-09-28 14:49:08

Spring DMOSGi服務

2023-01-06 08:18:44

2009-10-19 14:14:19

OSGi Web應用

2011-09-08 10:41:12

Node.js

2009-09-29 09:16:23

啟動bundleOSGi

2011-12-05 15:44:45

Knockout

2017-11-23 17:45:46

Yii框架IntelYii框架深度剖析

2014-12-19 10:07:10

C

2021-01-20 07:48:28

TechFlow前端網站

2009-09-17 11:19:34

OSGi依賴性管理

2009-08-11 10:32:23

什么是Groovy

2009-07-30 13:21:17

Scala入門Hello World

2023-09-04 07:30:03

Wasm匯編語言

2011-06-08 14:39:06

Qt 教程

2012-02-20 14:26:48

JavaPlay Framew

2023-05-23 08:01:10

Netty網絡通信

2021-11-26 08:22:01

Java動態開發

2011-08-05 09:48:46

iPhone Interface

2014-04-11 11:36:42

NDKAndroid開發終端

2009-08-14 16:54:19

C# Hello Wo
點贊
收藏

51CTO技術棧公眾號

日韩精品在线免费播放| 91在线高清| 色尼玛亚洲综合影院| 欧美 亚欧 日韩视频在线| 高跟丝袜欧美一区| 91久久爱成人| 亚洲色成人网站www永久四虎| 国产福利第一页| 欧美岛国激情| 色呦呦日韩精品| 久久精品国产精品青草色艺| 黄页网站免费观看| 成人激情久久| 《视频一区视频二区| 国产精品久久久久一区二区| 国产精品无码在线| 青青草视频在线免费直播| 久久国产综合精品| 少妇av一区二区三区| 亚洲视频在线a| 久久99久久| 亚欧成人精品| 日韩电视剧在线观看免费网站| 国产精品va在线观看无码| 一二三区在线播放| 日韩国产欧美一区二区| 欧洲精品中文字幕| 日本高清视频一区二区三区| 精品国产xxx| 蜜桃a∨噜噜一区二区三区| 欧美三级xxx| 欧美性大战久久久久| 丰满人妻老熟妇伦人精品| 亚洲精品91| 精品国产自在久精品国产| 日韩中文字幕一区二区| 少妇又紧又色又爽又刺激视频 | www.超碰97| 国产在线美女| 久久老女人爱爱| 国产精品精品视频一区二区三区| 日韩毛片无码永久免费看| 成人国产一区二区三区精品麻豆| 国产精品久久久久久久久免费桃花| 国产欧美中文字幕| 九九精品视频免费| 91精品国产自产在线丝袜啪| 亚洲va欧美va天堂v国产综合| 九色一区二区| 免费观看国产视频| 亚洲欧美日韩国产一区二区| 隔壁老王国产在线精品| 亚洲第一成人网站| 四虎精品永久免费| 亚洲成人自拍网| 日韩国产精品一区二区三区| 你懂的在线网址| 蜜臀av一区二区在线免费观看| 久久精品小视频| 中国黄色片视频| 久久天堂av| 亚洲综合成人网| 人偷久久久久久久偷女厕| 亚洲欧美综合在线观看| 久久99国产精品麻豆| 欧美激情视频网| 一区二区三区在线观看免费视频| 一区二区三区日本久久久| 欧美日韩激情一区二区三区| 91午夜在线观看| 春暖花开成人亚洲区| 国产精品综合一区二区| 8x拔播拔播x8国产精品| 2025国产精品自拍| 欧美~级网站不卡| 欧美黑人xxxx| 国产免费av一区二区| 午夜av一区| 亚洲欧美成人精品| 美女被爆操网站| 成人午夜毛片| 欧美一区二区三区日韩视频| 三级4级全黄60分钟| 国产区美女在线| 最新日韩av在线| 性高湖久久久久久久久aaaaa| heyzo中文字幕在线| 亚洲精品国产a久久久久久| 色乱码一区二区三在线看| 天天色综合久久| 国产精品1024久久| 成人免费午夜电影| 亚洲综合精品视频| 国产乱码精品1区2区3区| 国产伦理一区二区三区| 99免费在线视频| 99久久亚洲一区二区三区青草| 成人网中文字幕| 日本黄色大片视频| 欧美国产日产图区| 日本一区免费| av在线网址观看| 亚洲色图制服丝袜| 中文字幕色一区二区| 成人欧美亚洲| 一区二区久久久久久| 久久久久久久少妇| 电影一区二区在线观看| 精品国产伦一区二区三区观看体验 | 九九九热999| 欧美人xxx| 国产精品久久久久久妇女6080| 国产日韩欧美精品在线观看| av有码在线观看| 欧美日韩一区国产| 奇米影视四色在线| 日本成人在线网站| 亚洲女人被黑人巨大进入al| 私库av在线播放| 欧美精品午夜| 欧美交受高潮1| 久久久久成人精品无码| 亚洲精选一区| 欧美在线视频网| 久久久久久无码午夜精品直播| 久久久久国产精品一区三寸| 国产精品美乳在线观看| 日批视频免费播放| 亚洲精品国产成人久久av盗摄| av丝袜天堂网| 综合亚洲色图| 91精品国产777在线观看| 国产日韩在线观看一区| 国产精品亚洲午夜一区二区三区 | 国产在线视频一区| 国产一级片在线| 精品久久久久人成| 久久久久久久激情| 黄色精品视频| 亚洲毛片在线免费观看| 天天操天天干视频| 99这里只有精品| 妞干网在线视频观看| 久久野战av| 日韩手机在线导航| 国产精品无码毛片| 亚洲日韩视频| 久久国产主播精品| 偷拍自拍在线看| 欧美日韩极品在线观看一区| 亚洲午夜精品久久久久久高潮| 久久久久国产精品午夜一区| 日韩电影免费观看高清完整| 国产精品毛片久久久久久久久久99999999| 亚洲全黄一级网站| 亚洲色婷婷一区二区三区| 精品一区二区三区在线观看| 中文字幕日韩精品久久| a一区二区三区亚洲| 亚洲精品国产精品国自产在线 | 亚洲天堂av老司机| 国产永久免费网站| 欧美日韩一区二区三区四区不卡| 一区二区亚洲欧洲国产日韩| 久草网视频在线观看| 国产成人av影院| 日日夜夜精品网站| 福利一区在线| 久久国产精品久久久久久| 亚洲日本韩国在线| 99国内精品久久| 特级毛片在线免费观看| 亚洲v.com| 伊人伊成久久人综合网站| 国产精品久久久久久久久毛片| 99久久婷婷国产综合精品| 男人揉女人奶房视频60分| 欧美影院视频| 国产亚洲欧洲黄色| 日韩精品人妻中文字幕| 国产一区二区不卡| 日本一区精品| 电影一区中文字幕| 国内精品久久久久久| 韩国中文免费在线视频| 91麻豆精品国产综合久久久久久 | 久久免费视频在线观看| 欧美日韩国产亚洲沙发| 欧美军同video69gay| 免费看91的网站| 国内精品写真在线观看| 亚洲精品国产一区| 成人日韩精品| 久久中文精品视频| 一级全黄裸体免费视频| 国产欧美精品一区| 免费在线观看毛片网站| 91精品综合久久久久久久久久久 | 韩国三级hd两男一女| 奇米777欧美一区二区| 精品欧美一区二区在线观看视频| 51xtv成人影院| 日韩午夜精品电影| 久操视频在线免费观看| 久久精品亚洲国产奇米99| 免费黄色福利视频| 伊人情人综合网| 91久久综合亚洲鲁鲁五月天| 老司机精品影院| 欧美日韩国产高清一区| 久久夜靖品2区| 99re视频这里只有精品| 在线视频观看91| 三级欧美在线一区| 国产一区二区三区黄| 国产羞羞视频在线播放| 最近2019年手机中文字幕| 无码h黄肉3d动漫在线观看| 7777女厕盗摄久久久| 波多野结衣黄色网址| 午夜精品福利一区二区三区av| 国产精品国产三级国产传播| 韩国成人在线视频| 欧美伦理视频在线观看| 国产亚洲成人一区| 日本10禁啪啪无遮挡免费一区二区| 欧美午夜网站| 97超碰色婷婷| 韩国成人免费视频| 久久久国产精品亚洲一区| eeuss影院www在线观看| 亚洲免费福利视频| 婷婷色在线视频| 亚洲第一免费播放区| 亚洲成人av影片| 香蕉av福利精品导航| 久久精品视频9| 91麻豆国产福利精品| 婷婷六月天在线| 亚洲一区在线| 色中文字幕在线观看| 97精品国产福利一区二区三区| 日韩精品欧美专区| 国产成人3p视频免费观看| 欧美福利电影在线观看| 国产一区私人高清影院| 国产一区二区三区四区五区3d| 久久久999精品视频| 在线观看免费版| 尤物yw午夜国产精品视频明星| 国产视频第一区| 日韩欧美三级在线| 亚洲图片在线视频| 欧美性生交大片免网| 天天爽夜夜爽人人爽| 色天天综合久久久久综合片| 9久久婷婷国产综合精品性色| 国产成人无码专区| 精品久久久久久久久久久久久| 黄色一级视频免费观看| 亚洲乱码国产乱码精品精可以看| 制服下的诱惑暮生| 99精品视频免费| 一本色道久久综合亚洲精品婷婷 | 亚洲欧美日韩成人高清在线一区| 亚洲一二三四五六区| 99久久精品免费看| 久久久久麻豆v国产精华液好用吗| k8久久久一区二区三区| 欧美精品黑人猛交高潮| 国产视频视频一区| 无码人妻丰满熟妇区毛片蜜桃精品| 国产精品亚洲а∨天堂免在线| 精品人妻二区中文字幕| 99精品视频在线免费观看| 精品成人av一区二区三区| 国产精品天天摸av网| 欧美爱爱免费视频| 午夜av一区二区三区| 91麻豆精品在线| 欧美一级专区免费大片| 天堂在线中文网| 一本色道久久88精品综合| 快射视频在线观看| 午夜伦理精品一区| 黄色网页在线免费看| 欧美国产乱视频| 自拍偷拍亚洲视频| 成人妇女免费播放久久久| 亚洲小说春色综合另类电影| 久久久久久久久久久久久久久久av| 欧美日韩一二三四| 玖玖玖精品中文字幕| 日韩在线观看一区二区三区| 国产女人水真多18毛片18精品| 欧美激情在线免费| 日韩精品一区二区三区电影| 日本久久综合| 日韩精品不卡| 欧美精品18| 中文字幕永久视频| 成人中文字幕在线| 中文字幕制服丝袜| 国产欧美日韩精品a在线观看| 欧美做爰啪啪xxxⅹ性| 精品国产福利视频| 国产精品探花视频| 精品亚洲国产成av人片传媒| 九义人在线观看完整免费版电视剧| 69精品小视频| 日本久久伊人| 先锋影音日韩| 国产亚洲毛片在线| 在线观看你懂的视频| 国产欧美日韩视频一区二区| 懂色av.com| 日韩欧美自拍偷拍| 青青青青在线| 国产精品99免视看9| 91p九色成人| 鲁丝一区鲁丝二区鲁丝三区| 欧美三区在线| 亚欧精品在线视频| 国产xxx精品视频大全| 欧美一区二区三区粗大| 国产69精品久久777的优势| 日本护士做爰视频| 夜夜嗨av一区二区三区中文字幕| 国产精品久久久久久免费| 亚洲欧美成人精品| 国精产品一区一区二区三区mba| 蜜桃a∨噜噜一区二区三区| 六月婷婷激情网| 国内精品久久久久久久97牛牛| 97超碰在线人人| 日韩成人一区二区三区在线观看| 草草地址线路①屁屁影院成人| 一区二区三区.www| 午夜精品久久久久久久爽 | 亚洲免费黄色网| 国产精品99久久久| 中文乱码字幕高清一区二区| 亚洲第一福利一区| 高h震动喷水双性1v1| 欧美美女一区二区在线观看| 天堂av一区二区三区| 高清欧美一区二区三区| 麻豆精品99| 性欧美videosex高清少妇| 久久免费黄色| 国产成人无码精品久久二区三| 色天使色偷偷av一区二区| 久久天堂电影| 国产精品极品尤物在线观看| 日本精品三区| 国产欧美激情视频| 伊人婷婷欧美激情| 国产91免费看| 2019精品视频| yiren22亚洲综合| 亚欧精品在线| 国产一区二区h| 国产精品suv一区二区| 日韩精品免费在线观看| 精品国产免费人成网站| 成人欧美视频在线| 日韩欧美字幕| 国内自拍第二页| 亚洲综合丁香婷婷六月香| 天天射天天色天天干| 国产成人精品久久| 91精品电影| zjzjzjzjzj亚洲女人| 日韩美女精品在线| www男人的天堂| 欧美一区二区三区……| jizzjizz欧美69巨大| 日本网站在线看| 亚洲国产成人午夜在线一区| 亚洲专区第一页| 久久99亚洲精品| 国产视频网站一区二区三区| 草草草视频在线观看| 久色婷婷小香蕉久久| 欧美日韩精品亚洲精品| 日韩精品黄色网| 国产一区二区三区四区五区3d| 日韩国产小视频| 日本一区二区三区在线不卡| 精品久久无码中文字幕| 日韩av日韩在线观看| 一呦二呦三呦国产精品| 亚洲 国产 图片| 精品久久久视频| 99视频免费在线观看| 欧美激情www| 国产成都精品91一区二区三| 国产乱码在线观看| 久久久日本电影| 欧美大片aaaa|