什么是osgi中的dynamic = domain export?

时间:2015-05-28 07:44:29

标签: osgi equinox osgi-bundle

我使用osgi / equinox并在浏览我们的一个包MANIFEST.MF文件时遇到了奇怪的行:

Export-Package: package.a.b.c;dynamic=domain

使用 dynamic = domain 选项导出包是什么意思?它与常规导出有什么不同(没有任何其他选项)?

1 个答案:

答案 0 :(得分:4)

您可以根据需要向Export-Package子句添加任意数量的自定义属性。另一方面(Import-Package),您可以指定只有具有特定属性的包才对您有用。

请参阅OSGi核心规范的 3.6.5 Export-Package 一章:

  

以下属性是本规范的一部分:

     
      
  • version - 命名包的版本,其语法在第35页的版本中定义。它   定义关联包的版本。默认值为0.0.0。

  •   
  • specification-version - 版本属性的别名,仅用于简化从早期版本的迁移。如果存在version属性,则值必须相等。

  •   
     

此外,可以指定任意匹配属性。请参阅属性匹配(第58页)

参见OSGi核心规范的 3.7.7属性匹配一章:

  

例如,以下语句将匹配。

finally
  

除了使用版本范围比较的版本和bundle-version属性之外,属性值按字符串进行比较。必须忽略属性值中的前导和尾随空格。

请注意,我仅引用了本章的某些部分。您应该检查规格中的原件。

我不认为在Equinox的代码中以特定的方式处理这些属性。如果有多个具有相同名称的包,则可以在Import-Pacakge子句中使用它们。