gpt4 book ai didi

java - 从外部包中按名称停用/禁用 OSGI 组件

转载 作者:行者123 更新时间:2023-11-29 08:40:06 25 4
gpt4 key购买 nike

有没有办法通过名称停用给定的 OSGI 组件?

componentContext.disableComponent(componentName) 方法 - 但它只适用于同一包的组件。

在不向给定 bundle 添加新服务以停用组件的情况下执行此操作的最佳实践解决方案是什么?

解决方案:

当使用例如菲利克斯,这将是:

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();
}
}

最佳答案

您可以使用 ServiceComponentRuntime服务。它允许内省(introspection)和管理任何组件。

关于java - 从外部包中按名称停用/禁用 OSGI 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40910322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com