Eclipse RCP - динамически выгрузить плагин пользовательского интерфейса - PullRequest
0 голосов
/ 25 сентября 2018

Мы разработали интегрированную среду разработки на основе Eclipse, и в настоящее время у нас есть функция, с помощью которой мы динамически загружаем / выгружаем плагины.

Когда пользователь открывает нашу среду IDE - мы проверяем конкретную конфигурацию.Основываясь на конфигурации, мы решаем, совместим ли один из наших плагинов.Если он не совместим, мы выгружаем этот плагин и загружаем другой более низкий комплект версий из другого места.

Оба плагина содержат почти одинаковые вклады пользовательского интерфейса.Я в настоящее время сталкиваюсь с проблемами, делающими это.

  1. Я могу выяснить конфигурацию и проверить совместимость

  2. Вызов остановки и удаления текущего пакета - Останов и удалениеоба возвращают успех.Я использую следующие API из org.osgi.framework.Bundle

    bundle.stop();
    bundle.uninstall();
    
  3. Вызовите Load совместимого пакета.Здесь мы используем следующие API

    installBundle method of org.osgi.framework.BundleContext
    start method of org.osgi.framework.Bundle
    

Но пользовательский интерфейс деинсталлированного пакета, похоже, не удаляется из IDE, и когда мы нажимаем на элемент меню, кажется, чтофункциональность по-прежнему вызывается из ранее удаленного плагина.

Может кто-нибудь подсказать, что здесь не так?

Спасибо,

Прия

...