Example usage for io.vertx.core.json JsonArray JsonArray

List of usage examples for io.vertx.core.json JsonArray JsonArray

Introduction

In this page you can find the example usage for io.vertx.core.json JsonArray JsonArray.

Prototype

public JsonArray(Buffer buf) 

Source Link

Document

Create an instance from a Buffer of JSON.

Usage

From source file:DbHelper.java

private void getFileFromFrolder(String projectId, List<JsonObject> listFolders, Handler<JsonArray> handler) {
    String queryFile = "SELECT files.`name` as name, files.crete_date as dateCreated, files.modify_date as dateModified , files.pk_id_file as id, files.FOLDERS_pk_id_folder as folderId FROM  folders RIGHT JOIN files   ON folders.pk_id_folder=files.pk_id_file and folders.pk_id_folder IN (SELECT pk_id_folder FROM folders WHERE `PROJECT_pk_id_project`="
            + projectId + ")";
    mySQLClient.getConnection(resConnection -> {
        if (resConnection.succeeded()) {
            SQLConnection connection;//from w w w  .  ja  v  a 2 s  . c om
            connection = resConnection.result();
            connection.setAutoCommit(false, autoCommit -> {
                if (autoCommit.succeeded()) {
                    connection.query(queryFile, handlerQuery -> {
                        if (handlerQuery.succeeded()) {

                            ResultSet resultSet = handlerQuery.result();

                            List<JsonObject> listFiles = resultSet.getRows();
                            //                                System.out.println(new JsonArray(list).toString());
                            for (JsonObject listFile : listFiles) {
                                int folderId = listFile.getInteger("folderId");

                                //                                    System.out.println("id folder " + folderId);
                                for (JsonObject listFolder : listFolders) {

                                    if (listFolder.getInteger("id") == folderId) {
                                        try {
                                            listFolder.getJsonArray("files").add(listFile);
                                        } catch (Exception e) {
                                            List<JsonObject> listTmpFile = new ArrayList<>();
                                            listTmpFile.add(listFile);
                                            listFolder.put("files", listTmpFile);
                                        }

                                    }

                                }
                            }

                            //                                System.out.println(new JsonArray(listFolders).toString());
                            handler.handle(new JsonArray(listFolders));
                        } else {

                            System.out.println("failed " + handlerQuery.cause());
                        }
                        connection.close();
                    });
                } else {
                    System.out.println("auto commit failed");
                }

            });

            // Got a connection
        } else {
            // Failed to get connection - deal with it
            System.out.println("true failes");
        }
    });
}

From source file:cm.study.vertx.database.WikiDatabaseServiceVertxEBProxy.java

License:Apache License

private <T> Map<String, T> convertMap(Map map) {
    if (map.isEmpty()) {
        return (Map<String, T>) map;
    }/*from   w ww. ja  v  a  2  s . c o  m*/

    Object elem = map.values().stream().findFirst().get();
    if (!(elem instanceof Map) && !(elem instanceof List)) {
        return (Map<String, T>) map;
    } else {
        Function<Object, T> converter;
        if (elem instanceof List) {
            converter = object -> (T) new JsonArray((List) object);
        } else {
            converter = object -> (T) new JsonObject((Map) object);
        }
        return ((Map<String, T>) map).entrySet().stream()
                .collect(Collectors.toMap(Map.Entry::getKey, converter::apply));
    }
}

From source file:cm.study.vertx.database.WikiDatabaseServiceVertxEBProxy.java

License:Apache License

private <T> List<T> convertList(List list) {
    if (list.isEmpty()) {
        return (List<T>) list;
    }/* ww w  .java2s . c  om*/

    Object elem = list.get(0);
    if (!(elem instanceof Map) && !(elem instanceof List)) {
        return (List<T>) list;
    } else {
        Function<Object, T> converter;
        if (elem instanceof List) {
            converter = object -> (T) new JsonArray((List) object);
        } else {
            converter = object -> (T) new JsonObject((Map) object);
        }
        return (List<T>) list.stream().map(converter).collect(Collectors.toList());
    }
}

From source file:cm.study.vertx.database.WikiDatabaseServiceVertxProxyHandler.java

License:Apache License

private <T> Handler<AsyncResult<List<T>>> createListHandler(Message msg) {
    return res -> {
        if (res.failed()) {
            if (res.cause() instanceof ServiceException) {
                msg.reply(res.cause());/*from www.j av  a  2 s. c o m*/
            } else {
                msg.reply(new ServiceException(-1, res.cause().getMessage()));
            }
        } else {
            msg.reply(new JsonArray(res.result()));
        }
    };
}

From source file:cm.study.vertx.database.WikiDatabaseServiceVertxProxyHandler.java

License:Apache License

