private void mergeConfigurations(
      ServiceModule parent, Map<String, StackModule> allStacks, Map<String, ServiceModule> commonServices, Map<String, ExtensionModule> extensions)
      throws AmbariException {
    serviceInfo.getProperties().clear();
    serviceInfo.setAllConfigAttributes(new HashMap<>());

    Collection<ConfigurationModule> mergedModules = mergeChildModules(
        allStacks, commonServices, extensions, configurationModules, parent.configurationModules);
    for (ConfigurationModule module : mergedModules) {
      configurationModules.put(module.getId(), module);
      if(!module.isDeleted()) {
        serviceInfo.getProperties().addAll(module.getModuleInfo().getProperties());
        serviceInfo.setTypeAttributes(module.getConfigType(), module.getModuleInfo().getAttributes());
      }
    }
  }
Merge configurations with the parent configurations.
This will update the child configuration module set as well as the underlying info instances.

@param parent          parent service module
@param allStacks       all stack modules
@param commonServices  common service modules
ambari-server/src/main/java/org/apache/ambari/server/stack/ServiceModule.java