У меня есть пример, касающийся моей проблемы. (объединение файлов: https://drive.google.com/file/d/0B8ThLrV6-uchaFlTZTNGQ1FnT1E/view?usp=sharing )
У меня есть 3 компонента ipojo (3 пучка):
CallHello использует службу DelayService, реализованную как в HelloDelay, так и в HelloComponentReplace.
HelloDelay и HelloComponentReplace используют службу HelloService, реализованную в HelloPrint.
При развертывании я развертываю 5 пакетов:
service.hello.service.jar
принтер.hello.printer.jar
delay.hello.delay.jar
заменить.привет.заменить.банку
call.hello.call.jar
Результат: DelayService всегда использует реализацию в HelloDelay.
Наконец, я запускаю Main.java для ручного управления выбором между HelloDelay и HelloComponentReplace.
Я реализовал функцию для запуска/остановки или удаления/установки пакетов в Main.java (и она работает хорошо). Однако допускается либо HelloDelay, либо HelloComponentReplace.
В случае, если оба активны и действительны, я читаю на веб-сайте iPOJO и могу использовать «компаратор». Но я не понимаю, как применить «компаратор» для управления выбором между двумя компонентами выше. Это для смены приоритета? Я знаю, что мы можем изменить приоритет пакета, но я не знаю, как применить его к моему файлу (Main.java) и iPOJO.
Можем ли мы управлять соединением (связыванием) между требующим компонентом и многими предоставляющими компонентами (одной и той же службой или интерфейсом)?
Я надеюсь, что вы могли бы помочь моей трудности в это время.
С наилучшими пожеланиями,