private void mutateNodes(final JsonNode rootNode,
                             final String jsonPointerExpr,
                             final List<String> names,
                             final Function<String, String> valueMutator) {
        final JsonNode parentNode = rootNode.at(jsonPointerExpr);
        if (parentNode.isMissingNode()) {
            throw new RuntimeException(LogUtil.message("jsonPointerExpr {}, not found in yaml",
                    jsonPointerExpr));
        } else {
            mutateNodes(parentNode, names, valueMutator, jsonPointerExpr);
        }
    }
Merge our compile time defaults with the de-serialised config so we have a full tree
stroom-proxy/stroom-proxy-app/src/main/java/stroom/proxy/app/ProxyConfigurationSourceProvider.java