【问题标题】:OSGI bundles and multiple jvmsOSGI 包和多个 jvm
【发布时间】:2013-11-16 02:27:33
【问题描述】:

osgi (equinox 3.6) 框架在加载包时会在指定的包目录中创建包元文件。我们正在努力产生多个 jvm 的 .我们可以使用我以前的 jvm 创建的 bundle 文件夹吗?我的意思是我们可以一次安装所有捆绑包并将它们用于许多应用程序吗?

【问题讨论】:

  • 嗨,我想你误会了!让我解释一下我们在做什么:将一直运行主 jvm,并且当请求时会生成新的 jvm,它会在其目录中安装并启动其捆绑包。当请求一个新的 jvm 时,我们再次重复上述相同的过程。但是为了减少加载包的时间,我们尝试将已安装的相同包位置提供给后续 jvm。我们可以这样做吗.. 看起来它的工作和 jvm 中的后续 osgi 如果我们这样做并且可能会遇到问题吗?
  • 或者我们可以并行调用 bundle.start 来加快 bundle 的加载速度吗?它会影响捆绑分辨率吗?

标签: osgi


【解决方案1】:

弄清楚您要问什么有点困难……但听起来您想在运行在不同 JVM 中的多个单独的 OSGi 框架之间共享 OSGi 存储目录。这是不可能的。

【讨论】:

  • 嗨,我想你误会了!
  • 嗨,我想你误会了!让我解释一下我们在做什么:主 jvm 将一直运行,当请求时会产生新的 jvm,它会在它的目录中安装和启动它的包。当请求一个新的 jvm 时,我们再次重复上述相同的过程。但是为了减少加载包的时间,我们尝试将已安装的相同包位置提供给后续 jvm。我们可以这样做吗.. 看起来它的工作和 jvm 中的后续 osgi 如果我们这样做并且可能会遇到问题吗?
  • 或者我们可以并行调用 bundle.start 来加快 bundle 的加载速度吗?它会影响捆绑分辨率吗?
  • 当然...您可以在 JVM 的多次运行中重复使用同一个包目录,只要 JVM 不同时运行。
  • 是的,您可以并行启动捆绑包。不,它不会影响捆绑包解析,因为解析是与开始分开的过程。
【解决方案2】:

a) 是的,您可以在框架之间共享相同的位置 URL b) 不能共享框架包存储区/包缓存(org.osgi.framework.storage 属性)

您知道有一个特殊的参考:OSGi 框架的模式吗?这使您可以更快地安装框架。只需在 URL 前加上引用:scheme。

reference:file://....

【讨论】:

    猜你喜欢
    • 2013-10-31
    • 2013-12-07
    • 2016-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-23
    • 1970-01-01
    • 2020-01-11
    • 1970-01-01
    相关资源
    最近更新 更多