Example usage for org.springframework.boot.json JacksonJsonParser parseMap

List of usage examples for org.springframework.boot.json JacksonJsonParser parseMap

Introduction

In this page you can find the example usage for org.springframework.boot.json JacksonJsonParser parseMap.

Prototype

@Override
    public Map<String, Object> parseMap(String json) 

Source Link

Usage

From source file:be.ordina.msdashboard.aggregators.health.HealthIndicatorsAggregator.java

private Observable<Node> getHealthNodesFromService(String serviceId, String url) {
    HttpClientRequest<ByteBuf> request = HttpClientRequest.createGet(url);
    for (Entry<String, String> header : properties.getRequestHeaders().entrySet()) {
        request.withHeader(header.getKey(), header.getValue());
    }//from w ww  .  j av  a  2 s  .  co  m
    return RxNetty.createHttpRequest(request).doOnError(el -> {
        String error = MessageFormat.format("Error retrieving healthnodes in url {} with headers {}: {}",
                request.getUri(), request.getHeaders().entries(), el);
        logger.error(error);
        publisher.publishEvent(new NodeEvent(serviceId, error));
    }).onErrorResumeNext(Observable.empty()).filter(r -> {
        if (r.getStatus().code() < 400) {
            return true;
        } else {
            String warning = "Exception " + r.getStatus() + " for call " + url + " with headers "
                    + r.getHeaders().entries();
            logger.warn(warning);
            publisher.publishEvent(new NodeEvent(serviceId, warning));
            return false;
        }
    }).flatMap(AbstractHttpContentHolder::getContent).map(data -> data.toString(Charset.defaultCharset()))
            .map(response -> {
                JacksonJsonParser jsonParser = new JacksonJsonParser();
                return jsonParser.parseMap(response);
            }).map((source) -> HealthToNodeConverter.convertToNodes(serviceId, source)).flatMap(el -> el)
            .filter(node -> !HYSTRIX.equals(node.getId()) && !DISK_SPACE.equals(node.getId())
                    && !DISCOVERY.equals(node.getId()) && !CONFIGSERVER.equals(node.getId()))
            //TODO: .map(node -> toolBoxDependenciesModifier.modify(node))
            .doOnNext(el -> logger.info("Health node {} discovered in url: {}", el.getId(), url)).doOnCompleted(
                    () -> logger.info("Completed emission of a health node observable from url: " + url));
}