Можно ли привязать услугу к нескольким потребителям с помощью 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{
    ...
}

Если я запускаю потребитель A, потребитель B и службу A, служба привязывается только к потребителю A. Если я запускаю потребитель B и службу A, служба привязывается к потребителю B.

Можно ли разрешить службам привязываться к обоим потребителям? Есть ли к нему аннотация?

Спасибо.


person user1350914    schedule 23.04.2012    source источник


Ответы (1)


Безусловно, услугой могут пользоваться несколько потребителей. Ваш код выглядит хорошо, и поэтому он должен работать.

Вы пытались проверить текущее состояние с помощью команды «экземпляры» (http://felix.apache.org/site/ipojo-arch-command.html)?

person Clement    schedule 24.04.2012
comment
Спасибо за ответ. Все экземпляры действительны, ошибка должна быть где-то еще. Я пытаюсь найти его. - person user1350914; 24.04.2012