可以假设我们有两个osgi包:bundleA和bundleB。在bundleB中,我们有一些texts.properties
。所以,在bundleA中我们做
ResourceBundle rb=
ResourceBundle.getBundle("com/foo/texts",locale, classFromBundleB.getClassLoader());
现在,我们更新bunldeB或完全删除它,并安装并启动包含新版本texts.properties
的新版本的bundleB。还有两个问题:
rb
新版texts.properties
中看到吗?或者我们需要为此做其他操作?答案 0 :(得分:1)
由于bundleA引用了classFromBundleB,除非刷新bundleA,否则它将继续从原始bundleB维护classFromBundleB。而且由于ResourceBundle维护了一个缓存,你将继续获得相同的rb。因此,在更新bundleB之后,您将需要刷新依赖于bundleB中的类的包。