Команда Karaf 3.0.x config:update не создает файл .cfg в /etc

Я использую 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 я пытаюсь изменить URL-адрес конечной точки:

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.


person Johan Le Lan    schedule 23.07.2014    source источник


Ответы (2)


Конфигурации сохраняются службой 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

person mjmeno    schedule 13.08.2014

Это известная проблема в karaf 3.0.1.

Вы можете использовать apache karaf 3.0.2, чтобы исправить эту ошибку.

person Christoforos Vasilatos    schedule 28.01.2015