Существует ли какая-либо библиотека Java для работы с файлами конфигурации unix, такими как http.conf
Есть очень хорошие библиотеки Perl (например, Apache::Admin::Config) для работы с традиционными файлами конфигурации unix, такими как httpd.conf. Кто-нибудь знает, есть ли хорошие библиотеки Java для выполнения подобной задачи?
Я знаю, что есть c-библиотека под названием Augeas с привязкой Java. Кто-нибудь использовал это раньше?
Спасибо!
Ответы
Ответ 1
Я работал (программно, для проекта) с большим количеством конфигурационных файлов из многих проектов * nix, таких как Apache, Squid's, smtpd's, ldap, PAM и т.д. и т.д. Я понял, что существует дефинитно НЕ общий формат ( грамматика), но вместо этого каждый проект определяет свой собственный ad-hoc-формат и реализует собственный собственный парсер. Нет общей спецификации.
Итак, aproach on * nix projects файлы конфигурации si не использует библиотеку синтаксического анализатора, а скорее "напишет ваш собственный парсер".
Однако существуют проекты, которые пытаются придерживаться какого-то стандарта. Наиболее распространенным агатом является . Ini file format (возник из OS/2 и windows) или формат файла GConf, для этого вы можете легко найти доступные парсеры.
Apache (читать a-patch-e, как и в большинстве патчей) находится в классе свободной формы. Он начинался с формата var value
, после чего после "исправления" добавилась грамматика warty-xmlish для определения области и контекста конфигурационных vars.
- Если вы просто подкорректируете части конфигурационного файла, вероятно, ваш лучший подход - это сканировать файл, ищущий нужные вам конфигурации, и затем работать с файлом локально.
- Если вам нужно настроить весь файл, лучше сделать парсер Java на основе C.
Ответ 2
Вот библиотека Java, которую я разработал для своих целей.
https://github.com/kkapelon/Apache-Httpd-conf-Reader
Это очень ранняя альфа. Используйте на свой риск. Любая обратная связь будет оценена.
Ответ 3
Вот библиотека Java, которая может использоваться для анализа конфигурации Apache Server. ApacheConfParser
Ответ 4
Для этой цели не существует существующей библиотеки. Тем не менее, вы можете использовать Augeas, библиотеку, предназначенную для редактирования файлов конфигурации. Однако, в отличие от решения, которое вы ищете, вам нужно сказать Augeas, как интерпретировать файл конфигурации заранее, что может занять больше времени, чем это стоит.
Ответ 5
У Augeas действительно есть привязки Java, и у него есть объектив Httpd, так что это определенно приемлемое решение.
Ответ 6
Конфигурация Commons управляет конфигурационными файлами.
Даже он дает возможность сохранять управляемые свойства в новом файле.
PropertiesConfiguration config = new PropertiesConfiguration("usergui.properties");
config.setProperty("colors.background", "#000000);
config.save("usergui.backup.properties);
Обратитесь к следующей ссылке
http://commons.apache.org/configuration/userguide/howto_filebased.html#File-based_Configurations
Даже Apache Ant также может помочь вам в управлении существующими файлами конфигурации с помощью собственной реализации PropertyHelper.
http://ant.apache.org/manual/properties.html#propertyHelper
EDITED после ответа в комментариях
Конфигурация Apache обеспечивает расширяемость с помощью bean Factory, вам нужно создать собственный класс домена httpd.conf файла Apache, чтобы он работал.
Определяя модули Apache в java, вы можете взглянуть на источник Netloony, service/apache/modules, чтобы иметь представление об этом.
http://netloony.sourceforge.net/userguide/intro.html
В netloony значения конфигурационных файлов представлены в JTable, вам нужно использовать любую инфраструктуру конфигурации, чтобы сохранить ее в файле.
Надеюсь, что это поможет, я понимаю, что в java сейчас нет ничего из Box, чтобы читать файлы apache conf. Я пытался дать указатель, где вы можете начать с.