osgi - 在同一个 jar 中打包多个 OSGi 包

标签 osgi osgi-bundle

我是 OSGi 平台的新手。

拥有 OSGi 包 B1依赖于另一个包 B2 ,这很可能不是由容器提供的,我可以将两个包打包在同一个 jar 中吗? ?

如果是:怎么做?如果 jar 会发生什么已安装且 bundle 已安装?

最佳答案

是的,你可以这样做......有点。

通常 OSGi 包是 JAR 文件,因为它们需要有一个 META-INF/MANIFEST.MF。 OSGi 框架无法直接读取您的“多 bundle ”JAR。

但是,在 OSGi 中安装包需要调用 BundleContext.installBundle 方法。该方法有两种形式,一种采用 InputStream 作为参数;此 InputStream 应提供 OSGi 包的内容。因此,您可以获取大 JAR 并使用 JarInputStream 读取它,将各个条目传递给 installBundle 方法。

关于osgi - 在同一个 jar 中打包多个 OSGi 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20148375/

相关文章:

java - 我想了解有关 OSGi 及其工作原理的更多信息,知道从哪里开始吗?

java - 运行 JUNIT 测试用例时无法加载 ApplicationContext

java - OSGI:在创建 JUnit 插件测试时出现奇怪的错误

java - 在 OSGi 中加载框架工厂

java - 如何隐藏 OSGi 服务以使其他 bundle 无法找到它们?

java - 使用 Logback 进行 Apache Felix OSGi 日志记录

OSGi:导出一个包而不导出同一个包中的几个类

java - OSGI插件访问resources.jar中的文件

OSGI 捆绑状态宽限期

java - 多个 OSGi 服务