OSGI: Как узнать, какие пакеты подписаны на определенное свойство, определенное в моем словаре справочника услуг?
Когда я регистрирую ServiceReference, я определяю разделы событий OSGi, которые я публикую в классе Dictionary, как определение метода контекста говорит:
registerService (Класс, Сервис, Словарь)
Мое определение словаря: dictionary.put(EventConstants.EVENT_TOPIC, themes);
Темы - это массив String с несколькими строками, которые очень четко определяют каждый возможный тип события, которое я публикую, например:
String [] themes = new String[] { "ONE", "TWO" };
Я хотел бы знать, какие пакеты подписаны на определенное свойство, определенное в темах в Словаре. Я имею в виду, какие пачки собираются обрабатывать публикации "ДВА".
Благодарю.
1 ответ
Чтобы получать события, пакет регистрирует службу EventHandler с темами как свойство event.topics. Таким образом, чтобы найти пакеты, которые прослушивают определенные темы, вы ищете все сервисы типа EventHandler и проверяете их свойство service event.topics.