Любые замены/конкуренты Apache Commons-Configuration?

Недавно я пытался использовать Apache Commons-Configuration для управления некоторыми локальными файлами конфигурации XML. Он резко отстает от простоты использования (не может загружать пустые файлы конфигурации, CombinedConfiguration требует использования базовых конфигураций для большинства операций и т. д.) и согласованности в своем API (операция сохранения не публикует событий, события не универсальны).

Помимо настроек JDK, которые записываются в реестр (что мне не нужно), существуют ли какие-либо другие альтернативы управлению настройками на основе файлов?

Использование другого формата файла не вариант.


person Spencer Kormos    schedule 18.04.2012    source источник
comment
Что не так с Properties?   -  person a_horse_with_no_name    schedule 18.04.2012
comment
Использование свойств для XML не дает никаких преимуществ по сравнению с обычными файлами свойств, что недостаточно описательно для моих целей.   -  person Spencer Kormos    schedule 19.04.2012
comment
Я имел в виду файлы с прямыми свойствами. Как вы думаете, почему XML лучше подходит?   -  person a_horse_with_no_name    schedule 19.04.2012
comment
Вложенная структура и повторяющиеся значения.   -  person Spencer Kormos    schedule 19.04.2012
comment
Согласен, невозможность создать конфигурацию по умолчанию, записав содержимое конфигурации в файл, является большим недостатком, на самом деле я сейчас тоже бушую над этой проблемой.   -  person siyb    schedule 27.04.2016


Ответы (2)


Раньше для этого я использовал XStream, но это всего лишь привязка данных XML, сопоставление файла с объектами. Это возлагает на вас бремя предоставления методов более высокого уровня (в частности, объединение конфигураций, проверка).

person Christopher Oezbek    schedule 18.04.2012
comment
Я начинаю думать, что это путь, по которому мне нужно идти (un/marshalling с использованием XML Api), хотя я надеялся избежать этого. XStream делает его более простым, чем другие, поэтому я сначала попробую его. Спасибо за напоминание. - person Spencer Kormos; 19.04.2012
comment
Удачи. Я сейчас на C++, и есть boost::property_tree, который делает большую часть того, что мы хотим. - person Christopher Oezbek; 19.04.2012

Ваш вопрос не дает понять, нужно ли вам оставаться с технологией, основанной на XML. Если нет, то вы можете поступить хуже, чем рассмотреть Json, YAML или (мой любимый и тот, который я поддерживаю) Config4* .

person Ciaran McHale    schedule 18.04.2012