package at.gv.egovernment.moa.id.configuration.config; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Properties; import at.gv.egovernment.moa.id.commons.db.ConfigurationDBUtils; import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException; import at.gv.egovernment.moa.id.configuration.exception.ConfigurationException; import at.gv.egovernment.moa.logging.Logger; public class ConfigurationProvider { private static final String SYSTEM_PROP_CONFIG = "moa.id.webconfig"; private static ConfigurationProvider instance; private Properties props; private String configFileName; public static ConfigurationProvider getInstance() throws ConfigurationException { if (instance == null) { instance = new ConfigurationProvider(); } return instance; } private ConfigurationProvider() throws ConfigurationException { inizialize(); } private void inizialize() throws ConfigurationException { configFileName = System.getProperty(SYSTEM_PROP_CONFIG); if (configFileName == null) { throw new ConfigurationException("config.01"); } Logger.info("Loading MOA-ID-AUTH configuration " + configFileName); //Initial Hibernate Framework Logger.trace("Initializing Hibernate framework."); //Load MOAID-2.0 properties file File propertiesFile = new File(configFileName); FileInputStream fis; props = new Properties(); try { fis = new FileInputStream(propertiesFile); props.load(fis); // initialize hibernate synchronized (ConfigurationProvider.class) { //Initial config Database ConfigurationDBUtils.initHibernate(props); } Logger.trace("Hibernate initialization finished."); } catch (FileNotFoundException e) { throw new ConfigurationException("config.01", e); } catch (IOException e) { throw new ConfigurationException("config.02", e); } catch (MOADatabaseException e) { throw new ConfigurationException("config.03", e); } } public boolean isLoginDeaktivated() { String result = props.getProperty("general.login.deaktivate", "false"); return Boolean.parseBoolean(result); } public String getConfigFile() { return configFileName; } }