【问题标题】:When should osgi refresh be done?osgi 刷新应该什么时候完成?
【发布时间】:2017-05-07 17:18:09
【问题描述】:

今天我在更新捆绑包时遇到了一种情况,但是由于代码没有任何更改,程序继续工作。经过一番阅读,我了解到我必须进行 osgi refresh - 以下代码(在 SO 上找到):

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

所以我的问题 - 我应该什么时候刷新 osgi?只有更新后?每次包更新后还是我可以更新 N 个包然后刷新?

【问题讨论】:

    标签: java osgi


    【解决方案1】:

    当您希望 OSGi 重新初始化包之间的连接时,需要进行 OSGi 刷新。通常在升级/降级某些包的版本后需要这样做。

    您可能会发现也有用:What do these OSGi commands really do?

    或者我可以更新 N 个捆绑包,然后再刷新?

    如果不深入细节,那就是您问题的答案。在实践中,我观察到一些没有很好地被 OSGi 采用的框架,可能会在刷新时导致 ClassLoader 内存泄漏,所以要小心。

    【讨论】:

      猜你喜欢
      • 2018-08-27
      • 2018-09-21
      • 2013-11-10
      • 2021-02-26
      • 2010-09-22
      • 2014-04-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多