OSGI(三)加载Bundle之Manifest.xml

   上篇博客中,我们介绍了如何制作插件,那么插件为什么可以显示在界面菜单呢?通过何种方法显示?

        如果大家下载过插件,一定注意到了这个文件:Manifest.xml;打开它可以看到如下:

OSGI(三)加载Bundle之Manifest.xml

      

 那么这个文件是什么?包含什么?如何写?下面我们一一解释:

 首先,Manifest.xml文件属于模块层文件,在OSGI里称作模块清单文件;包含以下节点:    

  • 基本信息——<Bundle>XML节点
  • 激活器信息——<Activator>XML节点
  • 运行时描述——<Runtime>XML节点
  • 服务信息——<Services>XML节点
  • 扩展信息——<ExtensionPoint><Extension>XML节点
  • 详细信息——<BundleInfo>XML节点

    

< Bundle>xml节点:NameBundle的名称;SymbolicName标记名称;InitializeState初始化状态;一般NameSymbolicName是需要修改的;

 <Runtime>——运行时描述,配置模块本地程序集,模块依赖的程序集;<Assembly Path>XML配置节点声明本地程序集;

 <Dependency >XML配置节点声明依赖,包括:依赖其它模块的程序集,依赖其它模块(所有程序集);

<ExtensionPoint>XML节点:拓展信息;<Application>节点里面是对显示名称、底层类的一些设置。

              定义可扩展点,动态实现了扩展:

  • 使用XML Schema定义了扩展信息的格式
  • 使用IBundleContext的GetExtensionPoints、GetExtensions等方法获取扩展信息
  • 使用IBundleContext.ExtensionChanged事件监听是否有模块对其进行扩展
  • 模块在启动时添加扩展,停止时卸载扩展        

       其实Manifest文件,类似于插件目录,程序调用的时候通过Manifest读取信息,才能调用插件;Manifest存的是插件可配置修改的信息,需要 Manifest文件写正确,因为程序读每个插件的时读的是Manifest文件中配置的信息,通过Manifest文件才能加载正确的插件。

      现在,插件如何做如何使用通过小例子差不多都可以了,下篇博客会介绍OSGI.NET体系结构。

      不足之处,敬请指正!

OSGI(三)加载Bundle之Manifest.xml

上一篇:HDOJ 1561 The more, The Better


下一篇:MVVM设计模式基础知识--ICommand接口