code: private void mergeProperties(Map<ExecutionConfigSource, Map<ExecutionProperty, List<String>>> sourceToPropertiesMap) {
          for ( ExecutionConfigSource s : propertySources) {
              Map<ExecutionProperty, List<String>> properties = sourceToPropertiesMap.get(s);
              for ( ExecutionProperty p : properties.keySet()) {
                  List<String> valuesFromSource = properties.get(p);
                  if ( valuesFromSource != null && !valuesFromSource.isEmpty()) {
                      List<String> vals = getOrCreatePropertyValues(p);
                      mergeValues(valuesFromSource, p, vals);
                  }
              }
          }
      }
docs: deermine the final set of properties according to PropertySourceMode for each property