protected void registerResourceProvider(Resource.Type type) {
    ResourceProvider resourceProvider = createResourceProvider(type);

    if (resourceProvider instanceof ObservableResourceProvider) {
      ((ObservableResourceProvider) resourceProvider).addObserver(this);
    }

    putResourceProvider(type, resourceProvider);
  }
Post process property value. If value has one ore some substrings
started with "${" and ended with "}" these substrings will replace
with properties from current propertiesMap. It is doing recursively.

@param key        - properties name
@param value      - properties value
@param properties - map with properties
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java