package org.apache.commons.configuration; import groovy.lang.Binding; import java.util.HashMap; import java.util.Map; public class ConfigurationBinding extends Binding { Configuration _conf; Map _utils; Map<String, String> _usedEnvVars = new HashMap(); public ConfigurationBinding(Configuration conf, Map utils) { _conf = conf; _utils = utils; } public Object getVariable(String name) { Object result = null; if (_utils != null) result = _utils.get(name); if (result == null) result = _conf.getProperty(name); if (result == null) result = super.getVariable(name); if (result != null) { String r = System.getProperty(name); if (result.equals(r)) _usedEnvVars.put(name, result.toString()); else { r = System.getenv(name); if (result.equals(r)) _usedEnvVars.put(name, result.toString()); } } return result; } public Object getProperty(String name) { return getVariable(name); } public Map<String, String> getUsedEnvVars() { return _usedEnvVars; } }