shashuec
shashuec

Reputation: 694

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

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

Upvotes: 15

Views: 6165

Answers (3)

Kirmann
Kirmann

Reputation: 1

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.

Upvotes: 0

PanHrabia
PanHrabia

Reputation: 174

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.

Upvotes: 0

Sean Patrick Floyd
Sean Patrick Floyd

Reputation: 298818

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:

Upvotes: 17

Related Questions