2015-07-02 35 views

回答

4

是的...种。子系统功能强大,但比Eclipse功能更复杂。

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

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

不幸的是,构建一个子系统是一个非常复杂的任务,而且我并不知道这个任务的具体工具。我们没有在bnd/Bndtools中做任何事情来帮助解决这个问题。但嘿它是开源的...捐款欢迎;-)

+0

感谢投入和我想我会试一试。我认为如果可以通过OSGi子系统直接使用“Eclipse Feature”,使用bnd/Bndtools的“纯粹”OSGi社区可能会受益。 –

0

子系统和功能实际上是两个正交的东西。 Eclipse功能是一组可以安装到OSGi运行时的软件包。实际上,在需要安装它们的情况下,具有很多Require-Bundle元素的捆绑软件和某个功能之间几乎没有区别。

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

+0

你能提供这些语句的一些来源吗?以我的理解,SubSystem实际上是Eclipse特性的标准化:http://coderthoughts.blogspot.ch/2013/04/osgi-subsystems.html – Puce

+0

不;功能安装到同一实例中,而osgi子系统是一组分区的软件包,无法在同一OSGi运行时查看其他软件包。它更类似于同一个tomcat容器中的不同webapps。无论如何,它们在后来的规范中被修改为简单的布线/隐藏协议,而不是嵌套框架。 – AlBlue

+1

@AlBlue除此之外还有更多。是的,*核心*被最小化地更新以包括接线滤波器......但是也有子系统服务规范(OSGi企业规范,第134章)建立在这些滤波器上以创建具有作用域区域的完整子系统概念等。 –

相关问题