archaius-core/src/main/java/com/netflix/config/ConcurrentCompositeConfiguration.java
public Object getProperty(String key)
    {
        if (overrideProperties.containsKey(key)) {
            return overrideProperties.getProperty(key);
        }
        Configuration firstMatchingConfiguration = null;
        for (Configuration config : configList)
        {
            if (config.containsKey(key))
            {
                firstMatchingConfiguration = config;
                break;
            }
        }

        if (firstMatchingConfiguration != null)
        {
            return firstMatchingConfiguration.getProperty(key);
        }
        else
        {
            return null;
        }
    }
public Object getProperty(String key)
    {
        if (overrideProperties.containsKey(key)) {
            return overrideProperties.getProperty(key);
        }
        Configuration firstMatchingConfiguration = null;
        for (Configuration config : configList)
        {
            if (config.containsKey(key))
            {
                firstMatchingConfiguration = config;
                break;
            }
        }

        if (firstMatchingConfiguration != null)
        {
            return firstMatchingConfiguration.getProperty(key);
        }
        else
        {
            return null;
        }
    }
Read property from underlying composite. It first checks if the property has been overridden
by {@link #setOverrideProperty(String, Object)} and if so return the overriding value.
Otherwise, it iterates through the list of sub configurations until it finds one that contains the
property and return the value from that sub configuration. It returns null of the property does
not exist.

@param key key to use for mapping

@return object associated with the given configuration key. null if it does not exist.