Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Pyx4j framework Copyright (C) 2006 pyx4.com.

Author(s):
vlads
Version:
$Id: AppConfiguration.java 76 2007-04-04 17:00:30Z vlads $
  
  package com.pyx4j.utils;
  
 import java.io.File;
 import java.net.URL;
 import java.util.Date;
 import java.util.List;
 
 
Created on 10-Jul-06 Wrapper for JFig
 
 public abstract class AppConfiguration {
 
     public static final long startTime = System.currentTimeMillis();
 
     private static final String BUILD_PROPERTIES_FILE = "generated/build.version.properties";
     
     private static final String POM_VERSION = "pom.version";
     
     private static final String BUILD_NUMBER = "build.number";
 
     private static final String BUILD_TIME = "build.timestamp";
 
     private static final String BUILD_TIME_FORMAT = "yyyyMMddHHmmss";
 
     private static String productVersion = null;
 
     private static Date buildTimestamp;
 
     private static final Logger log = Logger.getLogger();
 
     private static String servletContextName;
     
     private static boolean initialized = false;
     
     public static boolean development;
     
     private static void initialize(String contextName) {
     	if () {
     		..println("WARN reinitialize config with context " + contextName);
     	}
     	 = true;
     	 = contextName;
         System.getProperties().put("hostname", PropertyUtility.getHostName().toLowerCase(.));
         .info("host name " + System.getProperty("hostname") + " contextName " + contextName);
         JFig.getInstance(new JFigLocatorDefault());
          = AppConfiguration.getBooleanValue("dev""development");
         logSystemProperty();
     }
     
     private static void checkInitialized() {
     	if (!) {
     		initialize(null);
     	}
     }
 
     public static String getProductVersion() {
         if ( == null) {
             Properties properties = new Properties();
             loadProperties(properties);
              = properties.getProperty("n/a");
             if (.startsWith("${")) {
                  = properties.getProperty("n/a");
             }
             DateFormat df = new SimpleDateFormat();
             try {
                 String bildTimeString = properties.getProperty();
                 if ((bildTimeString == null) || (bildTimeString.startsWith("${"))) {
                      = null;
                 } else {
                      = df.parse(bildTimeString);
                }
            } catch (ParseException e) {
                .error("build rimestamp error"e);
                 = null;
            }
        }
        return ;
    }
    public static String getProductBuildTime() {
        getProductVersion();
        if ( != null) {
            DateFormat df;
            if (DateUtils.isSameDay(new Date())) {
                df = new SimpleDateFormat("HH:mm");
            } else {
                df = new SimpleDateFormat("MMM dd, yyyy HH:mm");
            }
            return df.format();
        } else {
            return "";
        }
    }

    
Do nothing just enable static initializer.
    public static void contextStart(String contextName) {
    	initialize(contextName);
        String configFile = AppConfiguration.getValue("log""configFile");
        if (StringUtils.isStringSet(configFile)) {
            URL configFileURL = AppConfiguration.class.getResource(configFile);
            if (configFileURL != null) {
                DOMConfigurator.configure(configFileURL);
            } else {
                .warn("Log4J file not found:" + configFile);
            }
        }
        if (AppConfiguration.getValue("app""jmx"true) && AppConfiguration.getValue("log""jmx"false)) {
            Log4jJMX.register(AppConfiguration.getJMXContextName());
        }
        configureJNDI();
    }
    
    public static void contextDestroy(String contextName) {
        if (AppConfiguration.getValue("app""jmx"true) && AppConfiguration.getValue("log""jmx"false)) {
            Log4jJMX.unregister(AppConfiguration.getJMXContextName());
        }
    }
    private static void configureJNDI() {
        try {
            String jndiName = AppConfiguration.getValue("db""dataSource.jndiName");
            if (StringUtils.isStringSet(jndiName)) {
                throw new Error("jndi DataSource Not implemented");
//                javax.naming.Context ctx = new javax.naming.InitialContext();
//
//                Properties properties = new Properties();
//                properties.put("driverClassName", AppConfiguration.getValue("db", "driverClass"));
//                properties.put("url", AppConfiguration.getValue("db", "connectionUrl"));
//                properties.put("username", AppConfiguration.getValue("db", "userName"));
//                properties.put("password", AppConfiguration.getValue("db", "password"));
//                javax.sql.DataSource ds = org.apache.commons.dbcp.BasicDataSourceFactory.createDataSource(properties);
//                //                java.sql.DatabaseMetaData metaData = ds.getConnection().getMetaData();
//                //                log.debug("connection DatabaseProductVersion", metaData.getDatabaseProductVersion());
//                ctx.bind(jndiName, ds);
            }
        } catch (Exception e) {
            .error("Error"e);
            throw new Error("App can't start"e);
        }
    }
    private static JFigIF getJFig() {
    	return JFig.getInstance();
    }
    
    
Enable recuricive section refferences; substitution
    private static String section(String sectionString key) {
        String sectionRef = getJFig().getValue(section"section.ref"null);
        if (sectionRef == null) {
            return section;
        } else {
            String sectionRefRec = section(sectionRefkey);
            if (hasValue(sectionRefReckey)) {
                return sectionRefRec;
            } else if (hasValue(sectionRefkey)) {
                return sectionRef;
            } else {
                return section;
            }
        }
    }
    private static boolean hasValue(String sectionString key) {
    	return StringUtils.isStringSet(getJFig().getValue(sectionkeynull));
    }
    public static String getValue(String sectionString key) {
        return getJFig().getValue(section(sectionkey), keynull);
    }
    public static String getValue(String sectionString keyString defaultValue) {
        return getJFig().getValue(section(sectionkey), keydefaultValue);
    }
    
    public static int getValue(String sectionString keyint defaultValue) {
        return getIntegerValue(sectionkeydefaultValue);
    }
    
    public static int getIntegerValue(String sectionString key) {
        try {
            return getJFig().getIntegerValue(section(sectionkey), key);
        } catch (JFigException e) {
            throw new Error(e);
        }
    }
    public static int getIntegerValue(String sectionString keyint defaultValue) {
        return getJFig().getIntegerValue(section(sectionkey), key, String.valueOf(defaultValue));
    }
    
    public static boolean getBooleanValue(String sectionString key) {
        return getBooleanValue(section(sectionkey), keyfalse);
    }
    public static boolean getValue(String sectionString keyboolean notFoundValue) {
        return getBooleanValue(sectionkeynotFoundValue);
    }
    
    public static boolean getBooleanValue(String sectionString keyboolean notFoundValue) {
        return getJFig().getBooleanValue(section(sectionkey), key, String.valueOf(notFoundValue));
    }
    public static void loadProperties(Properties propertiesString configFileName) {
        loadProperties(propertiesgetResourceURL(configFileName));
    }
    public static void loadProperties(Properties propertiesURL url) {
        if (url == null) {
            return;
        }
        InputStream is = null;
        try {
            is = url.openStream();
            properties.load(is);
        } catch (IOException e) {
            ..println("Error: Properties init " + url);
            e.printStackTrace();
        } finally {
            if (is != null) {
                try {
                    is.close();
                } catch (IOException ignore) {
                    is = null;
                }
            }
        }
    }
    public static File getResourceFile(String searchName) {
        URL url = getResourceURL(searchName);
        try {
            File f = new File(url.toURI());
            if (!f.canRead()) {
                throw new Error("Can't read config file " + searchName);
            }
            return f;
        } catch (URISyntaxException e) {
            ..println("Error: configuration file :" + searchName);
            throw new Error(e);
        }
    }
    public static URL getResourceURL(String searchName) {
        if (searchName == null) {
            return null;
        }
        URL url = null;
        // find the resource in the classPath
        ClassLoader loader = ClassLoader.getSystemClassLoader();
        url = loader.getResource(searchName);
        if (url != null) {
            return url;
        }
        loader = AppConfiguration.class.getClassLoader();
        url = loader.getResource(searchName);
        if (url != null) {
            return url;
        }
        return AppConfiguration.class.getResource(searchName);
    }
    public static void logSystemProperty() {
        StringBuffer sysProperties = new StringBuffer();
        Properties properties = System.getProperties();
        // Sort the list
        List<Stringlist2sort = new Vector<String>();
        int max_key = 0;
        for (Object keyObjproperties.keySet()) {
            String key = keyObj.toString();
            list2sort.add(key);
            int len = key.length();
            if (len > max_key) {
                max_key = len;
            }
        }
        Collections.sort(list2sort);
        if (max_key > 41) {
            max_key = 41;
        }
        for (String keylist2sort) {
            StringBuffer key_p = new StringBuffer(key);
            while (key_p.length() < max_key) {
                key_p.append(" ");
            }
            String value = (Stringproperties.get(key);
            if (value == null) {
                value = "{null}";
            }
            StringBuffer value_p = new StringBuffer(value);
            value_p.append("]");
            while (value_p.length() < 60) {
                value_p.append(" ");
            }
            sysProperties.append("         " + key_p.toString() + " = [" + value_p.toString() + "\n");
        }
        .debug("System Properties:\n" + sysProperties.toString());
    }
    public static String getServletContextName() {
        return ;
    }
    
    public static String getJMXContextName() {
        if (!StringUtils.isStringSet()) {
            return "none";
        }
        return ;
    }
New to GrepCode? Check out our FAQ X