2012-09-19 4 views
2

로버트 던 OSGi Dependencies: Heaven and Hell을 본 후, 나는 다음에 특별히 관심이 :번들을 활성화 할 때 번들의 종속성을 자동으로 활성화하는 방법은 무엇입니까?

당신이 당신 자신을이 모든 것을 관리해야 할 것 ACTIVE 번들 의존성을 인식하지 않았다 리졸버를 사용한 경우. 님블로 필요한 것을 물어보고 해결사가 나머지 중 을 돌보게하십시오. 이렇게하면 개발 라이프 사이클이 빨라지고 중복 스크립트가 스크립트에서 중복 제거됩니다.

리차드가 말한 것처럼 obr을 사용하면 해결 시간 의존성을 해결할 수 있습니다. 그러나, 나는 번들의 소스를 스캐닝하지 않으면 액티브 타임 의존성 (액티브 번들의 의존성을 자동으로)을 해결하기가 어렵다고 생각한다.

예를 들어 번들 A가 BundleContext.register 방법을 사용하여 번들 B에 등록 된 서비스를 사용한 경우 번들 A를 활성화 할 때 번들 B를 활성화해야한다는 사실을 어떻게 알 수 있습니까?

+0

OSGi 태그를 추가해야합니다. –

+0

Robert의 제안에 감사드립니다! –

답변

2

전체 접근법의 가정은 번들이 요구 사항과 기능을 나타내는 메타 데이터를 제공한다는 것입니다. web.xml 파일 또는 선언적 서비스 구성 요소 파일과 같이 번들의 다른 아티팩트에서 일부 추가 정보를 유추 할 수 있습니다.

코드 수준의 종속성이 있어도 임의의 동적 클래스로드를 감지 할 수있는 방법이 없습니다. 메타 데이터는 필수적입니다.

번들의 가능한 모든 기능과 요구 사항을 결정할 수있는 프로그램을 작성하는 것은 어려운 정적 분석 문제이며 이러한 tend to be equivalent to the Halting Problem은 불가능합니다.

관련 문제