有没有办法激活/运行osgi Bundle形成另一个正在运行的bundle?

时间:2016-07-19 06:50:55

标签: java osgi osgi-bundle

我正在寻找从另一个正在运行的捆绑包中激活OSGi Bundle的可能性,是否可能?

谢谢, 阿肖克

1 个答案:

答案 0 :(得分:3)

是的,这是规范中管理代理的概念。您将需要一个Bundle Context对象。有几种方法可以获得这种背景:

  • 强烈推荐:使用DS,您可以在激活方法中将BundleContext对象声明为参数
  • 不完全安全:使用FrameworkUtil.getBundle(Class).getBundleContext()
  • 仅在DS不是选项时使用:使用激活器,传递BundleContext对象

BundleContext有一个方法Bundle installBundle(String)。您可以将URL传递给保存包的JAR文件。要启动捆绑包,您可以start就可以了。

由于您可能不熟悉OSGi,因此您可能需要查看Apache Felix FileInstall。这允许您将捆绑包放在随后自动安装的目录中。虽然API很简单,但由于与世界其他地方的互动,管理OSGi框架有很多复杂的情况。

相关问题