Как переключаться между различными файлами свойств на основе запроса во время выполнения? - PullRequest
0 голосов
/ 30 апреля 2020

В настоящее время я читаю файл свойств, определяя глобальный элемент, такой как;

>   <configuration-properties doc:name="Local Configuration Properties"
>       doc:id="899a4f41-f036-4262-8cf2-3b0062dbd740"
> file="config\local_app.properties" /> 

Но этого мне недостаточно, когда я пытаюсь динамически взаимодействовать с разными клиентами.

Usecase

Мне нужно выбрать правильный файл конфигурации при поступлении запроса. То есть для разных клиентов у меня разные файлы свойств (их учетные данные и все разные). Когда запрос получен от прослушивателя, я проверю заголовок клиента и, основываясь на этом значении, выберу правильный файл конфигурации. Мои файлы свойств добавляются в другое место. (Выполнение развертывания через openshift.) Не в приложении mule. Поэтому нам не нужно повторно развертывать приложение каждый раз, когда наше приложение поддерживает новый клиент.

Итак, как в этом случае определить? и как правильно выбрать файл свойств?

например:

clientid =google, i have properties file defined for google-app.properties.
clientid=yahoo, i have properties file defined for yahoo-app.properties.
clientid=? I'll add properties file ?-app.properties later

1 Ответ

0 голосов
/ 30 апреля 2020

Файлы свойств читаются время развертывания . Это означает, что если вы измените значения, вы должны повторно развернуть приложение, чтобы прочитать новые. Системные свойства требуют перезапуска экземпляра Mule Runtime для установки. А для свойств Runtime Manager требуется перезапуск приложения. В любом случае приложение будет перезапущено. Свойства не могут быть использованы так, как вы хотите.

Не существует способа использовать свойства конфигурации динамически подобным образом. Что вы можете сделать, это создать модуль с помощью Mule SDK, который читает файлы свойств и возвращает результирующий набор свойств, чтобы вы могли присвоить результат переменной и использовать значения в качестве переменных. Вам нужно будет найти способ обновить значения. Возможно установить поток с планировщиком для чтения значений с фиксированной частотой.

...