我正在一个以前使用Apache Felix作为OSGi框架的嵌入式系统上工作。我的任务是删除Felix并将其替换为Equinox,因为Equinox当前支持OSGi规范的最新版本。
设备上的软件具有大量专有代码,这些专有代码直接与通常与Felix一起提供的某些捆绑软件(诸如eventadmin和log捆绑软件)绑定在一起。这些捆绑软件的Equinox版本有足够的不同,以至于需要重新编写代码。
即使将基础框架从Felix转换为Equinox,是否有任何理由不继续使用其中的Felix捆绑包?
我想澄清的是,我仍在努力围绕OSGi的实际工作进行总结。我担心的是,如果不使用Equinox捆绑包,我们将失去切换到Equinox的优势(我担心提供最新规范的所有额外代码都来自捆绑包,而那些专为Equinox设计,将期望使用这些捆绑软件。)
最佳答案
Apache Felix框架仅实现OSGi核心规范。 Equinox还实现了OSGi核心规范。
您在问是否可以在Equinox内部使用Apache Felix的子项目(EventAdmin,SCR,...)。答案是肯定的。您可以在Equinox中使用许多子项目(如果不是全部),因为它们仅依赖于核心规范。
将它们称为“ Felix ...”可能会造成混淆。可以将它们称为其他任何东西,因为它们与容器实现无关,仅与Felix和Equinox都实现的规范无关。
顺便说一句:一些子项目实现了《 OSGi汇编规范》中的章节。如果其他人恰好实现了相同的章节,则应该可以毫无问题地切换它们。