【问题标题】:Dynamic Config Loading using cm:managed-properites in Karaf 3.0.5在 Karaf 3.0.5 中使用 cm:managed-properties 进行动态配置加载
【发布时间】:2016-05-09 06:06:35
【问题描述】:

我有一个简单的 Camel 应用程序包,它将部署在 Apache Service Mix 6.1 下的 Karaf 3.0.5 中。配置文件放在 etc/ 目录中(假设它被命名为 wf.cfg)。我想在我的应用程序包中拥有动态配置更改功能。因此,只要 wf.cfg 中的某些内容发生更改,它就可以立即用于捆绑。为此,我在 blueprint.xml 中添加了以下内容

<bean id="configBean"   class="com.jabong.orchestratorservice.basecomponent.config.ConfigBean">
        <cm:managed-properties persistent-id="wf" update-method="refresh" update-strategy="component-managed"/>
    </bean>

public class ConfigBean {
     private String env;
     public String getEnv() {
         return env;
     }
     public void setEnv(String env) {
        this.env = env;
     }
     public void refresh() {
         System.out.println("Config refreshed");
     }
}

但是每当我更新 wf.cfg 文件时,ConfigBean 类中的刷新方法都不会被调用。

我什至尝试过使用托管服务工厂。

<cm:managed-service-factory id="managed-service-factory"                                factory-pid="wf"                            interface="com.jabong.orchestratorservice.basecomponent.config.ConfigBean"> 
<cm:managed-component class="com.jabong.orchestratorservice.basecomponent.config.ConfigBean">
            <cm:managed-properties persistent-id="" update-strategy="component-managed" update-method="refresh" />
</cm:managed-component>
    </cm:managed-service-factory>

但这无济于事。谁能帮我解决这个问题。

请注意:我不想使用 cm:property-placeholder,因为它会在我们更改 cfg 文件时重新加载完整的上下文。我只想使用 cm:managed-properties。

【问题讨论】:

    标签: osgi karaf blueprint-osgi


    【解决方案1】:

    我找到了解决方案。

    刷新方法应该有一个参数Map&lt;String, String&gt; properties

    public class ConfigBean {
         private String env;
         public String getEnv() {
             return env;
         }
         public void setEnv(String env) {
            this.env = env;
         }
         public void refresh(Map<String, String> properties) {
             System.out.println("Config refreshed");
         }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-06-15
      • 2016-06-08
      • 1970-01-01
      • 2014-11-28
      • 1970-01-01
      • 2014-07-18
      • 2016-09-04
      • 1970-01-01
      • 2016-06-09
      相关资源
      最近更新 更多