在 OSGi 中连接组件的过程似乎随着时间的推移而发展。
进展似乎如下:
有很多不同的库和方法,我需要一种方法来筛选出合理方法的选项。我不知道这些技术何时是解决同一问题的重复方法或相互构建的方法。
我知道我将使用以下内容:
- 阿帕奇费利克斯
- 阿帕奇吊索
- 马文
除此之外,我想要一种直接的技术来创建包,而无需任何重复。
这是我使用 maven 和以下插件创建的包的屏幕截图:maven-bundle-plugin、maven-scr-plugin。
我注意到很多冗余,不确定什么是必要的。
pom.xml 为什么jar中包含pom.xml?OSGi 是否需要从 OSGi Bundle Repository (OBR) 中提取依赖项?
MANIFEST.MF 这也列出了依赖项并引用了 serviceComponents.xml
Service-Component: OSGI-INF/serviceComponents.xml
serviceComponents.xml 似乎是对带有 SCR 注释的 XML 表达式的清单的扩展。在这一点上,Java 类中的 SCR 注释是无关紧要的,还是 OSGi 会使用这个 XML 来查找带有注释的类?我猜如果我使用 iPojo 这个 XML 会被 iPojo XML 取代?
scrinfo.xml 这是 serviceComponents.xml 的副本,它只添加
private="false"
到每个节点。metatype.xml 这看起来像其他生成的 XML,但没有使用 SCR 命名空间。
我猜这些是我的包的私有依赖项,不会暴露给系统的其余部分。
我不喜欢这是一个曲折的问题,但我似乎无法找到关于 OSGi 的 Apache-Felix 实现正在寻找什么以及一种技术结束而另一种技术开始的可靠图片。如果某个地方有一个很好的图表来显示重叠,那将很有帮助,或者如果有人可以将其缩小到特定的推荐堆栈,这样我就可以在整理技术细节时戴上一些眼罩,那就太好了。