Camel 2.X.X:将属性文件(.cfg)放在etc目录的子目录中,用cm:property-placeholder加载属性

时间:2015-06-02 06:36:12

标签: apache-camel apache-karaf blueprint-osgi

blueprint.xml

<cm:property-placeholder persistent-id="client.service"
    update-strategy="reload">
    <cm:default-properties>
        <cm:property name="URI"
            value="https://blabla/" />
        <cm:property name="ConnectionTimeout" value="18000" />
        <cm:property name="ResponseTimeout" value="10000" />
    </cm:default-properties>
</cm:property-placeholder>

<bean id="configData"
    class=" com.myproject.ConfigurationData">
    <property name="URI" value="${URI}" />
    <property name="ConnectionTimeout" value="${ConnectionTimeout}" />
    <property name="ResponseTimeout" value="${ResponseTimeout}" />
</bean>

这里默认情况下,我需要将client.service.cfg文件放在$ {karaf.home} / etc目录中但是 我想在etc目录的子目录中使用client.service.cfg文件。例如$ {karaf.home} / etc / client1 /

1 个答案:

答案 0 :(得分:1)

最后,我们决定更改servicemix的配置,以通过以下方式从多个位置读取配置(.cfg)文件。

在etc文件夹本身的config.properties文件中更新属性felix.fileinstall.dir的值。例如。

 felix.fileinstall.dir = ${karaf.base}/etc,${karaf.base}/etc/client1

所以,现在servicemix将从etc以及atc / client1目录中读取并动态重新加载属性。