我如何在 Scala 的 Felix 中 运行 OSGi 蓝图?

How can I run OSGi blueprint in Felix in Scala?

我可以让 OSGi 蓝图在 Karaf 中工作,但我不明白如何在 Apache Felix 中使用它,或者我的问题也可以定义为如何在普通 OSGi 中使用 OSGi 蓝图?

我在这里做了一个例子https://github.com/PhilAndrew/sbt-osgi-felix-akka-blueprint-camel using https://github.com/doolse/sbt-osgi-felix,其中 Akka 正在工作,但 Blueprint 和 Camel 还没有工作。

这个问题可能会有帮助Is Apache Aries running in Felix?

Apache Karaf 也在 felix 上运行。因此,在大多数情况下,您只需要安装正确的捆绑包,并且如果您违反了包使用约束,则可能需要执行必要的系统包导出。

检查 karaf 安装了什么并尝试执行相同的操作。

它没有启动蓝图,因为您的包的代码实际上并不依赖于蓝图中的任何 类,因此您需要将 "Require-Bundle" header 添加到您的清单中:

requireBundle := Seq("org.apache.aries.blueprint")

或者将需要启动的bundle添加到运行的osgiDependencies中:

osgiDependencies in run := bundleReqs("org.apache.aries.blueprint.core", 
"org.apache.aries.proxy")