Java tutorial
/* * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the * License for the specific language governing rights and limitations * under the License. * * The Original Code is available at http://www.abiquo.com/..... * * The Initial Developer of the Original Code is Soluciones Grid, S.L. (www.abiquo.com), * Consell de Cent 296 principal 2, 08007 Barcelona, Spain. * No portions of the Code have been created by third parties. * All Rights Reserved. * * Contributor(s): ______________________________________. * * Graphical User Interface of this software may be used under the terms * of the Common Public Attribution License Version 1.0 (the "CPAL License", * available at http://cpal.abiquo.com), in which case the provisions of CPAL * License are applicable instead of those above. In relation of this portions * of the Code, a Legal Notice according to Exhibits A and B of CPAL Licence * should be provided in any distribution of the corresponding Code to Graphical * User Interface. */ package com.abiquo.abicloud.model.config; import java.io.File; import java.io.InputStream; import java.net.URL; import java.util.List; import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.XMLConfiguration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.abiquo.abicloud.model.AbiCloudModel; /** * Class to manage and load the configuration file * * @author pnavarro */ public class ConfigurationManager { /** * The default abicloud config file location */ private final static String DEFAULT_CONFIG_FILE = "conf/config.xml"; /** The logger */ private static final Logger logger = LoggerFactory.getLogger(ConfigurationManager.class); /** * Main configuration file */ private Configuration configuration; public ConfigurationManager() { configuration = new Configuration(); try { loadXML(); } catch (ConfigurationException e) { logger.error("An configuration erro was occured: {}", e.getMessage()); } } /** * Loads the XML * * @throws ConfigurationException */ private void loadXML() throws ConfigurationException { URL configUrl = this.getClass().getClassLoader().getResource(DEFAULT_CONFIG_FILE); XMLConfiguration xmlConfig = new XMLConfiguration(configUrl); /** * Hypervisors */ // Vmware hpervisor VmwareHypervisorConfiguration vmwareHyperConfig = new VmwareHypervisorConfiguration(); vmwareHyperConfig.setDatastoreSanName( xmlConfig.getString("hypervisors.vmware.SanDatastore[@name]", "nfsrepository")); vmwareHyperConfig .setDatastoreVmfsName(xmlConfig.getString("hypervisors.vmware.VmfsDatastore[@name]", "datastore1")); vmwareHyperConfig.setDatacenterName(xmlConfig.getString("hypervisors.vmware.datacenter", "ha-datacenter")); vmwareHyperConfig.setUser(xmlConfig.getString("hypervisors.vmware.user", "root")); vmwareHyperConfig.setPassword(xmlConfig.getString("hypervisors.vmware.password", null)); vmwareHyperConfig.setIgnorecert(xmlConfig.getBoolean("hypervisors.vmware.ignorecert", true)); configuration.setVmwareHyperConfig(vmwareHyperConfig); /** * Repository */ configuration.setRemoteHost(xmlConfig.getString("repository.remoteHost", null)); configuration.setRemotePath(xmlConfig.getString("repository.remotePath", "/opt/vm_repository")); } /** * Gets the configuration * * @return the configuration */ public Configuration getConfiguration() { return configuration; } /** * Sets the configuration * * @param configuration the configuration to set */ public void setConfiguration(Configuration configuration) { this.configuration = configuration; } }