2008-11-11 4 views
4

Скажите, что у вас есть плагин eclipse с различными видами, эти представления должны отображать данные из некоторого пакета OSGi, который передает данные в представления. Вместо того, чтобы общаться друг с другом с пакетом OSGi, у меня есть промежуточный класс Facade, который выступает в качестве доски для представлений и управляет связью между представлениями и другим пакетом OSGi - ну, это теория.Как вы общаетесь между декларативными сервисами eclipse и представлениями (ContentProviders)

Проблема возникает из-за того, что пакет ui (с представлениями и фасадом) обменивается данными с другим пакетом (называет его DataStore) с помощью Declarative Services. Поскольку хранилище данных получает асинхронные обновления данных от еще одного источника, ему необходимо подталкивать контент к фасаду (и к другим пакетам, если они доступны). OSGi создает экземпляр Facade для удовлетворения требований мощности в конфигурации DS DataStore, но представления создаются с помощью реализации IApplication плагина. Даже если IApplication и Facade являются одним и тем же классом, я получаю два отдельных экземпляра, которые не знают друг друга.

Как включить обмен данными между этими компонентами (приложение-плагин, представления и т. Д. И экземпляр объекта OSGi)?

ответ

1

Одним из решений является использование Singleton и наличие одного или обоих регистра приложений и фасадов с этим Singleton.

Однако мне действительно не нравится идея перебросить глобальную переменную в эту проблему. Кажется, это не имеет смысла - это должна быть общая проблема, поэтому я предполагаю, что есть элегантное решение, и я просто не знаю, как его искать.

+0

Я согласен, что синглтон выглядит плохой идеей. Хотел бы я предложить реальное решение. – 2008-11-11 23:35:39

1

вы можете также использовать Spring DM телеграфировать ваши OSGi службы и использовать Martin Lippert glue plugin телеграфировать мнения с OSGi Services (или пружинные бобы), хороший бит с этим является то, что вам не нужно писать код, основанный на API-интерфейс службы обслуживания или весной API ...

Смежные вопросы