There are very good Perl libraries (e.g. Apache::Admin::Config) to operate on traditional unix config files like httpd.conf. Anyone know if there is good Java libraries to do the similar task?
I know there is a c library called Augeas with Java binding. Has anyone used that before?
Thanks!
Commons Configuration do manipulate configuration files.
Even it gives an option to save the manipulated properties in a new file also.
Refer following link
http://commons.apache.org/configuration/userguide/howto_filebased.html#File-based_Configurations
Even, Apache Ant can also help you in manipulating the existing configuration files using your own PropertyHelper Implementation.
http://ant.apache.org/manual/properties.html#propertyHelper
Apache configuration do provide extensibility using bean Factory , you need to create the Apache config file httpd.conf domain class yourself , to make it working.
Defining the Apache modules in java you can have a look at Netloony source , service/apache/modules to have an idea on this.
http://netloony.sourceforge.net/userguide/intro.html
In netloony the config files values are presented in JTable, you need to use any configuration framework to persist it in file.
Hope this helps, I understand there is nothing out of Box in java presently to read apache conf files. I was trying to give a pointer where you can start with..
Augeas has Java bindings indeed, and it has an Httpd lens, too, so it is definitely an acceptable solution.
There does not seem to be an existing library for that purpose. You could, however, use Augeas, a library made for editing configuration files. Unlike the solution you are searching for, however, you need to tell Augeas how to interpret the configuration file beforehand, which might take more time than it's worth.
I worked (programatically, for a project) with a lot of config files from many *nix projects like Apache's, Squid's, smtpd's, ldap's, PAM's etc. etc. I have come to realise there is deffinetly NOT a common format (grammar) but instead each project defines his own ad-hoc format and implements it's own custom parser. No common specification.
So the aproach on *nix projects config files si not "use the parser library" but rather "write your own parser".
There are however projects that try to stick to some sort of standard. Most common amog theese is the .ini file format (originated on OS/2 and windows) or GConf file format, for theese you may find readily available parsers.
Apache (read a-patch-e, as in made from many patches) is in the free-form class. It started with a
var value
format then, after a lot of "patching", added a warty-xmlish grammar for specifing scope and context of config vars.Here is a Java library that I developed for my own purposes.
https://github.com/kkapelon/Apache-Httpd-conf-Reader
It is very early alpha. Use at your own risk. Any feedback would be appreciated.
Here is a Java library that can be used to parse the Apache Server configuration. ApacheConfParser