문제점과 관련된 예제가 있습니다. (공동 파일 : https://drive.google.com/file/d/0B8ThLrV6-uchaFlTZTNGQ1FnT1E/view?usp=sharing를)iPOJO와 컴포넌트 간 연결
내가 3 개 ipojo 구성 요소 (3 bunbles)이 있습니다
CallHello이 HelloDelay 또는 HelloComponentReplace
HelloDelay 및 HelloComponentReplace의 HelloService를 사용 모두에서 구현 된 DelayService 서비스를 사용을 HelloPrint에 구현 된 서비스
service.hello.service.jar
printer.hello.printer.jar
delay.hello : 배치에서
는 I 5 개 번들을 배치. 지연 .jar
replace.hello.replace.jar
call.hello.call.jar
결과 : DelayService 항상 HelloDelay의 구현을 사용합니다.
마지막으로 Main.java를 실행하여 HelloDelay와 HelloComponentReplace 사이의 수동 선택을 제어합니다.
Main.java에서 번들을 시작/중지하거나 제거/설치하는 기능을 구현했습니다 (제대로 작동합니다). 그러나 HelloDelay 또는 HelloComponentReplace가 유효합니다.
두 경우 모두 활성화되어 있고 유효합니다. iPOJO 웹 사이트에서 읽었으며 "비교 자"를 사용할 수 있습니다. 하지만 위의 두 구성 요소 사이에서 선택을 제어하는 데 '비교 자'를 적용하는 방법을 이해하지 못합니다. 이것이 우선 순위를 변경합니까? 우리는 번들의 우선 순위를 바꿀 수 있다는 것을 알고 있지만 내 파일 (Main.java)과 iPOJO에 적용하는 방법을 알 수 없다.
필수 구성 요소와 많은 제공 구성 요소 (동일한 서비스 또는 인터페이스) 간의 연결 (바인딩)을 제어 할 수 있습니까?
이번에는 도움이 되었기를 바랍니다.
안부,
답장을 보내 주셔서 감사합니다. 동적 인 서비스 바인딩 조작을 제어하는 독립 컴포넌트로이 인터셉터를 구현할 수 있습니까? 웹 https : // github에서 귀하의 링크와 예제를 읽었습니다.co.kr/apache/felix 나는 인터셉터가 기존 번들 (번들 서비스를 요구하는 변경)에 어떻게 영향을 미칠 수 있는지 이해하지 못합니다. 감사합니다. – HNT
인터셉터는 개별 구성 요소이므로 응용 프로그램과 별도로 개발하여 배포 할 수 있습니다. 'target'속성을 사용하여 '서비스 의존성'을 대상으로합니다. 이 속성은 처리 할 종속성을 선택하는 LDAP 필터입니다. 예를 들어 : (dependency.id = foo)는 id가 foo 인 종속성을 선택하고, (dependency.specification = org.acme.Foo)는 org.acme.Foo 서비스 인터페이스가 필요한 모든 종속성을 선택합니다. – Clement