<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-1  評論-9  文章-7  trackbacks-0

    1. 開發(fā)環(huán)境的準備

            現(xiàn)在的eclipse都已經(jīng)包含了Equinox,無需單獨下載。
    2. 開發(fā)OSGi的HelloWorld應用程序

           在這一節(jié),我們將開發(fā)一個OSGi bundle,演示如何利用Equinox進行OSGi bundle的開發(fā)、運行及調(diào)試,為之后的示例做準備。
           首先,新建一個Plug-in工程,如下圖所示:

    下一步,注意選擇目標平臺,默認為Eclipse version *,將其改成Equinox,如下圖所示:


    之后按默認下一步即可,到最后一步時,無需根據(jù)模板創(chuàng)建工程,去掉默認的勾,如下圖:


    點擊完成,創(chuàng)建的工程目錄如下圖所示:


    從圖中,可以看到,eclipse為工程自動生成了一個Activator類,如下所示:
    package helloworld;   
      
    import org.osgi.framework.BundleActivator;   
    import org.osgi.framework.BundleContext;   
      
    public class Activator implements BundleActivator {   
      
        
    /*  
         * (non-Javadoc)  
         * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)  
         
    */
      
        
    public void start(BundleContext context) throws Exception {   
            System.out.println(
    "Hello World!");   
        }
       
      
        
    /*  
         * (non-Javadoc)  
         * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)  
         
    */
      
        
    public void stop(BundleContext context) throws Exception {   
        }
       
      
    }
      
            有過eclipse插件開發(fā)經(jīng)驗的人應該很快就能明白,這就是該工程——實際上就是上一篇文章中所稱的bundle在Equinox平臺中的啟動入口,相當于我們的熟悉的main函數(shù),如果將該bundle運行到Equinox中,首先進入該bundle的是Activator的start方法,你可以將相關(guān)的服務、資源在該方法內(nèi)完成向bundleContext的注冊——文章后面會具體講到相關(guān)內(nèi)容。在運行期,如果想要該bundle停止運行,Equinox平臺將調(diào)用Activator的stop方法,你可以在該方法內(nèi)完成資源的注銷等工作。
            下面我們將要完成首次的Equinox運行,將向大家展現(xiàn)bundle到底是如何運行起來的。為helloworld選擇運行方式,如下圖所示:

            彈出如下對話框:

            在彈出的對話框中,新建一個OSGi Framework運行環(huán)境(雙擊OSGi Framework即可,這里為其取名Equinox),選中helloworld(1.0.0),然后點擊右邊的Add Required Bundles按鈕,eclipse將自動選中運行helloworld的依賴bundle,如果有必要,可以點擊右下的Validate Bundles驗證按鈕,驗證程序正常運行所需的bundle是否都被選中,最后點擊運行,回到控制臺:
    osgi> Hello World!
            可以看到,之前在Activator的start方法中的輸出語句已經(jīng)被輸出到控制臺,我們可以通過命令ss查看Equinox的運行情況,可以看到一共運行了兩個bundle,如下:
    ss

    Framework is launched.

    id State       Bundle
    0 ACTIVE      org.eclipse.osgi_3.4.3.R34x_v20081215-1030
    1 ACTIVE      helloworld_1.0.0

            還記得之前講到過的bundle的幾種狀態(tài)吧?helloworld已經(jīng)運行起來了。
            那么Equinox具體支持哪些命令呢?下表列出了主要的一些命令,如需查看更詳細的命令清單,則可以在控制臺鍵入help。

    類別

    命令

    含義

    控制框架

    launch

    啟動框架

    shutdown

    停止框架

    close

    關(guān)閉、退出框架

    exit

    立即退出,相當于 System.exit

    init

    卸載所有 bundle(前提是已經(jīng) shutdown)

    setprop

    設(shè)置屬性,在運行時進行

    控制 bundle

    install

    安裝

    uninstall

    卸載

    start

    啟動

    stop

    停止

    refresh

    刷新

    update

    更新

    展示狀態(tài)

    status

    展示安裝的 bundle 和注冊的服務

    ss

    展示所有 bundle 的簡單狀態(tài)

    services

    展示注冊服務的詳細信息

    packages

    展示導入、導出包的狀態(tài)

    bundles

    展示所有已經(jīng)安裝的 bundles 的狀態(tài)

    headers

    展示 bundles 的頭信息,即 MANIFEST.MF 中的內(nèi)容

    log

    展示 LOG 入口信息

    其它

    exec

    在另外一個進程中執(zhí)行一個命令(阻塞狀態(tài))

    fork

    和 EXEC 不同的是不會引起阻塞

    gc

    促使垃圾回收

    getprop

    得到屬性,或者某個屬性

    控制啟動級別

    sl

    得到某個 bundle 或者整個框架的 start level 信息

    setfwsl

    設(shè)置框架的 start level

    setbsl

    設(shè)置 bundle 的 start level

    setibsl

    設(shè)置初始化 bundle 的 start level

            至此,我們已經(jīng)成功的演示了helloworld,初步了解了OSGi的bundle是如何開發(fā)并運行的。

    posted on 2010-03-28 16:58 Dreava 閱讀(2204) 評論(0)  編輯  收藏 所屬分類: OSGi

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 一本色道久久88—综合亚洲精品| 国产亚洲精久久久久久无码77777 国产亚洲精品成人AA片新蒲金 | 色妞WWW精品免费视频| 日韩免费视频播播| 亚洲gv猛男gv无码男同短文| 亚洲国产美女福利直播秀一区二区| 亚洲日本中文字幕| 久久精品国产亚洲av天美18| 久9这里精品免费视频| 免费人成网站在线播放| 免费午夜爽爽爽WWW视频十八禁| 久久亚洲精品中文字幕三区| 亚洲成av人片在线天堂无| 暖暖免费日本在线中文| 亚洲欧洲精品成人久久曰影片 | 精品免费久久久久久成人影院| 精品免费国产一区二区三区| 亚洲大尺度无码无码专区| 亚洲日韩精品无码AV海量| 一级做a爰全过程免费视频| 亚洲综合精品香蕉久久网97| 黄 色一级 成 人网站免费| 久久这里只精品国产免费10| 91情国产l精品国产亚洲区| 99re6在线视频精品免费| 18成禁人视频免费网站| 亚洲AV综合色区无码一区爱AV| 国产亚洲精品美女| 女人与禽交视频免费看| 亚洲精品国产福利片| 99精品视频在线观看免费专区| 91频在线观看免费大全| 久久精品无码免费不卡| 亚洲av伊人久久综合密臀性色| 免费国产黄网站在线看| 国产美女无遮挡免费视频网站 | 色多多A级毛片免费看| 国产青草视频免费观看97| 国产激情久久久久影院老熟女免费| 国产精品色拉拉免费看| 亚洲精品免费视频|