private <T> Handler<AsyncResult<Set<T>>> createSetHandler(Message msg) {
    return res -> {
        if (res.failed()) {
            if (res.cause() instanceof ServiceException) {
                msg.reply(res.cause());/*w  ww.j  av a  2  s  .  co  m*/
            } else {
                msg.reply(new ServiceException(-1, res.cause().getMessage()));
            }
        } else {
            msg.reply(new JsonArray(new ArrayList<>(res.result())));
        }
    };
}

From source file:com.cyngn.vertx.bosun.BosunReporter.java

License:Apache License

@Override
public void start(final Future<Void> startedResult) {

    // setup the default config values
    JsonObject config = context.config();
    hosts = config.getJsonArray("hosts", new JsonArray("[{ \"host\" : \"localhost\", \"port\" : 8070}]"));
    address = config.getString("address", DEFAULT_ADDRESS);
    maxTags = config.getInteger("max_tags", OPENTSDB_DEFAULT_MAX_TAGS);
    maxIndexCacheSize = config.getInteger("max_index_cache_size", DEFAULT_UNIQUE_METRICS_INDEXED);
    indexExpiryInMinutes = config.getInteger("index_expiry_minutes", DEFAULT_INDEX_EXPIRY_MINUTES);
    timeout = config.getInteger("default_timeout_ms", DEFAULT_TIMEOUT_MS);

    metricsIndexed = new AtomicInteger(0);
    metricsPut = new AtomicInteger(0);
    metricsErrors = new AtomicInteger(0);

    eventBus = vertx.eventBus();//from   ww  w . j a  va2  s  .  com

    // create the list of workers
    connections = new ArrayList<>(hosts.size());

    initializeConnections(startedResult);
    createMessageHandlers();
    outputConfig();

    // initialize the in memory index cache
    distinctMetrics = CacheBuilder.newBuilder().maximumSize(maxIndexCacheSize)
            .expireAfterWrite(DEFAULT_INDEX_EXPIRY_MINUTES, TimeUnit.MINUTES)
            .build(new CacheLoader<String, Boolean>() {
                public Boolean load(String key) throws Exception {
                    return true;
                }
            });

    // start listening for incoming messages
    eventBus.consumer(address, this);
    initStatsReporting();
}

From source file:com.deblox.solacemonitor.MonitorVerticle.java

License:Apache License

/**
 * Start the verticle/*from w  ww  .j  a  va 2  s.  co m*/
 *
 * @param startFuture
 * @throws Exception
 */
