Как в OSGi DS получать уведомления при обновлении свойств упомянутой службы?

У меня есть служба OSGi, которая ссылается на другие службы через декларативную службу, внедряющую их. Я хотел бы получать уведомления при обновлении свойств упомянутой службы. Я не хочу, чтобы моя основная служба останавливалась каждый раз при изменении конфигурации в указанной службе, поэтому я установил для политики значение «динамический».


person oconnor0    schedule 23.02.2012    source источник


Ответы (1)


В DS 1.2 появилась новая функция.

Атрибут updated к элементу reference добавляется для имени метода получения обновлений служб для привязанных ссылок.

Это будет частью предстоящей спецификации Compendium 4.3. Он уже реализован в реализации DS на Equinox (версия 1.4.0 комплекта DS). Вы должны использовать пространство имен http://www.osgi.org/xmlns/scr/v1.2.0 в описании вашего компонента, чтобы использовать атрибут updated. Методы updated используют те же сигнатуры методов, что и методы bind и unbind.

person BJ Hargrave    schedule 24.02.2012
comment
Замечательно. Будет интересно посмотреть, как редактор определения компонентов PDE стирает updated атрибуты. Я проверю это завтра. Спасибо. - person oconnor0; 24.02.2012
comment
К сожалению, похоже, что Equinox DS 1.4.0 отсутствует в Indigo. - person oconnor0; 24.02.2012
comment
@oconnor0 Релизы Eclipse выпускаются только раз в год... почему бы просто не использовать более высокую версию DS? - person Neil Bartlett; 27.02.2012
comment
@Neil Bartlett 1.) Потому что я понятия не имею, как обновить только DS. 2.) Еще меньше я представляю, как это сделать в Tycho. 3.) Это своего рода низкий приоритет; Я уже написал обходной путь. Но, если вы знаете, как и/или у вас есть ссылки на обновление DS, мне интересно. - person oconnor0; 28.02.2012