equinox在osgi的基礎上進行了擴展,本文作一個概要說明。
equinox在MANIFEST.MF的基礎上,增加了plugin.xml文件。模型如下圖:
其中osgi描述文件MANIFEST.MF中描述了bundle定義,bundle之間的依賴關系和bundle導入、導出的包;
equinox描述文件plugin.xml中描述了plugin的擴展關系(包括擴展和擴展點的定義),以及插件片段關系。
對于bundle相關的信息,可以通過BundleActivator中的BundleContext引用獲取;equinox中對BundleActivator進行了很多不同的實現,如下圖:
而對于擴展點相關的信息,需要通過IExtensionRegistry獲取:
IExtensionRegistry registry = Platform.getExtensionRegistry();
其中Platform是在eclipse的runtime中定義的,可以獲取平臺及平臺環境的相關信息。
本人的最新博客遷移到http://thinkinside.tk,使用GitHub Pages建立。我會陸續將所寫的文章遷移過去,并進行補充和修正,
歡迎過來圍觀。