Как создать конфигурацию для Managed Service Factory с функциями Karaf?
Я пытаюсь создать простую конфигурацию для компонента Amdatu MongoDB. Когда я создаю файл с именем org.amdatu.mongo-kairos.cfg
со следующей строкой внутри dbName=kairos
и поместите его в папку развертывания - все работает хорошо. Тем не менее, когда я пытаюсь использовать config
отметить в features.xml
Ничего не произошло.
Часть моего файла функций, который использует тег конфигурации:
<feature name="persistency" version="0.0.1-SNAPSHOT" description="MongoDB Persistency">
//(...)
<config name="org.amdatu.mongo-kairos">
dbName=kairos
</config>
</feature>
1 ответ
Как уже упоминалось в списке рассылки пользователей, это известная проблема, но вместо этого ее можно обойти, используя файл конфигурации. При определении нескольких файлов конфигурации фабрика службы управления может также использоваться с определением функции:
<feature name="persistence" version="1.0.0-SNAPSHOT" description="MongoDB Persistence">
<configfile finalname="/etc/org.amdatu.mongo-kairos.cfg">
mvn:groupId/persistency-config/version/cfg
</configfile>
<configfile finalname="/etc/org.amdatu.mongo-suez.cfg">
mvn:groupId/artifactId/versionId/jar
</configfile>
//.. a list of bundles
</feature>
Более того, использование файлов конфигурации вместе с Maven позволяет создавать версии конфигурации вместе с приложением:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<executions>
<execution>
<id>persistency-config</id>
<phase>install</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<groupId>${project.groupId}</groupId>
<artifactId>persistency-config</artifactId>
<version>${project.version}</version>
<packaging>cfg</packaging>
<file>config/org.amdatu.mongo-kairos.cfg</file>
</configuration>
</execution>
</executions>
</plugin>