Karaf 3.0.x config:update命令不会在/ etc中创建.cfg文件

时间:2014-07-23 14:53:45

标签: blueprint karaf

我正在使用karaf 3.0.1和我的包(https://github.com/johanlelan/camel-cxfrs-blueprint-example)。我想在运行时管理属性,但我看到config:update不会在/ etc上创建文件,为什么?

<cm:property-placeholder persistent-id="org.apache.camel.examples.cxfrs.blueprint"
    update-strategy="reload">
    <!-- list some properties for this test -->
    <cm:default-properties>
        <cm:property name="cxf.application.in"
            value="cxfrs:bean:rest.endpoint?throwExceptionOnFailure=false&amp;bindingStyle=SimpleConsumer&amp;loggingFeatureEnabled=true"/>
        <cm:property name="common.tenant.in" value="direct-vm:common.tenant.in"/>
        <cm:property name="common.authentication.in" value="direct-vm:common.authentication.in"/>
        <cm:property name="application.put.in" value="direct-vm:application.putById"/>
        <cm:property name="application.post.in"
            value="direct-vm:application.postApplications"/>
        <cm:property name="log.trace.level" value="INFO"/>
    </cm:default-properties>
</cm:property-placeholder>

在karaf中,我尝试修改端点网址:

karaf@root()> config:edit org.apache.camel.examples.cxfrs.blueprint
karaf@root()> config:property-set common.tenant.in direct-vm:test
karaf@root()> config:property-list
   service.pid = org.apache.camel.examples.cxfrs.blueprint
   common.tenant.in = direct-vm:test
   felix.fileinstall.filename = file:/F:/travail/servers/karaf-lan/etc/org.apache.camel.examples.cxfrs.blueprint.cfg    
karaf@root()> config:update
karaf@root()>

我确定我的软件包在config:update之后更新但是/ etc中没有文件...我认为它适用于karaf 2.3.5。

2 个答案:

答案 0 :(得分:1)

ConfigurationAdmin服务会保留配置。如果您使用的是Karaf,它将使用Felix ConfigAdmin [1]中的实现。默认情况下,Karaf将ConfigAdmin配置为将文件存储在/ data下的本地捆绑存储区域中,但可以通过编辑felix.cm.dir属性来更改。

此外,对.cfg文件的支持来自Felix FileInstall [2]。

[1] http://felix.apache.org/documentation/subprojects/apache-felix-config-admin.html [2] http://felix.apache.org/site/apache-felix-file-install.html

答案 1 :(得分:1)

在karaf 3.0.1中已知issue

您可以使用apache karaf 3.0.2修复此错误。