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中定义的,可以获取平台及平台环境的相关信息。