Мы разработали интегрированную среду разработки на основе Eclipse, и в настоящее время у нас есть функция, с помощью которой мы динамически загружаем / выгружаем плагины.
Когда пользователь открывает нашу среду IDE - мы проверяем конкретную конфигурацию.Основываясь на конфигурации, мы решаем, совместим ли один из наших плагинов.Если он не совместим, мы выгружаем этот плагин и загружаем другой более низкий комплект версий из другого места.
Оба плагина содержат почти одинаковые вклады пользовательского интерфейса.Я в настоящее время сталкиваюсь с проблемами, делающими это.
Я могу выяснить конфигурацию и проверить совместимость
Вызов остановки и удаления текущего пакета - Останов и удалениеоба возвращают успех.Я использую следующие API из org.osgi.framework.Bundle
bundle.stop();
bundle.uninstall();
Вызовите Load совместимого пакета.Здесь мы используем следующие API
installBundle method of org.osgi.framework.BundleContext
start method of org.osgi.framework.Bundle
Но пользовательский интерфейс деинсталлированного пакета, похоже, не удаляется из IDE, и когда мы нажимаем на элемент меню, кажется, чтофункциональность по-прежнему вызывается из ранее удаленного плагина.
Может кто-нибудь подсказать, что здесь не так?
Спасибо,
Прия