Apache camel Camel 2.X.X:将属性文件(.cfg)放在etc目录的子目录中,以使用cm:property占位符加载属性

Apache camel Camel 2.X.X:将属性文件(.cfg)放在etc目录的子目录中,以使用cm:property占位符加载属性,apache-camel,apache-karaf,blueprint-osgi,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="Con

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/

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

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

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

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

在我看来,karaf不支持etc目录中的子文件夹。谢谢回复。我用有问题的bean更新了blueprint.xml。是否有其他方法进行此类配置?我可以读取其etc目录中的子文件夹,但为此,我需要更新etc文件夹本身的config.properties中felix.fileinstall.dir的值。例如felix.fileinstall.dir=${karaf.base}/etc,${karaf.base}/etc/client1。但我不想在Servicemix上进行此配置,而是想将我的捆绑包配置为从指定文件夹读取属性。您需要配置安装的felix文件以扫描这些子目录,我认为其配置仅用于etc。检查各种SMX配置文件,这在今天是不可能的!