Вы идете по опасной воде здесь :-) Вам требуется заказ . Ваш код предполагает, что ссылка bindFunction
вызывается после ссылки system
.
Спецификация OSGi гарантирует, что инъекция происходит в лексическом порядке ссылочного имени. (Конечно, это верно только для доступных услуг.)
Дешевый способ - назвать ваши ссылки так, чтобы имя ссылки system
было лексически ниже, чем имя bindFunction
ссылка, например asystem
или _system
. Инъекция происходит в лексическом порядке.
Это ужасно, если конечно. Способ справиться с этим - просто внедрить сервисы Function и использовать их при необходимости вместо того, чтобы активно что-то делать в вашей функции bind Это делает вещи более ленивыми, что почти всегда хорошо.