如何从OSGi中的BundleContext获取ComponentContext

时间:2016-07-26 06:45:00

标签: java osgi osgi-bundle

我有一个包含多个组件的OSGi包,我想激活/停用同一包中其他组件的组件。

我从下面的代码中获得BundleContext

import aQute.bnd.annotation.component.Activate;
import aQute.bnd.annotation.component.Component;
import aQute.bnd.annotation.component.Deactivate;

@Activate
public void activate(Map<String, Object> properties) {

    BundleContext bundleContext = FrameworkUtil.getBundle(MyComponent.class).getBundleContext();
}

但是如何才能获得ComponentContext以便我可以enableComponentdisableComponent

1 个答案:

答案 0 :(得分:5)

只需注入ComponentContext即可。然后,您可以从中获取BundleContext以及配置属性。

@Activate
public void activate(ComponentContext context)