【发布时间】:2016-05-13 15:24:43
【问题描述】:
我目前有一个使用 Equinox OSGI 容器的应用程序,该容器可在 Windows 和 Linux 上运行。每个平台都有自己的启动脚本。作为更新的一部分,有时必须重新启动容器。有没有办法在 JAVA 代码中重新启动 Equinox OSGI 容器而不调用特定于平台的脚本?
【问题讨论】:
-
我认为重新启动 ID 为 0 的捆绑包可以解决问题。
我目前有一个使用 Equinox OSGI 容器的应用程序,该容器可在 Windows 和 Linux 上运行。每个平台都有自己的启动脚本。作为更新的一部分,有时必须重新启动容器。有没有办法在 JAVA 代码中重新启动 Equinox OSGI 容器而不调用特定于平台的脚本?
【问题讨论】:
是的,只需使用 FrameworkFactory API 启动框架即可。
当您的启动程序完成所有它想要的设置后,它应该调用framework.waitForStop(),它会一直阻塞直到 OSGi 关闭。此方法还返回您可以查看的FrameworkEvent。如果事件类型是STOPPED_UPDATE,那么您应该循环回并再次启动框架。
【讨论】: