【问题标题】:Osgi Bundle update and ResourceBundleOsgi Bundle 更新和 ResourceBundle
【发布时间】:2017-08-07 09:54:06
【问题描述】:

免得我们假设我们有两个 osgi 包:bundleA 和 bundleB。在 bundleB 中,我们有一些 texts.properties。所以,在 bundleA 中我们这样做了

ResourceBundle rb= 
        ResourceBundle.getBundle("com/foo/texts",locale, classFromBundleB.getClassLoader());

现在,我们更新 bunldeB 或完全删除它,然后安装并启动包含新版本 texts.properties 的新版本 bundleB。还有两个问题:

  1. 现有的“rb”会怎样?它必须有效吗?
  2. 如果在新版本的 bundleB 出现后我们执行与上面相同的代码 - 我们会在 rb 新版本的 texts.properties 中看到吗?或者我们需要为此执行其他操作?

【问题讨论】:

    标签: java osgi resourcebundle


    【解决方案1】:

    由于bundleA 有classFromBundleB 的引用,除非bundleA 被刷新,否则它将继续维护来自原始bundleB 的classFromBundleB。而且由于 ResourceBundle 维护一个缓存,您将继续获得相同的 rb。因此,在更新 bundleB 之后,您需要刷新依赖于 bundleB 中的类的包。

    【讨论】:

      猜你喜欢
      • 2012-11-15
      • 1970-01-01
      • 2013-02-10
      • 2015-07-20
      • 2011-06-18
      • 2014-05-27
      • 2014-04-27
      • 2013-10-18
      • 2011-05-21
      相关资源
      最近更新 更多