Скажем, у вас есть плагин eclipse с различными представлениями, эти представления должны отображать данные из некоторого пакета OSGi, который передает данные в представления. Вместо того чтобы каждый вид взаимодействовал с пакетом OSGi, у меня есть промежуточный класс Facade, который действует как классная доска для представлений и управляет связью между представлениями и другим пакетом OSGi - ну, это теория.
Проблема возникает из-за того, что пакет пользовательского интерфейса (вместе с представлениями и фасадом) связывается с другим пакетом (называемым хранилищем данных) с помощью декларативных служб. Поскольку хранилище данных получает асинхронные обновления данных из еще одного источника, ему необходимо отправить содержимое на фасад (и в другие пакеты, если они доступны). OSGi создает экземпляр Facade для удовлетворения требований количества элементов в конфигурации DS хранилища данных, но экземпляры создаются реализацией IApplication подключаемого модуля. Даже если IApplication и Facade - это один и тот же класс, я получаю два отдельных экземпляра, которые не знают друг друга.
Как включить связь между этими компонентами (плагин Application, Views и т. Д. И OSGi-экземпляр Facade)?