public void start(Future<Void> startFuture) throws Exception {

    logger.info("starup with config: " + config().toString());

    // read startup config
    config = config();

    // vars
    host = config.getString("host", null);
    port = config.getInteger("port", 80);
    uri = config.getString("uri", "/");
    username = config.getString("username", "DEFAULT_USERNAME");
    password = config.getString("password", "DEFAULT_PASSWORD");
    credentials = String.format("%s:%s", username, password);
    method = config.getString("method", "GET");

    // map for connected clients
    clients = new HashMap<UUID, String>();

    // generate a uuid
    uuid = UUID.randomUUID().toString();

    // connect to the eventbus
    eb = vertx.eventBus();

    // create a instance of http client
    client = vertx.createHttpClient();

    // eventbus ping listner
    eb.consumer("ping-address", message -> {
        logger.info(uuid + ": replying");
        message.reply("pong!");
    });

    // handler for requests for metrics
    eb.consumer("request-metrics", message -> {
        logger.info(uuid + ": requesting metrics");

        try {
            getRest(message.body().toString(), event -> {
                logger.debug("response: " + event.toString());
                if (config().getBoolean("convert_xml_response_to_json", false)) {
                    message.reply(Util.xml2json(event.toString()));
                } else {
                    message.reply(event.toString());
                }
            });
        } catch (Exception e) {
            logger.warn("unable to get metric");
            e.printStackTrace();
        }

    });

    // returns a array of names for all metrics defined in config
    // used for setting up the client
    eb.consumer("request-config", message -> {

        String req = message.body().toString();

        logger.debug("config request for: " + req);

        JsonObject response = new JsonObject();

        // all = return a list of metrics
        if (req.equals("all")) {

            JsonArray results = new JsonArray(config.getJsonObject("metrics").stream()
                    .filter(r -> ((JsonObject) r.getValue()).getBoolean("show_in_menu", true))
                    .map(r -> r.getKey()).sorted().collect(Collectors.toList()));
            response.put("metrics", results);

        } else {
            // get a specific metric's config
            response = config.getJsonObject("metrics").getJsonObject(req);
            response.put("topic", req);
            logger.debug(response.toString());

        }

        message.reply(response);

    });

    // register new clients
    eb.consumer("newclient", message -> {
        logger.info("new client: " + message.body().toString());
        JsonObject client = new JsonObject(message.body().toString());
        clients.remove(client.getString("uuid"));
        clients.put(UUID.fromString(client.getString("uuid")), client.getString("version"));
    });

    // client ping maintains the clients map
    eb.consumer("client-ping", message -> {
        JsonObject client = new JsonObject(message.body().toString());
        clients.remove(client.getString("uuid"));
        clients.put(UUID.fromString(client.getString("uuid")), client.getString("version"));
    });

    // listen for broadcasts from other verticles / clients
    eb.consumer("broadcast", event -> {
        logger.info(event.body().toString());
        JsonObject message = new JsonObject(event.body().toString());
        broadcast(message.getString("topic", "unknown"), event.body().toString());
    });

    // create metric emitters
    Iterator iter = config.getJsonObject("metrics", new JsonObject()).iterator();
    while (iter.hasNext()) {

        Map.Entry<String, JsonObject> metricConfig = (Map.Entry) iter.next();

        logger.debug("registering metric: " + metricConfig.getKey());

        int interval = metricConfig.getValue().getInteger("interval", 0);

        if (interval != 0) {
            vertx.setPeriodic(interval, tid -> {

                logger.debug("metric interval handler for " + metricConfig.getKey() + " every " + interval);

                try {

                    getRest(metricConfig.getKey(), event -> {
                        logger.debug("metric: " + event.toString());

                        JsonObject metricMessage = new JsonObject();
                        metricMessage.put("topic", metricConfig.getKey());
                        metricMessage.put("data", Util.xml2json(event.toString()));

                        // get the config for the metric
                        JsonObject msgConfig = config.getJsonObject("metrics")
                                .getJsonObject(metricConfig.getKey()).getJsonObject("config", new JsonObject());

                        // get the view_format by name
                        msgConfig.put("view_format", config.getJsonObject("views", new JsonObject())
                                .getJsonObject(msgConfig.getString("view", "default")));

                        // put the config into the message
                        metricMessage.put("config", msgConfig);

                        // publish the metric
                        eb.publish(metricConfig.getKey(), metricMessage);

                    });
                } catch (Exception e) {
                    logger.warn("unable to publish metric");
                    e.printStackTrace();
                }
            });

        } else {
            logger.warn("metric " + metricConfig.getKey() + " is disabled ");

        }
    }

    // after 10 seconds, announce the server version to all clients
    vertx.setTimer(10000, tid -> {
        broadcast("broadcast", "Server Startup " + config.getString("version", server_version));
    });

    // after 10 seconds, announce the server version to all clients
    vertx.setPeriodic(1000, tping -> {
        eb.publish("ping", new JsonObject().put("data", "ping"));
    });

    // periodically nuke all the client sessions
    vertx.setPeriodic(config().getInteger("client_session_refresh", 300000), res -> {
        clients = new HashMap<UUID, String>();
    });

    // periodically log number of clients in the map
    vertx.setPeriodic(config().getInteger("client_session_show", 180000), res -> {
        logger.info(clients.size() + " connected clients");
    });

    startFuture.complete();

}

From source file:com.emikra.vertx.oak.OakServiceVertxProxyHandler.java

License:Apache License

private <T> Handler<AsyncResult<List<T>>> createListHandler(Message msg) {
    return res -> {
        if (res.failed()) {
            msg.fail(-1, res.cause().getMessage());
        } else {/* w w w.ja  v  a2 s  . com*/
            msg.reply(new JsonArray(res.result()));
        }
    };
}

From source file:com.emikra.vertx.oak.OakServiceVertxProxyHandler.java

License:Apache License

private <T> Handler<AsyncResult<Set<T>>> createSetHandler(Message msg) {
    return res -> {
        if (res.failed()) {
            msg.fail(-1, res.cause().getMessage());
        } else {/*from ww w  .  ja  v a  2s  .  c  o m*/
            msg.reply(new JsonArray(new ArrayList<>(res.result())));
        }
    };
}

From source file:com.englishtown.vertx.elasticsearch.ElasticSearchAdminServiceVertxEBProxy.java

License:Apache License

public void putMapping(List<String> indices, String type, JsonObject source, MappingOptions options,
        Handler<AsyncResult<JsonObject>> resultHandler) {
    if (closed) {
        resultHandler.handle(Future.failedFuture(new IllegalStateException("Proxy is closed")));
        return;//from  ww  w  .  ja v  a2  s  . com
    }
    JsonObject _json = new JsonObject();
    _json.put("indices", new JsonArray(indices));
    _json.put("type", type);
    _json.put("source", source);
    _json.put("options", options == null ? null : options.toJson());
    DeliveryOptions _deliveryOptions = (_options != null) ? new DeliveryOptions(_options)
            : new DeliveryOptions();
    _deliveryOptions.addHeader("action", "putMapping");
    _vertx.eventBus().<JsonObject>send(_address, _json, _deliveryOptions, res -> {
        if (res.failed()) {
            resultHandler.handle(Future.failedFuture(res.cause()));
        } else {
            resultHandler.handle(Future.succeededFuture(res.result().body()));
        }
    });
}