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

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

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

    Live a simple life

    沉默(zhu_xing@live.cn)
    隨筆 - 48, 文章 - 0, 評論 - 132, 引用 - 0
    數(shù)據(jù)加載中……

    【原創(chuàng)】Eclipse插件開發(fā):用戶自定義插件會在Eclipse實例運行期間被stop嗎?

            還記得剛接觸插件開發(fā)不久的時候,加上看了點OSGI協(xié)議(其實,當(dāng)時根本看不懂~_~),留下了如下的錯覺:
        1、我的插件在不用的時候會被自動stop的。例如我的插件主要貢獻了一個自定義的編輯器,如果用戶把我提供的編輯器都關(guān)閉了,我的插件會馬上被自動stop掉;用戶過會再打開的時候,我的插件會再啟動回來
        2、基于以上觀點,我的資源釋放就放在我的Plugin.stop中,反正會馬上被釋放(不管eclipse實例--osgi framework--是否退出)
        3、...
        
            想想當(dāng)初,當(dāng)時是把OSGI協(xié)議中的bundle生命周期管理想象的過于神話了。可能是不想輕易放棄自己的觀點,所以后來特意又仔細(xì)看了兩次OSGI協(xié)議,里面確實講了Bundle會被stop,而且如果stop的過程中發(fā)生異常,osgi framework會怎樣處理云云......但是,翻了幾遍也只發(fā)現(xiàn)了默認(rèn)兩種情況下Bunlde會被stop:
        1、OSGI framework退出的時候。映射到Eclipse插件開發(fā)場景下,也就是說當(dāng)Eclipse實例退出的時候,我們的Plugin肯定會被stop
        2、在支持osgi控制臺的協(xié)議實現(xiàn)中,用戶可以通過_stop來強制stop一個bundle。(這種情況,在Eclipse插件開發(fā)的場景下,就不討論了)

            難道讓我自己去判斷我的插件是否被使用了,然后自己stop自己???

            看來有點心灰意冷了,自己想要的那種自己的Eclipse插件會在不用的時候馬上stop,用的時候再馬上start的效果(注明:在osgi framework即Eclipse實例一直運行的情況下)是不存在的。于是,有點不相信協(xié)議了,就直接去翻了一下Eclipse對osgi的實現(xiàn)代碼,發(fā)現(xiàn)Bundle.stop被調(diào)用的地方非常少,總結(jié)一下基本上兩種情況:
            1、osgi framework在用,在framework退出的時候,stop掉俺的插件
            2、FrameworkCommandProvider在用,那不用說了,就是osgi控制臺命令行在使用了

           Eclipse,難道你即時動態(tài)地判斷一下俺的插件是否可以被stop就這么難嗎?
           確實很難,關(guān)于這個問題過兩天閑下來會寫個豆腐塊文章來大膽地揣測一下(這可能涉及到了osgi對狀態(tài)支持等...)

             說到這邊,有人可能會問了?為什么不在程序里面強制調(diào)用Bundle.stop來stop掉自己想stop的插件呢?
           關(guān)于這個問題的原因也挺復(fù)雜的,插件的上下文環(huán)境、目標(biāo)插件所處的位置......總之,如果不是osgi那塊的高手,在做Eclipse插件開發(fā)的過程中,最好不要這么做!!!


           現(xiàn)在,我們基本可以瞑目了,對一般Eclipse插件開發(fā)者,請記住如下可能看起來不是太嚴(yán)謹(jǐn)?shù)慕Y(jié)論吧:
          的確,你的插件會被lazy start,但是一旦start了,就等到Eclipse實例退出的時候stop吧。

          再想想以前犯的錯誤:把心想馬上釋放的資源直接丟到了Bundle.stop中。那知道,直到Eclipse實例退出的時候,它才被執(zhí)行啊....


    本博客中的所有文章、隨筆除了標(biāo)題中含有引用或者轉(zhuǎn)載字樣的,其他均為原創(chuàng)。轉(zhuǎn)載請注明出處,謝謝!

    posted on 2008-08-05 10:56 zhuxing 閱讀(1770) 評論(2)  編輯  收藏 所屬分類: Eclipse Plug-in & OSGI

    評論

    # re: 【原創(chuàng)】Eclipse插件開發(fā):用戶自定義插件會在Eclipse實例運行期間被stop嗎?  回復(fù)  更多評論   

    呵呵 看了你的文章 讓我感覺 OSGI 不過又是某些人炒作的新概念 或者說 尚未完善 這兩年好像計算機軟件技術(shù)發(fā)展遇到瓶頸了 能看到的都是炒作概念 把幾個老技術(shù)組合一下就開始大吹

    概念總是很高深 開發(fā)過程就是手工寫啊寫啊 寫XML 這點 需要好好學(xué)習(xí)微軟的用戶友好技術(shù)
    2008-08-06 08:20 | BeanSoft

    # re: 【原創(chuàng)】Eclipse插件開發(fā):用戶自定義插件會在Eclipse實例運行期間被stop嗎?  回復(fù)  更多評論   

    @BeanSoft
    "OSGI 不過又是某些人炒作的新概念 或者說 尚未完善"

    不能說單純的炒作新概念了,畢竟是一種不錯的組件化開發(fā)理論

    尚未完善是真的。包括OSGI到底適應(yīng)于那些場景等等,現(xiàn)在也都是人云亦云
    2008-08-06 09:19 | zhuxing
    主站蜘蛛池模板: 暖暖免费高清日本一区二区三区| 无码国产精品一区二区免费虚拟VR| 国产精品国产午夜免费福利看| 亚洲国产情侣一区二区三区| 2015日韩永久免费视频播放| 老汉色老汉首页a亚洲| 老司机69精品成免费视频| 亚洲av永久无码精品秋霞电影影院 | 亚洲精品无码日韩国产不卡?V| 国产午夜亚洲精品不卡电影| 国产真实伦在线视频免费观看| 在线亚洲v日韩v| 亚洲av再在线观看| 97超高清在线观看免费视频| 亚洲AV无码一区二区三区系列 | 色吊丝性永久免费看码| 亚洲日本韩国在线| APP在线免费观看视频| 亚洲无线电影官网| 午夜宅男在线永久免费观看网| 亚洲国产精品成人午夜在线观看| 国产老女人精品免费视频 | 久久久久久久99精品免费观看| 久久亚洲国产成人精品性色| 亚洲精品免费网站| 另类专区另类专区亚洲| 亚洲乱码中文字幕综合| 99re这里有免费视频精品| 亚洲日本va一区二区三区| 亚洲国产精品综合久久一线| 巨胸狂喷奶水视频www网站免费| 亚洲一区影音先锋色资源| 精品久久久久久久久免费影院| 国产成人va亚洲电影| 亚洲狠狠婷婷综合久久久久| 久视频精品免费观看99| 男女男精品网站免费观看| 亚洲国产一区国产亚洲| 国产成人青青热久免费精品| 天黑黑影院在线观看视频高清免费| 91亚洲精品麻豆|