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

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

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

    Feeling

        三人行,必有我師焉

       ::  :: 新隨筆 :: 聯系 ::  :: 管理 ::
      185 隨筆 :: 0 文章 :: 392 評論 :: 0 Trackbacks

    網上關于Eclipse Fragment的資料比較少,引用Eclipse Wiki的一段話:

    An Eclipse Fragment is a way of putting your own classes into the "class loader" of another package (basically, it's as though your class was actually in the other package). If you combine this ability of a Fragment with the notion of a plugin's classpath ordering, then you can force your class to load before a like-named class in the original package.

    簡而言之,Fragment可以利用Eclipse平臺的ClassLoader機制替換原有Plugin的某些文件,以便實現自己的功能。如果僅僅是因為Plugin擴展,而需要替換自己項目的某些Plugin,可以參考文章:

    http://wiki.eclipse.org/Steps_to_use_Fragments_to_patch_a_plug-in  (來之不易,感興趣的可以收藏下)

    讀完這篇文章,你大概就應該能夠了解到Fragment的實現分為兩部分:Host 和 Patch。這兩部分對應的plugin的manifest.mf文件都需要做特殊處理,對于Patch的build方式也要特殊處理,那就是build出來的plugin jar里放置的不是松散的class文件,而是一個特殊的jar文件,這個 jar 文件定義在Host plugin的manifest.mf 的classpath里面。

    通常情況下,按照這篇文章的做法是沒有問題的。但是在開發階段,有一種情況可能無法實現class的替換。

    我公司的項目是使用perforce進行項目版本控制的,但是perforce比較傻,有些重要的功能沒有實現,而又很關鍵,因此我想自己針對perforce的eclipse plugin做一個fragment,添加自己想要的功能。但是這個plugin沒有source code,而我自己的hack也是反編譯class文件進行的。所以在我的work space里,并沒有Host plugin的 project。結果按照這篇文章的做法,始終不能在workbench debug的狀態下,正確load我hack過的class。因為在代碼模式下面是可以正確load的,而現在沒有代碼,在數次檢驗無果之后,只能針對ClassLoader去思考了。Host文件里要求一個jar文件,我就用PDE 將 fragment export出來,把Fragment plugin jar 包里包含的那個 jar 文件解壓出來,放到 patch project 里,然后重新Debug, OK,這次果然沒問題了。一個小小的Class Loader問題,真的能夠要人命呀……這應當算是Eclipse的一個bug吧,除非是對一個Plugin進行hack,否則一般也不會碰到這種情況。普通的項目開發,肯定會包含Host Plugin的Project。

    我的經歷權且當做飯后談資,不足為慮。我這兒想說的是Fragment機制非常好用,也易于Plugin擴展。比如你的項目分為Open Source 和 Commercial 2種的話, Commercial 部分也可以通過Fragment來實現,不一定需要走Extension Point路線。由于網上相關文章不多,還需要自己多多研究,了解其機制。

    posted on 2009-09-10 16:42 三人行,必有我師焉 閱讀(1742) 評論(0)  編輯  收藏

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


    網站導航:
     
    GitHub |  開源中國社區 |  maven倉庫 |  文件格式轉換 
    主站蜘蛛池模板: 久久精品国产亚洲AV蜜臀色欲| 亚洲av之男人的天堂网站| 日本黄网站动漫视频免费| 亚洲永久无码3D动漫一区| 国产99久久久国产精免费 | 午夜亚洲WWW湿好爽| 你是我的城池营垒免费看 | 国产精品亚洲а∨天堂2021 | 99久久精品免费精品国产| 久久精品国产亚洲| 亚洲免费二区三区| 亚洲人精品亚洲人成在线| 日韩高清在线高清免费| 猫咪免费观看人成网站在线| 亚洲中文无韩国r级电影| 亚洲色成人网站WWW永久四虎| a级毛片100部免费观看| 久久亚洲AV成人出白浆无码国产 | 亚洲精品第一国产综合境外资源 | 国产美女无遮挡免费网站| 添bbb免费观看高清视频| 老汉精品免费AV在线播放| 78成人精品电影在线播放日韩精品电影一区亚洲 | 78成人精品电影在线播放日韩精品电影一区亚洲 | 国产青草视频在线观看免费影院| 婷婷国产偷v国产偷v亚洲| 中文字幕亚洲乱码熟女一区二区| 久久爰www免费人成| 亚洲伊人久久大香线蕉结合| 国产精品免费一级在线观看| 两个人看的www视频免费完整版| 精品亚洲麻豆1区2区3区| 麻豆国产精品入口免费观看| 777亚洲精品乱码久久久久久| 免费无码精品黄AV电影| 国产免费久久久久久无码| 亚洲视频在线一区二区| 日本一卡精品视频免费| MM1313亚洲国产精品| 亚洲∧v久久久无码精品| 最近免费中文字幕大全高清大全1|