/* * This file is part of PetaScope. * * PetaScope is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation, either version 3 of * the License, or (at your option) any later version. * * PetaScope is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with PetaScope. If not, see . * * For more information please see * or contact Peter Baumann via . * * Copyright 2009 Jacobs University Bremen, Peter Baumann. */ package wcst.server; //~--- JDK imports ------------------------------------------------------------ import java.io.FileInputStream; import java.io.IOException; import java.util.Properties; /** * Configuration Manager class: a single entry point for all server settings. * Implements the singleton design pattern. * * @author Andrei Aiordachioaie */ public class ConfigManager { /* Settings variables */ public static String LANGUAGE; public static boolean PRINT_LOG; public static String SERVLET_INFO; public static String VERSION; public static String RASDAMAN_URL; public static String RASDAMAN_DATABASE; /* Singleton instance */ private static ConfigManager instance; private static Properties props; /** * Private constructor. Use getInstance(). * * @param settingsPath Path to the settings properties file */ private ConfigManager(String settingsPath) { props = new Properties(); try { log("Loading settings from file: " + settingsPath); props.load(new FileInputStream(settingsPath)); initSettings(); } catch (IOException e) { e.printStackTrace(); log("Failed to load settings."); } } /** * Returns the instance of the ConfigManager. If no such instance exists, * it creates one with the specified settings file. * * @param settingsPath Path to the settings file * @return instance of the ConfigManager class */ public static ConfigManager getInstance(String settingsPath) { if ( instance == null ) instance = new ConfigManager(settingsPath); return instance; } /** * Return a setting value from the settings file * * @param key Key of the setting * @return String value, or the empty string in case the key does not exist */ private String get(String key) { String result = ""; if ( props.containsKey(key) ) result = props.getProperty(key); return result; } private void initSettings() { LANGUAGE = get("wcst_language"); VERSION = get("wcst_version"); PRINT_LOG = Boolean.parseBoolean(get("wcst_print_log")); SERVLET_INFO = get("wcst_servlet_info"); RASDAMAN_DATABASE = get("rasdaman_database"); RASDAMAN_URL = get("rasdaman_url"); log("---------------------------"); log("WCS-T Language: " + LANGUAGE); log("WCS-T Version: " + VERSION); log("WCS-T Print Log: " + PRINT_LOG); log("WCS-T Servlet Info: " + SERVLET_INFO); log("Rasdaman URL: " + RASDAMAN_URL); log("Rasdaman DB: " + RASDAMAN_DATABASE); log("---------------------------"); } private void log(String msg) { // if (PRINT_LOG) System.out.println(msg); } }