Существует ли какая-либо библиотека 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. Я пытался дать указатель, где вы можете начать с.