다른 번들을 실행하는 동안 번들을 시작하려면 기다려야합니까?런타임에 OSGI 번들을 시작하려면 어떻게해야합니까?
답변
다른 방법으로이 작업을 수행 할 수 있습니다. 먼저 Bundle 인터페이스 클래스의 시작 메소드를 살펴보십시오. 이를 통해 특정 번들을 시작할 수 있습니다. 또한 Declarative Services 또는 Start Level Specification을 살펴볼 수 있습니다.
처음에는 OSGi 코어 스펙 (무료로 www.osgi.org에서 사용 가능)의 4.4.5 절 (시작 번들)을 읽어야합니다.
의미하는 경우 : 번들의 순서를 시작하십시오.
OSGi 응용 프로그램을 시작할 때 다른 번들에서 제공하는 낮은 수준의 서비스를 상위 수준 서비스 (/ 다른 번들)에서 사용할 수 있도록하려면 어떻게해야합니까? 그런 다음 동적 서비스를 읽어야합니다.
(OSGi의 다른 버전에서 변경되었으므로)이 문제를 해결할 수있는 몇 가지 방법이 있습니다. 경우 당신은 OSGi와 동적 서비스에 새로운, 가장 논리적 인 해결책은 아마 선언적 서비스이지만,이 또한 장점에게 & 단점을 가지고있다 적어도 당신은 또한, 약 서비스 액티베이터 툴킷 읽어야합니다.
멋진 온라인 Chapter 6, Dynamic Services이 있는데이 문제를 정확히 설명하고 해결 방법은 무엇입니까 (최소한 3 가지 해결책이 설명되어 있습니다).
일반적으로 OSGi (Equinox)에 대해 배우고 싶은 분에게 OSGi and Equinox 책을 추천 할 수 있습니다.
BundleContext.install()
을 사용해 보셨습니까? (활성화 자 시작 및 중지 메소드에는 BundleContext
이 전달됨)