Dependency injection 如何在karaf中检测修改的注入服务?

Dependency injection 如何在karaf中检测修改的注入服务?,dependency-injection,osgi,apache-karaf,Dependency Injection,Osgi,Apache Karaf,我有一个服务a,它通过依赖项注入依赖于服务b。服务B在其关联的配置文件更改时运行@Modified方法。更新服务B的配置文件时,如何让服务A重新启动?也许有某种方式可以让serviceA检索所有消费服务的列表 服务B @Component( name = "my.services.ServiceB", immediate = true, configurationPolicy = ConfigurationPolicy.REQUIRE ) @Desig

我有一个服务a,它通过依赖项注入依赖于服务b。服务B在其关联的配置文件更改时运行@Modified方法。更新服务B的配置文件时,如何让服务A重新启动?也许有某种方式可以让serviceA检索所有消费服务的列表

服务B

@Component(
    name = "my.services.ServiceB",
    immediate = true,
    configurationPolicy = ConfigurationPolicy.REQUIRE
)
@Designate(
    ocd = ServiceBConfig.class
)
public class ServiceBImpl implements ServiceB {
    public ServiceBImpl() {}

    @Activate
    @Modified
    protected void start(ServiceBConfig serviceBConfig) {
        // code
    }
}
服务A

@Component(
        immediate = true,
        designateFactory = ServiceAConfig.class,
        name = "my.services.serviceA"
)
public class ServiceAImpl implements ServiceA {
    private ServiceB serviceB;
    private ConfigurationAdmin configurationAdmin;

    @Reference
    void setServiceB(ServiceB serviceB) {
        this.encryptionService = encryptionService;
    }

    @Reference
    public void setConfigurationAdmin(ConfigurationAdmin admin) {
        this.configurationAdmin = admin;
    }

    @Activate
    @Modified
    void activate(BundleContext bundleContext, Map<String, Object> configuration) {
        // code
    }
}
@组件(
立即=真,
designateFactory=ServiceAConfig.class,
name=“my.services.serviceA”
)
公共类ServiceAImpl实现ServiceA{
私人服务b服务b;
私有配置管理员配置管理员;
@参考文献
无效设置服务B(服务B服务B){
this.encryptionService=encryptionService;
}
@参考文献
public void setConfigurationAdmin(ConfigurationAdmin){
this.configurationAdmin=admin;
}
@激活
@修改
无效激活(BundleContext BundleContext,地图配置){
//代码
}
}