2017-05-07 3 views
1

今日、私はバンドルを更新したときに状況に遭遇しましたが、コードに変更がないのでプログラムは動作し続けました。いくつかの読みになった後、私はOSGiのリフレッシュしなければならないことを理解 - (SOで見つかった)次のコードを:いつosgiリフレッシュを行うべきですか?

Bundle systemBundle = bundleContext.getBundle(0); 
FrameworkWiring frameworkWiring = systemBundle.adapt(FrameworkWiring.class); 
frameworkWiring.refreshBundles(null); 

だから私の質問 - 私はOSGiのリフレッシュをするときにすればよいですか?アップデート後のみ?それぞれのバンドルのアップデート後、またはNバンドルをアップデートした後、リフレッシュできますか?

答えて

1

OSGiでパッケージ間の配線を再初期化する場合は、OSGiリフレッシュを実行する必要があります。通常、これはバンドルのバージョンをアップグレード/ダウングレードした後に必要になります。

また、役立つことがあります。What do these OSGi commands really do?

または私はNの束を更新することができ、その後更新していますか?

詳細を詳しく調べていないのであれば、それはあなたの質問に対する答えです。実際には、OSGiにうまく採用されていないフレームワークがリフレッシュ時にClassLoaderのメモリリークを引き起こす可能性がある状況を観察しましたので、注意してください。

関連する問題