Событие запуска конфигурации Apache Commons при изменении файла свойств - PullRequest
1 голос
/ 28 апреля 2010

Я использую библиотеку конфигурации Apache Commons для хранения свойств своего приложения. Я могу отслеживать изменения файла свойств, используя FileChangedReloadingStrategy, и он отлично работает. Я хотел бы вызвать configurationChanged событие ConfigurationListener при изменении файла свойств.

Этот случай сработает, если я попытаюсь получить свойство из моего кода

directory = MyConfiguration.getInstance().getString("directory");

эта строка сработает configurationChanged. Но мне нужно, чтобы это событие было запущено, когда FileChangedReloadingStrategy ловит изменения в файле без выполнения избыточных вызовов.

Спасибо.

Ответы [ 2 ]

4 голосов
/ 28 апреля 2010

FileChangedReloadingStrategy работает, проверяя время изменения файла каждый раз, когда вы читаете параметр. Если вы ничего не читаете, код конфигурации Apache не вызывается, поэтому нет способа отправить вам уведомление.

Для моего приложения это более желательно, потому что меня не волнует изменение файла, пока мне не нужно его использовать.

Вы можете написать новую стратегию, чтобы выполнить то, что вы хотите. Вам необходимо начать новый поток и периодически отслеживать файл.

0 голосов
/ 29 апреля 2010

Как упоминалось в предыдущем постере, вы можете использовать свою собственную стратегию. Для отслеживания изменений в файле вы можете использовать JPoller .

...