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

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

Introduction

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

Prototype

public JsonObject() 

Source Link

Document

Create a new, empty instance

Usage

From source file:com.cyngn.vertx.opentsdb.Util.java

License:Apache License

/**
 * Create a bulk metric object for sending to the OpenTsDb lib
 *
 * @param metric the first metric to put in the bulk requests
 * @return the properly constructed metric object
 *///from   w  w  w  .j  a v  a 2 s . c o  m
public static JsonObject createBulkMetric(JsonObject metric) {
    return new JsonObject().put(OpenTsDbService.ACTION_FIELD, OpenTsDbService.ADD_ALL_COMMAND)
            .put(MetricsParser.METRICS_FIELD, new JsonArray().add(metric));
}

From source file:com.dangchienhsgs.redis.client.RedisOption.java

License:Open Source License

public RedisOption() {
    json = new JsonObject();
}

From source file:com.ddp.SimpleREST.java

License:Open Source License

public static void main(String argv[]) {

    VertxOptions options = new VertxOptions().setBlockedThreadCheckInterval(200000000);
    options.setClustered(true);//from w w  w  .ja v a 2s.co m

    Vertx.clusteredVertx(options, res -> {
        if (res.succeeded()) {
            Vertx vertx = res.result();
            final JsonObject js = new JsonObject();
            vertx.fileSystem().readFile("app-conf.json", result -> {
                if (result.succeeded()) {
                    Buffer buff = result.result();
                    js.mergeIn(new JsonObject(buff.toString()));
                    initConfig(js);
                    DeploymentOptions deploymentOptions = new DeploymentOptions().setConfig(js)
                            .setMaxWorkerExecuteTime(5000).setWorker(true).setWorkerPoolSize(5);
                    vertx.deployVerticle(SimpleREST.class.getName(), deploymentOptions);
                } else {
                    System.err.println("Oh oh ..." + result.cause());
                }
            });

        }
    });
}

From source file:com.ddp.SimpleREST.java

License:Open Source License

private void setUpInitialData() {

    final JDBCClient client = JDBCClient.createShared(vertx,
            new JsonObject().put("url", sqlUrl).put("driver_class", sqlDriverClass).put("max_pool_size", 30));

    dataBrowse = new DataBrowse(client);
    scriptDataBroswe = new ScriptDataBrowse(client);
    userScriptManager = new UserScriptManager(client);

    //eventBus = getVertx().eventBus();
    //eventBus.registerDefaultCodec(CustomMessage.class, new CustomMessageCodec());

}

From source file:com.deblox.Boot.java

License:Apache License

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

    logger.info("\n"
            + "                       ?                       \n"
            + "                                                            \n"
            + "                                     ?                              \n"
            + "                                                           \n"
            + "                                                          \n"
            + "                                  ?                                     \n"
            + "                                                                   \n"
            + "                                      1.0\n"
            + "                                                         https://github.com/unixunion/deblox-vertx-template                  \n");

    config = config();/*w w w .  ja va 2 s . c om*/

    eb = vertx.eventBus();

    // warn a brother!
    if (config.equals(new JsonObject())) {
        logger.warn("you have no config here!");
    } else {
        logger.info("config: " + config);
    }

    // Start each class mentioned in services
    for (final Object serviceClassName : config.getJsonArray("services", new JsonArray())) {

        logger.info("deploying service: " + serviceClassName);

        // get the config for the named service
        JsonObject serviceConfigJson = config.getJsonObject(serviceClassName.toString(), new JsonObject());
        logger.info("serviceConfigJson: " + serviceConfigJson);

        // See DeploymentOptions.fromJson for all the possible configurables
        DeploymentOptions serviceConfig = new DeploymentOptions(serviceConfigJson);

        vertx.deployVerticle(serviceClassName.toString(), serviceConfig, res -> {

            if (res.succeeded()) {
                logger.info("successfully deployed service: " + serviceClassName);

            } else {
                logger.error("failure while deploying service: " + serviceClassName);
                res.cause().printStackTrace();
            }

        });

    }

    // for testing purposes, we need a litte delay since its less code than wait implement all verticles to boot.
    vertx.setTimer(1000, event -> {
        startedResult.complete();
        logger.info("startup complete");
    });

}

