2017-08-07 9 views
0

私たちは2つのosgiバンドル、bundleAとbundleBを持っているとします。バンドルBではtexts.propertiesがあります。だから、bundleAに我々は今、我々はbunldeBをOsgiバンドルアップデートとResourceBundle

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

を更新したり、完全にそれを削除し、texts.propertiesの新しいバージョンが含まれてbundleBの新しいバージョンをインストールして起動します。そして2つの質問:

  1. 既存の 'rb'はどうなりますか?それは動作する必要がありますか?
  2. bundleBの新しいバージョンが来たら、上記と同じコードを実行します。rb新しいバージョンtexts.propertiesに表示されますか?あるいは、これに対して追加の処置を行う必要がありますか?

答えて

1

bundleAはclassFromBundleBへの参照を持っているため、bundleAをリフレッシュしない限り、classFromBundleBは元のbundleBから引き続き維持されます。また、ResourceBundleはキャッシュを保持しているので、同じrbを取得し続けることになります。したがって、bundleBを更新した後、bundleBのクラスに依存するバンドルをリフレッシュする必要があります。

関連する問題