【发布时间】:2014-06-15 04:04:29
【问题描述】:
我有一个基于 Equinox 的应用程序。我需要更新一个包并重新连接对应于更新包的 OSGi 包。
我更新了捆绑包,
bundle.update(new FileInputStream(new File(filePath)));
我需要刷新受影响的捆绑包才能影响更新。
我该怎么做?...
【问题讨论】:
标签: java osgi equinox osgi-bundle
我有一个基于 Equinox 的应用程序。我需要更新一个包并重新连接对应于更新包的 OSGi 包。
我更新了捆绑包,
bundle.update(new FileInputStream(new File(filePath)));
我需要刷新受影响的捆绑包才能影响更新。
我该怎么做?...
【问题讨论】:
标签: java osgi equinox osgi-bundle
BundleContext bcx = bundle.getBundleContext();
Bundle systemBundle = bcx.getBundle(0);
bundle.update(new FileInputStream(new File(filePath)));
FrameworkWiring frameworkWiring = systemBundle.adapt(FrameworkWiring.class);
frameworkWiring.refreshBundles(null);
请注意,refreshBundles 是一个异步函数调用。因此,如果您想在刷新 bundle 时捕获事件,您必须传递一个 FrameworkListener 作为第二个参数。
【讨论】: