Требования
Итак, вы пишете два плагина.
Плагин B имеет точку расширения. Если у пользователя есть пакет для плагина A и лицензия, тогда плагин A должен добавить расширения для EP в плагин B.
Подходы
Модель безопасности OSGi в значительной степени построена на стандартных разрешениях Java и SecurityManager. В этой презентации обсуждается Apache Felix . Я ожидаю, что было бы возможно построить схему лицензирования вокруг этого.
Ваш обходной путь звучит так, как будто это может сработать, однако есть несколько проблем:
- остановка запуска пакета может помешать регистрации каких-либо служб, но повлияет ли это на изменение реестра расширений? то есть эти расширения зарегистрированы с использованием plugin.xml. Я предполагаю, что службы DS будут в порядке, но я должен был бы попробовать это.
- остановки пакета может быть недостаточно - можно ли запустить его позже? Я бы, наверное, хотел, чтобы он был УДАЛЕН.
- нелицензионный пакет - это возможность рассказать пользователю о лицензировании. Итак, как вы скажете пользователю, что пакет не был лицензирован и не сможет использоваться, и, кстати, вот как вы его лицензируете.
Пока вы ничего не сказали о том, как будет реализована лицензия. Я предполагаю, что вы пойдете за LicenseService, или даже, возможно, один.
Сообщите, что вы нашли.