diff options
| author | Jesse Morgan <jesse@jesterpm.net> | 2016-04-09 15:53:24 -0700 | 
|---|---|---|
| committer | Jesse Morgan <jesse@jesterpm.net> | 2016-04-09 15:53:24 -0700 | 
| commit | 371ccae3d1f31ec38f4af77fb7fcd175d49b3cd5 (patch) | |
| tree | 38c4f1e8828f9af9c4b77a173bee0d312b321698 /src/com/p4square/grow/config | |
| parent | bbf907e51dfcf157bdee24dead1d531122aa25db (diff) | |
| parent | 3102d8bce3426d9cf41aeaf201c360d342677770 (diff) | |
Merge pull request #10 from PuyallupFoursquare/maven
Switching from Ivy+Ant to Maven.
Diffstat (limited to 'src/com/p4square/grow/config')
| -rw-r--r-- | src/com/p4square/grow/config/Config.java | 203 | 
1 files changed, 0 insertions, 203 deletions
| diff --git a/src/com/p4square/grow/config/Config.java b/src/com/p4square/grow/config/Config.java deleted file mode 100644 index 2fc2ea3..0000000 --- a/src/com/p4square/grow/config/Config.java +++ /dev/null @@ -1,203 +0,0 @@ -/* - * Copyright 2013 Jesse Morgan - */ - -package com.p4square.grow.config; - -import java.io.File; -import java.io.FileInputStream; -import java.io.InputStream; -import java.io.IOException; -import java.util.Properties; - -import org.apache.log4j.Logger; - -/** - * Manage configuration for an application. - * - * Config reads one or more property files as the application config. Duplicate - * properties loaded later override properties loaded earlier. Config has the - * concept of a domain to distinguish settings for development and production. - * The default domain is prod for production. Domain can be any String such as - * dev for development or test for testing. - * - * The property files are processed like java.util.Properties except that the - * keys are specified as DOMAIN.KEY. An asterisk (*) can be used in place of a - * domain to indicate it should apply to all domains. If a domain specific entry - * exists for the current domain, it will override any global config. - * - * @author Jesse Morgan <jesse@jesterpm.net> - */ -public class Config { -    private static final Logger LOG = Logger.getLogger(Config.class); - -    private String mDomain; -    private Properties mProperties; - -    /** -     * Construct a new Config object. -     * -     * Sets the domain to the value of the system property CONFIG_DOMAIN, if present. -     * If the system property is not set then the environment variable CONFIG_DOMAIN is checked. -     * If neither are set the domain defaults to prod. -     */ -    public Config() { -        // Check the command line for a domain property. -        mDomain = System.getProperty("CONFIG_DOMAIN"); - -        // If the domain was not set with a property, check for an environment variable. -        if (mDomain == null) { -            mDomain = System.getenv("CONFIG_DOMAIN"); -        } - -        // If neither were set, default to prod -        if (mDomain == null) { -            mDomain = "prod"; -        } - -        mProperties = new Properties(); -    } - -    /** -     * Change the domain from the default string "prod". -     * -     * @param domain The new domain. -     */ -    public void setDomain(String domain) { -        LOG.info("Setting Config domain to " + domain); -        mDomain = domain; -    } - -    /** -     * @return the current domain. -     */ -    public String getDomain() { -        return mDomain; -    } - -    /** -     * Load properties from a file. -     * Any exception are logged and suppressed. -     */ -    public void updateConfig(String propertyFilename) { -        final File propFile = new File(propertyFilename); - -        LOG.info("Loading properties from " + propFile); - -        try { -            InputStream in = new FileInputStream(propFile); -            updateConfig(in); - -        } catch (IOException e) { -            LOG.error("Could not load properties file: " + e.getMessage(), e); -        } -    } - -    /** -     * Load properties from an InputStream. -     * This method closes the InputStream when it completes. -     * -     * @param in The InputStream -     */ -    public void updateConfig(InputStream in) throws IOException { -        LOG.info("Loading properties from InputStream"); -        mProperties.load(in); -        in.close(); -    } - -    /** -     * Get a String from the config. -     * -     * @return The config value or null if it is not found. -     */ -    public String getString(String key) { -        return getString(key, null); -    } - -    /** -     * Get a String from the config. -     * -     * @return The config value or defaultValue if it can not be found. -     */ -    public String getString(final String key, final String defaultValue) { -        String result; - -        // Command line properties trump all. -        result = System.getProperty(key); -        if (result != null) { -            LOG.debug("Reading System.getProperty(" + key + "). Got result = { " + result + " }"); -            return result; -        } - -        // Environment variables can also override configs -        result = System.getenv(key); -        if (result != null) { -            LOG.debug("Reading System.getenv(" + key + "). Got result = { " + result + " }"); -            return result; -        } - -        final String domainKey = mDomain + "." + key; -        result = mProperties.getProperty(domainKey); -        if (result != null) { -            LOG.debug("Reading config for key = { " + key + " }. Got result = { " + result + " }"); -            return result; -        } - -        final String globalKey = "*." + key; -        result = mProperties.getProperty(globalKey); -        if (result != null) { -            LOG.debug("Reading config for key = { " + key + " }. Got result = { " + result + " }"); -            return result; -        } - -        LOG.debug("Reading config for key = { " + key + " }. Got default value = { " + defaultValue + " }"); -        return defaultValue; -    } - -    /** -     * Get an integer from the config. -     * -     * @return The config value or Integer.MIN_VALUE if the key is not present or the -     *         config can not be parsed. -     */ -    public int getInt(String key) { -        return getInt(key, Integer.MIN_VALUE); -    } - -    /** -     * Get an integer from the config. -     * -     * @return The config value or defaultValue if the key is not present or the -     *         config can not be parsed. -     */ -    public int getInt(String key, int defaultValue) { -        final String propertyValue = getString(key); - -        if (propertyValue != null) { -            try { -                final int result = Integer.valueOf(propertyValue); -                return result; - -            } catch (NumberFormatException e) { -                LOG.warn("Expected property to be an integer: " -                        + key + " = { " + propertyValue + " }"); -            } -        } - -        return defaultValue; -    } - -    public boolean getBoolean(String key) { -        return getBoolean(key, false); -    } - -    public boolean getBoolean(String key, boolean defaultValue) { -        final String propertyValue = getString(key); - -        if (propertyValue != null) { -            return (propertyValue.charAt(0) & 0xDF) == 'T'; -        } - -        return defaultValue; -    } -} | 
