package org.ovirt.engine.core.config; import static org.ovirt.engine.core.config.EngineConfig.DEFAULT_CONFIG_PATH; import java.io.File; import java.io.FileNotFoundException; import java.util.Locale; import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.ConfigurationUtils; import org.apache.commons.configuration.HierarchicalConfiguration; import org.apache.commons.configuration.PropertiesConfiguration; import org.apache.commons.configuration.tree.xpath.XPathExpressionEngine; public class KeysConfig<T extends HierarchicalConfiguration> extends ConfigFile<T> { private static final String OVIRT_CONFIG_PROPERTIES = "engine-config.properties"; private T configFile; private final String[] defaultFileLocations = { new File(DEFAULT_CONFIG_PATH, OVIRT_CONFIG_PROPERTIES).getAbsolutePath(), new File(DEFAULT_CONFIG_PATH, "engine-config_" + Locale.getDefault() + ".properties").getAbsolutePath() }; public KeysConfig(String optionalConfigPath) throws FileNotFoundException, ConfigurationException { File file = locate(optionalConfigPath); configFile = (T) ConfigurationUtils.convertToHierarchical(new PropertiesConfiguration(file)); configFile.setExpressionEngine(new XPathExpressionEngine()); } @Override public T getFile() { return configFile; } @Override public String[] getDefaultFileLocations() { return defaultFileLocations; } }