Code Search for Developers
 
 
  

FileConfigVarManager.java from BIRT at Krugle


Show FileConfigVarManager.java syntax highlighted

/*******************************************************************************
 * Copyright (c) 2004 Actuate Corporation.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *  Actuate Corporation  - initial API and implementation
 *******************************************************************************/
package org.eclipse.birt.core.config;

import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Properties;

/**
 * Defines a configuration manager class that loads configuration variables from 
 * a file. In case the file does not contain a specified config var, the system config
 * var manager is used as backup. 
 */
public class FileConfigVarManager extends SystemConfigVarManager {
	
    /**
     * Configuration variables retrieved from file
     */
    protected Properties fileConfigVars;

    /**
     * configuration file name
     */
    protected String configFileName; 
    
    /**
     * is the configuration file loaded
     */
    protected  boolean configFileLoaded = false;
    
    /**
     * Constructor
     */
    public FileConfigVarManager() {
        super();
        configFileName = getDefaultConfigFileName();
    }
    
    /**
     * @param configFileName the configuration file name
     */
    public FileConfigVarManager(String configFileName) {
        super();  
        this.configFileName = configFileName;
    } 
    
    /**
     * gets the default configuration file location. The file is in the
     * same directory as birtcore.jar.
     * 
     * @return the default configuration file name
     */
    private String getDefaultConfigFileName() {
	    // use the following code if we want to use class loaded
	    // ClassLoader loader = Thread.currentThread().getContextClassLoader();
	    // is = loader.getResourceAsStream(DEFAULT_PROPERTIES);
        // TODO add code to calculate default config file name
    	
        return null;
    }

	/**
	 * load configuration file
	 */
	synchronized private void load() 
	{
	    if (configFileLoaded)
	        return;
	        
	    InputStream is = null;
        fileConfigVars = new Properties();
        
	    try 
	    {
	        is = new FileInputStream(configFileName);
	    	if (is != null)    
	    	    fileConfigVars.load(is);
	    } catch (Exception e)	// IOException or FileNotFoundException
	    {
	        fileConfigVars = null;
	        // Log me, then neglect the exception
	    }
	    
	    configFileLoaded = true;
	}
	
	/* (non-Javadoc)
	 * @see org.eclipse.birt.core.config.IConfigVarManager#getConfigVar(java.lang.String)
	 */
	public String getConfigVar(String key) 
	{
	    String ret = null;
	    if (!configFileLoaded)
	        load();
	    
	    if (fileConfigVars != null)
	    {
	        ret = fileConfigVars.getProperty(key);
	        if (ret == null )
	            ret = System.getProperty(key);
	    }
	    else
	    	ret = System.getProperty(key);

        return ret;
	}
}




See more files for this project here

BIRT

BIRT is an open source, Eclipse-based reporting system that integrates with your application to produce compelling reports for both web and PDF.

Project homepage: http://www.eclipse.org/birt/phoenix/
Programming language(s): Java,XML
License: gpl2

  FileConfigVarManager.java
  IConfigVarManager.java
  SystemConfigVarManager.java
  package.html