Java Osgi捆绑包更新和ResourceBundle

Java Osgi捆绑包更新和ResourceBundle,java,osgi,resourcebundle,Java,Osgi,Resourcebundle,假设我们有两个osgi包:bundleA和bundleB。在bundleB中,我们有一些文本.properties。所以,在bundleA我们是这样做的 ResourceBundle rb= ResourceBundle.getBundle("com/foo/texts",locale, classFromBundleB.getClassLoader()); 现在,我们更新bunldeB或完全删除它,并安装并启动新版本的bundleB,其中包含新版本的text.propert

假设我们有两个osgi包:bundleA和bundleB。在bundleB中,我们有一些
文本.properties
。所以,在bundleA我们是这样做的

ResourceBundle rb= 
        ResourceBundle.getBundle("com/foo/texts",locale, classFromBundleB.getClassLoader());
现在,我们更新bunldeB或完全删除它,并安装并启动新版本的bundleB,其中包含新版本的
text.properties
。还有两个问题:

  • 现有的“rb”会发生什么变化?它必须工作吗
  • 如果在bundleB的新版本发布后,我们会执行与上述相同的代码-我们会在
    rb
    text.properties的新版本中看到吗?或者我们需要为此采取其他行动

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