Можно ли привязать услугу к нескольким потребителям с помощью iPOJO?
В своем приложении iPOJO я пытаюсь привязать услугу к двум потребителям:
Потребители:
@Component(immediate = true)
@Instantiate(name = "com.example.consumerX")
@Provides
public class consumerX{
@Requires(id="ms",optional=true)
private MyService[] services;
@Bind(id = "ms", aggregate = true, optional = true)
public synchronized void register(MyService service) {
System.out.println("service bind to consumer");
}
@Unbind(id = "ms")
public synchronized void unregister(MyService service) {
System.out.println("service unbind from consumer");
}
}
Сервисы:
@Component(immediate = true)
@Instantiate(name = "com.example.serviceX")
@Provides(specifications = { MyService.class, MyServiceX.class})
public class MyServiceX{
...
}
Если я запустил customerA, consumerB и serviceA, сервис связывается только с consumerA. Если я запускаю customerB и serviceA, сервис связывается с consumerB.
Можно ли позволить сервисам привязываться к обоим потребителям? Есть ли для этого аннотация?
Благодарю.
1 ответ
Решение
Определенно возможно, что услуга будет использоваться несколькими потребителями. Ваш код выглядит хорошо, и поэтому он должен работать.
Вы пытались проверить текущее состояние с помощью команды 'instances' (http://felix.apache.org/site/ipojo-arch-command.html)?