OSGi 번들의 A와 B를 각각 x와 y 패키지로 내보내는 경우가 있다고 가정합니다. A가 B의 내보내기와 B의 내보내기에 종속되어있는 경우가 있습니다. 먼저 시작해야합니다. 다른 클래스의 공유 레지스트리 (예 : Activator 클래스가 아님)에서 ServiceReference를 가져온 다음 BundleContext 객체를 현재 번들의 컨텍스트로 초기화하는 방법을 가정합니다.두 개의 OSGi 번들 간의 상호 의존성
이것은 상호 의존성에 대해 위에서 언급 한 경우를 해결할 수 있습니다. A는 activator의 시작 메소드에서 B의 내보내기를 사용할 수 있고 B는 호출 할 때 다른 클래스의 메소드에서 A의 내보내기를 사용할 수 있습니다.
A가 B에 의존하고 B가 A에 의존하는 경우 두 번들을 시작할 수 있습니까? bundlecontext에 대해서는 BundleContextAware 인터페이스가 있다고 생각합니다. –
BundleContext bundleContext = FrameworkUtil.getBundle (JasperService.class) .getBundleContext(); ServiceReference > empServiceReference = bundleContext.getServiceReference (yourclassname.class.getName()); – Nilesh
이것은 액티베이터가 아닌 다른 클래스에서 현재 번들의 bundlecontext를 가져 오는 데 적합합니다. – Nilesh