How to load multiple configuration files using apache common configuration(java)

5.9k views Asked by At

I have a main conf file which I load using apache common configuration class. I have a requirement where user can specify a conf file and values in those file will override the values in main conf.

Please suggest me how we can do that in apache common configuration class or any other open source class to achieve this.

Thanks in advance

3

There are 3 answers

1
Sean Patrick Floyd On BEST ANSWER

I think you want something similar to the mechanism described here:

CompositeConfiguration config = new CompositeConfiguration();
config.addConfiguration(new PropertiesConfiguration("user.properties"));
config.addConfiguration(
    new PropertiesConfiguration("application.properties"));
// user preferences have precedence over application preferences

Reference:

0
Kirmann On

PropertiesConfiguration has a method copy(Configuration c) which copies the content of the specified configuration into this configuration. If the specified configuration contains a key that is also present in this configuration, the value of this key will be replaced by the new value.

0
PanHrabia On

With cfg4j:

// Specify which files to load. Configuration from both files will be merged.
ConfigFilesProvider configFilesProvider = () -> Arrays.asList(new File("application.properties"), new File("otherConfig.properties"));

// Use local files as configuration store
ConfigurationSource source = new FilesConfigurationSource(configFilesProvider);

Then use it in a standard way to get properties out.