Предположим, что в приложении eclipse rcp доступны два плагина P1 и P2.
И P1, и P2 создаются отдельно в зависимости от процесса сборки
В моем сценарии, в зависимости только от выбора пользователяp1, только p2 или оба плагина доступны в базовом продукте.
Я хочу обмениваться данными между плагином P1 и P2, когда оба плагина доступны, иначе плагины будут работать со своими собственными данными.
Будут ли хорошо работать декларативные службы OSGI в моем сценарии,
есть ли способ, которым я могу предоставить API-интерфейсы служб, которые возвращают json или строку из плагина P1 и P2 и могут потреблять их в зависимости от этого явно,Я имею в виду, что плагин p2 должен потреблять его только тогда, когда существует p1, в противном случае он должен функционировать как обычно.
Добрый совет.
Редактировать: Спасибо за предложение
IПолностью согласен, что иметь общий плагин будет идеально.
Однако в нашем случае у нас есть базовый продукт, и, к сожалению, у нас его нет. Более того, я имею в виду, что мы можем добавить любой плагин в базовый репозиторий.
Плагин P1 и P2 - это два разных продукта, которые работают независимо друг от друга, но имеют данные, которые можно дополнять друг другом. Мы хотели бы сделать вызов API из плагина p2, если плагин p1 встроен в базовый продукт и использует данные для дополнения существующих представлений в p2, в противном случае показываются только данные p2.
Я предположил, используя деклятивные сервисыПлагин P2 может вызывать API, предоставляемые плагином P1, используя API спецификации osgi, которые являются частью стандартных плагинов Eclipse, без добавления какой-либо зависимости между плагинами P1 и P2. Пожалуйста, дайте мне знать, если есть какой-либо вариант добиться этого.