【发布时间】:2015-09-19 19:28:30
【问题描述】:
OSGi R5 Enterprise 版本包含子系统规范。
- OSGi 子系统是否包含 Eclipse 特性的所有功能?
- 是否有适合它的工具?
此映射的目的是重用现有的eclipse 功能,例如基于felix 或bnd/bndtools 的基础架构。
【问题讨论】:
标签: eclipse osgi apache-felix bndtools subsystem
OSGi R5 Enterprise 版本包含子系统规范。
此映射的目的是重用现有的eclipse 功能,例如基于felix 或bnd/bndtools 的基础架构。
【问题讨论】:
标签: eclipse osgi apache-felix bndtools subsystem
是的……有点。子系统功能强大,但也比 Eclipse 功能更复杂。
功能只是一组捆绑包。您可以将多个功能安装到单个 OSGi 框架中,并且每个功能的捆绑包可以相互交互,例如通过导入包或绑定服务。这使得它们难以测试和推理,因为单独工作的功能在与其他功能一起安装时可能无法工作。
子系统也是一组捆绑包,但它还包括一定程度的隔离。您可以控制来自一个子系统的包、服务和其他功能是否对任何其他子系统的成员可见。因此它们更容易预测。
不幸的是,构建一个子系统是一项复杂得多的任务,据我所知,没有专门的工具可以解决这个问题。我们没有在 bnd/Bndtools 中做任何事情来帮助解决这个问题。但是,嘿,它是开源的...欢迎贡献 ;-)
【讨论】:
子系统和功能实际上是两个正交的东西。 Eclipse 功能是一组可以安装到 OSGi 运行时的捆绑软件。实际上,包含大量 Require-Bundle 元素的捆绑包和功能之间几乎没有区别,就要求安装它们而言。
另一方面,OSGi 子系统是一种允许嵌套 OSGi 运行时的提议方式。然而,在 OSGi 规范的最终版本中,它们被更通用的布线结构所取代;但无论如何,他们做的是完全不同的事情。
【讨论】: