以编程方式启动OSGi(Equinox)?
我希望能够轻松启动OSGi框架(最好是Equinox)并从java main加载我的pom中列出的所有bundle。
这可能吗?如果是这样,怎么样?
似乎pax工具会这样做,但我似乎找不到任何指示这样的文档。我知道我可以像这样启动Equinox:
BundleContext context = EclipseStarter.startup( ( new String[] { "-console" } ), null );
但我想做更多 - 就像我说的:加载更多的捆绑包,可能会启动一些服务,等等。
没有找到相关结果
已邀请:
3 个回复
蕉衫
API以编程方式启动:
OSGi框架现在正在运行。由于
扩展
,你可以调用
并调用所有正常的API方法来操作包,注册服务等。例如
最后你应该等待框架关闭:
重申一下,这种方法适用于任何OSGi框架,包括Equinox和Felix,只需将框架JAR放在类路径上即可。
勺的驴吓识
该命令将是:
注意:鸡蛋方案 - 您必须首先使用文件:url处理程序安装它们或将它们放入autodeploy目录中。 卡拉夫有这个全部内置它的发行版,所以也许看看卡拉夫发射器源? 第二个注意事项:通过将@snapshots附加到repo URL来启用部署快照,通过ConfigAdmin管理配置 在管理所有POM定义的依赖项方面,请看一下Karaf的功能 - 有一个插件可以生成一个功能XML文件,然后可以用来部署整个应用程序: http://karaf.apache.org/manual/2.1.99-SNAPSHOT/developers-guide/features-maven-plugin.html 此外,这个XML工件可以部署到您的OBR,因此您可以使用vanilla Felix / Equinox / Karaf设置,添加mvn url处理程序并使用您公司的mvn repo进行配置,然后配置整个app =)
梆晨灸碾
编辑:Maven 似乎https://groups.google.com/group/spring-osgi/web/maven-url-handler?pli=1包含OSGi URl处理程序服务,该服务可以采用以下格式的URL并从中加载捆绑包( mvn:// repo / bundle_path)