Скажите, что у вас есть плагин eclipse с различными видами, эти представления должны отображать данные из некоторого пакета OSGi, который передает данные в представления. Вместо того, чтобы общаться друг с другом с пакетом OSGi, у меня есть промежуточный класс Facade, который выступает в качестве доски для представлений и управляет связью между представлениями и другим пакетом OSGi - ну, это теория.Как вы общаетесь между декларативными сервисами eclipse и представлениями (ContentProviders)
Проблема возникает из-за того, что пакет ui (с представлениями и фасадом) обменивается данными с другим пакетом (называет его DataStore) с помощью Declarative Services. Поскольку хранилище данных получает асинхронные обновления данных от еще одного источника, ему необходимо подталкивать контент к фасаду (и к другим пакетам, если они доступны). OSGi создает экземпляр Facade для удовлетворения требований мощности в конфигурации DS DataStore, но представления создаются с помощью реализации IApplication плагина. Даже если IApplication и Facade являются одним и тем же классом, я получаю два отдельных экземпляра, которые не знают друг друга.
Как включить обмен данными между этими компонентами (приложение-плагин, представления и т. Д. И экземпляр объекта OSGi)?
Я согласен, что синглтон выглядит плохой идеей. Хотел бы я предложить реальное решение. – 2008-11-11 23:35:39