2013-10-24 65 views
0

我有一个传统的swing应用程序,需要使用JavaFX功能进行扩展。我一直在寻找使用OSGi来做到这一点(目前在看Equinox)。OSGi包共享jar依赖项

现有的遗留应用程序依赖于jar文件main.jar。这个jar包含了我创建的任何bundle来扩展功能所需的接口,例如添加新的面板,菜单等

遗留应用程序在完成其swing任务后,启动OSGi框架,在main.jar中注册实现接口的服务,并安装任何包。

我试图把这个jar放在包里,编译很好,但是当从OSGi注册表中检索服务时,我得到一个ClassCastException。

我不确定如何配置框架/捆绑包,以便遗留应用程序和osgi捆绑包都可以使用main.jar?

回答

0

您需要公开需要使用OSGi框架的系统包导出共享的包。您通过传递属性org.osgi.framework.system.packages.extra来做到这一点。

前段时间我写了一个blog post关于嵌入OSGi,它涵盖了诸如在内部OSGi包和外部Java应用程序之间共享包和服务等方面。

+0

谢谢!不能相信我错过了这一点 – serachley