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 RHEV_CONFIG_PROPERTIES = "engine-config.properties"; private T configFile; private final String pwd = System.getenv("PWD").toString() + File.separator; private final Locale locale = Locale.getDefault(); private final String[] defaultFileLocations = { pwd + RHEV_CONFIG_PROPERTIES, pwd + "engine-config_" + locale + ".properties", DEFAULT_CONFIG_PATH + RHEV_CONFIG_PROPERTIES, DEFAULT_CONFIG_PATH + "engine-config_" + locale + ".properties" }; 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; } }