OSGI(三)加载Bundle之Manifest.xml

前端之家收集整理的这篇文章主要介绍了OSGI(三)加载Bundle之Manifest.xml前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

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


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

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

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

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

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

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

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

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

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

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

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

不足之处,敬请指正!

猜你在找的XML相关文章