archaius-core/src/main/java/com/netflix/config/DynamicPropertyFactory.java
public <T> DynamicContextualProperty<T> getContextualProperty(String propName, T defaultValue, final Runnable propertyChangeCallback) {
        checkAndWarn(propName);
        DynamicContextualProperty<T> property = new DynamicContextualProperty<T>(propName, defaultValue);
        addCallback(propertyChangeCallback, property);
        return property;
    }
public <T> DynamicContextualProperty<T> getContextualProperty(String propName, T defaultValue, final Runnable propertyChangeCallback) {
        checkAndWarn(propName);
        DynamicContextualProperty<T> property = new DynamicContextualProperty<T>(propName, defaultValue);
        addCallback(propertyChangeCallback, property);
        return property;
    }
Create a new contextual property of type T

@param propName               property name
@param defaultValue           default value if the property is not defined in underlying configuration
@param propertyChangeCallback a Runnable to be called when the property is changed
@param <T>                    the type of the property value