Is there any Java Library to operate on unix confi

2019-03-24 18:06发布

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!

6条回答
Juvenile、少年°
2楼-- · 2019-03-24 18:47

Commons Configuration do manipulate configuration files.

Even it gives an option to save the manipulated properties in a new file also.

PropertiesConfiguration config = new PropertiesConfiguration("usergui.properties");
config.setProperty("colors.background", "#000000);
config.save("usergui.backup.properties);

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

EDITED after response in comments

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..

查看更多
欢心
3楼-- · 2019-03-24 18:50

Augeas has Java bindings indeed, and it has an Httpd lens, too, so it is definitely an acceptable solution.

查看更多
beautiful°
4楼-- · 2019-03-24 18:52

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.

查看更多
ら.Afraid
5楼-- · 2019-03-24 18:56

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.

  • If you just tweak parts of the config file, probably your best approach would be to scan the file looking for your desired config vars and then work with the file locally.
  • If however you need to config the whole file, better make a Java parser based on the C one.
查看更多
唯我独甜
6楼-- · 2019-03-24 19:01

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.

查看更多
小情绪 Triste *
7楼-- · 2019-03-24 19:02

Here is a Java library that can be used to parse the Apache Server configuration. ApacheConfParser

查看更多
登录 后发表回答