private Optional<String> getNodeValue(final JsonNode rootNode, final String jsonPointerExpr) {
        Objects.requireNonNull(rootNode);
        Objects.requireNonNull(jsonPointerExpr);

        final JsonNode node = rootNode.at(jsonPointerExpr);
        if (node.isMissingNode()) {
            return Optional.empty();
        } else {
            return Optional.ofNullable(node.textValue());
        }
    }
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