我如何在 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")
我可以让 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")