【问题标题】:Can OSGi subsystems replace Eclipse features?OSGi 子系统可以替代 Eclipse 功能吗?
【发布时间】:2015-09-19 19:28:30
【问题描述】:

OSGi R5 Enterprise 版本包含子系统规范。

  • OSGi 子系统是否包含 Eclipse 特性的所有功能?
  • 是否有适合它的工具?

此映射的目的是重用现有的eclipse 功能,例如基于felixbnd/bndtools 的基础架构。

【问题讨论】:

    标签: eclipse osgi apache-felix bndtools subsystem


    【解决方案1】:

    是的……有点。子系统功能强大,但也比 Eclipse 功能更复杂。

    功能只是一组捆绑包。您可以将多个功能安装到单个 OSGi 框架中,并且每个功能的捆绑包可以相互交互,例如通过导入包或绑定服务。这使得它们难以测试和推理,因为单独工作的功能在与其他功能一起安装时可能无法工作。

    子系统也是一组捆绑包,但它还包括一定程度的隔离。您可以控制来自一个子系统的包、服务和其他功能是否对任何其他子系统的成员可见。因此它们更容易预测。

    不幸的是,构建一个子系统是一项复杂得多的任务,据我所知,没有专门的工具可以解决这个问题。我们没有在 bnd/Bndtools 中做任何事情来帮助解决这个问题。但是,嘿,它是开源的...欢迎贡献 ;-)

    【讨论】:

    • 感谢您的意见,我想我会试一试的。我认为如果使用 bnd/Bndtools 的“纯”OSGi 社区可以通过 OSGi 子系统直接使用“Eclipse Feature”,他们可能会受益。
    【解决方案2】:

    子系统和功能实际上是两个正交的东西。 Eclipse 功能是一组可以安装到 OSGi 运行时的捆绑软件。实际上,包含大量 Require-Bundle 元素的捆绑包和功能之间几乎没有区别,就要求安装它们而言。

    另一方面,OSGi 子系统是一种允许嵌套 OSGi 运行时的提议方式。然而,在 OSGi 规范的最终版本中,它们被更通用的布线结构所取代;但无论如何,他们做的是完全不同的事情。

    【讨论】:

    • 你能提供这些陈述的一些来源吗?据我了解,SubSystem 实际上是 Eclipse 功能的标准化:coderthoughts.blogspot.ch/2013/04/osgi-subsystems.html
    • 否;功能安装到同一个实例中,而 osgi 子系统是一组分区的捆绑包,在同一 OSGi 运行时中看不到其他捆绑包。它更类似于同一个 tomcat 容器中的不同 webapps。无论如何,它们在后来的规范中被修改为一个简单的连接/隐藏协议,而不是一个嵌套框架。
    • @AlBlue 不仅如此。是的,core 进行了最低限度的更新以包括连线过滤器......但还有基于这些过滤器的子系统服务规范(OSGi 企业规范,第 134 章),以创建具有范围区域的完整子系统概念等
    猜你喜欢
    • 1970-01-01
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-23
    • 2022-10-14
    • 2023-03-05
    • 1970-01-01
    相关资源
    最近更新 更多