From source file:com.deblox.DebloxRunner.java

License:Apache License

public static void run(String runDir, String verticleID, VertxOptions options, String confFile) {
    logger.info("Booting");
    //    System.setProperty("vertx.cwd", runDir + "/");
    Consumer<Vertx> runner = vertx -> {
        try {/*  w  w w  . j  a va2  s. c  om*/
            JsonObject config = Util.loadConfig(confFile);
            // put config inside a config tag to solve issue between running as fatJar and running main[]
            DeploymentOptions deploymentOptions = new DeploymentOptions(new JsonObject().put("config", config));
            vertx.deployVerticle(verticleID, deploymentOptions);
        } catch (Throwable t) {
            t.printStackTrace();
        }
    };
    if (options.isClustered()) {
        Vertx.clusteredVertx(options, res -> {
            if (res.succeeded()) {
                Vertx vertx = res.result();
                runner.accept(vertx);
            } else {
                res.cause().printStackTrace();
            }
        });
    } else {
        Vertx vertx = Vertx.vertx(options);
        runner.accept(vertx);
    }
}

From source file:com.deblox.releaseboard.ReleaseBoardVerticle.java

License:Apache License

public void saveState() {
    logger.info("saving state");
    JsonObject db = new JsonObject();
    JsonArray releases = new JsonArray();

    Iterator<Map.Entry<String, JsonObject>> iter = releasesData.entrySet().iterator();
    while (iter.hasNext()) {
        Map.Entry<String, JsonObject> entry = iter.next();
        JsonObject rel = new JsonObject();
        rel.put("id", entry.getKey());
        rel.put("data", entry.getValue());
        releases.add(rel);//  w  w w .j av a2s .  c o m
    }

    db.put("releases", releases);

    vertx.fileSystem().exists(stateFile, te -> {
        if (te.succeeded()) {
            if (te.result().booleanValue()) {
                vertx.fileSystem().deleteBlocking(stateFile);
                vertx.fileSystem().createFileBlocking(stateFile);
            } else {
                vertx.fileSystem().createFileBlocking(stateFile);
            }

        } else {
            logger.warn("unable to check if file exists: " + stateFile);
        }

        vertx.fileSystem().open(stateFile, new OpenOptions().setCreate(true).setWrite(true), r -> {
            if (r.succeeded()) {
                AsyncFile file = r.result();
                file.write(Buffer.buffer(db.toString()));
                file.close();
            } else {
                logger.warn(r.cause());
            }
        });

    });

}

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

License:Apache License

/**
 * Start the verticle//w w w.j av  a  2  s . c o 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.deblox.solacemonitor.MonitorVerticle.java

License:Apache License

/**
 * Broadcasts a message to all clients/*from   w  w w  .  j  a v  a 2 s .  c  o m*/
 *
 * @param action the action name
 * @param msg the body / message
 */
public void broadcast(String action, String msg) {

    JsonObject message = new JsonObject();
    message.put("action", action);
    message.put("data", msg);

    clients.forEach((k, v) -> {
        logger.info("sending broadcast to client: " + k + ": " + v);
        eb.send(k.toString(), message);

    });

}

From source file:com.diabolicallabs.process.manager.service.KnowledgeServiceFactoryVertxEBProxy.java

License:Apache License

public KnowledgeServiceFactory getKnowledgeService(Handler<AsyncResult<KnowledgeService>> handler) {
    if (closed) {
        handler.handle(Future.failedFuture(new IllegalStateException("Proxy is closed")));
        return this;
    }//w  w w.  j  a  v a  2  s  .  co  m
    JsonObject _json = new JsonObject();
    DeliveryOptions _deliveryOptions = (_options != null) ? new DeliveryOptions(_options)
            : new DeliveryOptions();
    _deliveryOptions.addHeader("action", "getKnowledgeService");
    _vertx.eventBus().<KnowledgeService>send(_address, _json, _deliveryOptions, res -> {
        if (res.failed()) {
            handler.handle(Future.failedFuture(res.cause()));
        } else {
            String addr = res.result().headers().get("proxyaddr");
            handler.handle(
                    Future.succeededFuture(ProxyHelper.createProxy(KnowledgeService.class, _vertx, addr)));
        }
    });
    return this;
}