Как сделать 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 в качестве второго параметра.

Другие вопросы по тегам