Как сделать Rewiring Framework после обновления пакета OSGi
У меня есть приложение на основе равноденствия. Мне нужно обновить пакет и перемонтировать OSGi-пакеты, соответствующие обновленному пакету.
Я обновил пакет, используя,
bundle.update(new FileInputStream(new File(filePath)));
Мне нужно обновить затронутые пакеты, чтобы обновление было затронуто.
Как я могу это сделать?...
1 ответ
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 - это асинхронный вызов функции. Поэтому, если вы хотите перехватить событие при обновлении пакетов, вы должны передать FrameworkListener в качестве второго параметра.