Im пытается получить отдельный файл конфигурации/свойств для материалов, связанных с Camel, и других вещей. Использование Blueprint, но я предполагаю, что это может быть весна в этом конкретном случаеCamel и задание файла свойств без hardcoding
Как я понимаю, в Karaf хорошая практика использования заполнитель свойств для данных конфигурации. которые будут найдены в папке ../karaf/ect.
Приятный, поскольку у нас нет фиксированного кодированного пути. У меня есть эта часть работы.
<blueprint ...
<cm:property-placeholder persistent-id="org.example.project" update-strategy="reload" id="prop">
...
</cm:property-placeholder>
<camelContext id="myCamelContext" xmlns="http://camel.apache.org/schema/blueprint">
<route id="watchfolder">
<from uri="file:{{ENDPOINT.IN}}"/>
<to uri="direct:test"/>
</route>
../karaf/ect/org.example.project.cfg файл:
ENDPOINT.IN=C:/Users/username/Documents/project/folderwatch
В camelContext мы ALSE иметь возможность использовать propertyPlaceholder. Работает, если я определяю его как этот
...
<propertyPlaceholder id="properties" location="file:C:/Users/username/Documents/project/camel.properties" />
...
и переместили свойство в файл C: /Users/username/Documents/project/camel.properties.
Но это фиксированный путь внутри моего файла чертежа. Я думал, что было бы лучше настроить его для тестирования/работы в разных средах dev/... Просто укажите другой файл конфигурации.
Я хотел бы сделать это, не работает:
...
<propertyPlaceholder id="properties" location="file:{{CAMEL.PROPERTIES_FILE}}" />
...
../karaf/ect/org.example.project.cfg файл:
CAMEL.PROPERTIES_FILE=C:/Users/username/Documents/project/camel.properties
Результат:
..
Caused by: java.io.FileNotFoundException: {{CAMEL.PROPERTIES_FILE}} (The system cannot find the file specified)
..
Похоже, что значение не анализируется как свойство. Я попытался изменения, как:
location="file:${CAMEL.PROPERTIES_FILE}"
location="file:{{blueprint:CAMEL.PROPERTIES_FILE}}"
location="file:{{blueprint:prop:CAMEL.PROPERTIES_FILE}}"
(. Эти последние попытки были просто играть в азартные игры, я не понял смысл за этой функциональности)
Так в конечном счете, вопрос:
Как определить переменный файл свойств верблюда?
Я использую: Karaf 4.0.0, 2.15.3 Camel, Win7
Зачем вводить второй файл конфигурации, если y ou уже имеет файл cfg проекта? Просто поместите все свои свойства в файл cfg и используйте '$ {my.property}' вне контекста верблюда и '{{another.property}}' внутри контекста Camel, чтобы получить указанные ключи заменены значением из файла cfg , – Ralf