0
有没有办法通过名称禁用给定的OSGI组件?通过外部软件包的名称禁用/禁用OSGI组件
有componentContext.disableComponent(componentName)
方法 - 但它只适用于相同捆绑的组件。
什么是最佳做法的解决方案做到这一点,而无需向给定的包添加新的服务来停用组件?
解决方案:
当使用例如菲利克斯这将是:
import org.apache.felix.scr.ScrService;
@Reference
private ScrService serviceComponentRuntime;
public void stopByName(final String componentName)
{
final org.apache.felix.scr.Component[] components = serviceComponentRuntime.getComponents(componentName);
for (final org.apache.felix.scr.Component component : components)
{
component.disable();
}
}