써드파티 라이브러리 및 클래스 로딩
OSGi는 여러 클래스 로더를 사용하므로, eclipse에서 확장 가능 / 구성 가능 써드파티 라이브러리를 투명하게 사용하려면
"버디 로딩"이라고 하는 eclipse 특정 메커니즘을 사용해야 합니다. 이 메커니즘을 사용하면
번들이 전제조건 사이에 클래스나 자원을 찾을 수 없을 때 클래스 또는 자원을 로드할 수 있도록 지원이 필요함을
표시할 수 있습니다.
사용자 코드에서 제공되는 클래스 또는 자원을 보기 위해 필요한 라이브러리를
"확장 가능 라이브러리"라고 합니다(예: log4j 로거 메커니즘, 최대 절전,...).
버디 로딩을 위해 번들이 필요함을 표시하기 위해, 번들은 Manifest를 수정하고 다음 헤더를 추가해야 합니다.
Eclipse-BuddyPolicy: <value>
<value>는 클래스를 찾는데 사용하는 정책을 가리킵니다. 다음은 지원되는
정책입니다.
- registered - 버디 메커니즘이 메커니즘에 대해 등록된 번들에 접속할 것을
표시합니다. 특정 번들에 등록하려는 번들은
해당되는 Manifest에 추가하십시오("Eclipse-RegisterBuddy: <bundleSymbolicName>").
- dependent - 클래스/자원은 모두 번들에 종속되어 타동적으로 찾게됨을
표시합니다.
- global - 클래스/자원은 내보낸 패키지의 글로벌 풀에서 찾게됨을
표시합니다.
- app - 응용프로그램 클래스 로더에 접속됨을 표시합니다.
- ext - extensiont 클래스 로더에 접속됨을 표시합니다.
- boot - 시동 클래스 로더에 접속됨을 표시합니다.