synchronized int refreshGlobalPropYamlOverrides(final AppConfig yamlAppConfig) {

        final Map<PropertyPath, Optional<String>> currentEffectiveValues = globalPropertiesMap.values()
                .stream()
                .collect(Collectors.toMap(ConfigProperty::getName, ConfigProperty::getEffectiveValue));

        final Map<PropertyPath, SourceType> currentSources = globalPropertiesMap.values()
                .stream()
                .collect(Collectors.toMap(ConfigProperty::getName, ConfigProperty::getSource));

        final Map<PropertyPath, Prop> newPropertyMap = new HashMap<>();
        // walk the yamlAppConfig tree and update the globalPropertiesMap with the yaml overrides
        addConfigObjectMethods(
                yamlAppConfig,
                AppConfig.ROOT_PROPERTY_PATH,
                newPropertyMap,
                null,
                true);

        allPropertyPaths.forEach(propertyPath ->
                yamlOverridePropertyConsumer(propertyPath, newPropertyMap.get(propertyPath)));

        // We assume that the all the db overrides in the glob props are up to date at this point
        final int changeCount = haveAnyEffectiveValuesChanged(
                currentEffectiveValues, currentSources);

        if (!haveYamlOverridesBeenInitialised) {
            haveYamlOverridesBeenInitialised = true;
        }

        return changeCount;
    }
Only for use in testing as this does not wait for DB props to be included
in the effective values
stroom-config/stroom-config-global-impl/src/main/java/stroom/config/global/impl/ConfigMapper.java