View Javadoc

1   package net.sf.cantina.application;
2   
3   import net.sf.cantina.util.Loader;
4   import org.apache.log4j.Logger;
5   
6   import java.net.URL;
7   import java.util.Hashtable;
8   import java.util.Properties;
9   
10  /***
11   * cantina.properties configuration.
12   * @author Stephane JAIS
13   */
14  
15  public class Config
16  extends Hashtable
17  {
18    private static final String CONFIG_FILENAME = "cantina.properties";
19  
20    /***
21     * This setting determines which datasource will be used by the system,
22     * Valid values are a class name that implements DataSource
23     */
24  
25    public static final String DS_TYPE = "datasource.type";
26  
27    private static final Logger logger = Logger.getLogger(Config.class);
28  
29    protected static Properties properties  = loadProperties(
30      Loader.getResource(CONFIG_FILENAME));
31  
32    /***
33     * Loads properties stored in a file.
34     * @param url The url to the file
35     * @return The Properties object.
36     */
37  
38    protected static Properties loadProperties(URL url)
39    {
40      Properties result = new Properties();
41      logger.debug("Reading configuration from URL " + url);
42      try
43      {
44        result.load(url.openStream());
45      } catch (java.io.IOException e)
46      {
47        logger.error("Could not read configuration file from URL [" + url + "].", e);
48      }
49      return result;
50    }
51  
52    /***
53     * Get a config setting
54     * @param paramName The setting's name
55     * @return The value
56     */
57    protected static String getString(String paramName)
58    {
59      return properties.getProperty(paramName);
60    }
61  
62    /***
63      * Helper method that returns true for 
64      * "true" and "yes"
65      */
66  
67    protected static boolean getBoolean(String paramName)
68    {
69      String paramValue = getString(paramName);
70      if (paramValue == null)
71        return false;
72  
73      if (paramValue.equals("true")
74          || paramValue.equals("yes"))
75        return true;
76  
77      return false;
78    } 
79  }
80