public Configuration getConfiguration(Collection<Map<String, String>> configProperties) {
    Map<String, Map<String, String>> properties = new HashMap<>();
    Map<String, Map<String, Map<String, String>>> attributes = new HashMap<>();
    Configuration configuration = new Configuration(properties, attributes);

    if (configProperties != null) {
      for (Map<String, String> typeMap : configProperties) {
        //todo: can we have a different strategy for each type?
        ConfigurationStrategy strategy = decidePopulationStrategy(typeMap);
        for (Map.Entry<String, String> entry : typeMap.entrySet()) {
          String[] propertyNameTokens = entry.getKey().split("/");
          strategy.setConfiguration(configuration, propertyNameTokens, entry.getValue());
        }
      }
    }
    return configuration;
  }
Creates a configuration instance from user provided properties.
Supports both forms of configuration syntax.
todo: document both forms here
ambari-server/src/main/java/org/apache/ambari/server/topology/ConfigurationFactory.java