2013-10-24 116 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