m_properties.put(name,value);
    protected void load(String file) throws ConfigurationException {        Source source = null;        BufferedReader in = null;        try {            source = m_resolver.resolveURI(file);                       in = new BufferedReader(new InputStreamReader(source.getInputStream()));                        m_properties = new Properties();            String currentLine, name, value;            int splitIndex;            Enumeration names;                         while((currentLine = in.readLine()) != null) {                // # == comment                if(!currentLine.startsWith("#")){                     splitIndex =  currentLine.indexOf('=');                     name = currentLine.substring(0, splitIndex).trim();                    //if the property is already there don't overwrite, as in Ant                    //properties defined first take precedence                    if(!m_properties.containsKey(name)){                        value = currentLine.substring(splitIndex+1).trim();                        names = m_properties.propertyNames();                        while( names.hasMoreElements() ) {                            String currentName = (String) names.nextElement();                            String valueToSearchFor = "${"+currentName+"}";                            String valueToReplaceWith = (String) m_properties.get(currentName);                            value = StringUtils.replace(value, valueToSearchFor, valueToReplaceWith);                        }                    }                    }                }        }        catch (IOException e) {            throw new ConfigurationException("Cannot load properties file " + file);        }        finally {            if (source != null) {                m_resolver.release(source);            }            if (in != null) {                try {                    in.close();                }                catch (IOException e) {                }            }        }    }