List of usage examples for io.vertx.core.json JsonObject put
public JsonObject put(String key, Object value)
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);//from w w w . j a v a 2 s. 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 2s . com*/ * * @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//ww w . j av 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.KnowledgeServiceVertxEBProxy.java
License:Apache License
public KnowledgeService addClassPathResource(String resourceName, Handler<AsyncResult<Void>> handler) { if (closed) { handler.handle(Future.failedFuture(new IllegalStateException("Proxy is closed"))); return this; }/*from w ww . j a va 2 s. c o m*/ JsonObject _json = new JsonObject(); _json.put("resourceName", resourceName); DeliveryOptions _deliveryOptions = (_options != null) ? new DeliveryOptions(_options) : new DeliveryOptions(); _deliveryOptions.addHeader("action", "addClassPathResource"); _vertx.eventBus().<Void>send(_address, _json, _deliveryOptions, res -> { if (res.failed()) { handler.handle(Future.failedFuture(res.cause())); } else { handler.handle(Future.succeededFuture(res.result().body())); } }); return this; }
From source file:com.diabolicallabs.process.manager.service.KnowledgeServiceVertxEBProxy.java
License:Apache License
public KnowledgeService addFileResource(String fileName, Handler<AsyncResult<Void>> handler) { if (closed) { handler.handle(Future.failedFuture(new IllegalStateException("Proxy is closed"))); return this; }//from w w w .java 2 s . co m JsonObject _json = new JsonObject(); _json.put("fileName", fileName); DeliveryOptions _deliveryOptions = (_options != null) ? new DeliveryOptions(_options) : new DeliveryOptions(); _deliveryOptions.addHeader("action", "addFileResource"); _vertx.eventBus().<Void>send(_address, _json, _deliveryOptions, res -> { if (res.failed()) { handler.handle(Future.failedFuture(res.cause())); } else { handler.handle(Future.succeededFuture(res.result().body())); } }); return this; }
From source file:com.diabolicallabs.process.manager.service.ProcessInstanceServiceVertxEBProxy.java
License:Apache License
public ProcessInstanceService signalEvent(String eventName, JsonObject data, Handler<AsyncResult<Void>> handler) { if (closed) { handler.handle(Future.failedFuture(new IllegalStateException("Proxy is closed"))); return this; }//w w w .j av a 2s .c o m JsonObject _json = new JsonObject(); _json.put("eventName", eventName); _json.put("data", data); DeliveryOptions _deliveryOptions = (_options != null) ? new DeliveryOptions(_options) : new DeliveryOptions(); _deliveryOptions.addHeader("action", "signalEvent"); _vertx.eventBus().<Void>send(_address, _json, _deliveryOptions, res -> { if (res.failed()) { handler.handle(Future.failedFuture(res.cause())); } else { handler.handle(Future.succeededFuture(res.result().body())); } }); return this; }
From source file:com.diabolicallabs.process.manager.service.ProcessServiceVertxEBProxy.java
License:Apache License
public ProcessService abort(Long processInstanceId, Handler<AsyncResult<Void>> handler) { if (closed) { handler.handle(Future.failedFuture(new IllegalStateException("Proxy is closed"))); return this; }//from w ww . ja v a 2 s .com JsonObject _json = new JsonObject(); _json.put("processInstanceId", processInstanceId); DeliveryOptions _deliveryOptions = (_options != null) ? new DeliveryOptions(_options) : new DeliveryOptions(); _deliveryOptions.addHeader("action", "abort"); _vertx.eventBus().<Void>send(_address, _json, _deliveryOptions, res -> { if (res.failed()) { handler.handle(Future.failedFuture(res.cause())); } else { handler.handle(Future.succeededFuture(res.result().body())); } }); return this; }
From source file:com.diabolicallabs.process.manager.service.ProcessServiceVertxEBProxy.java
License:Apache License
public ProcessService create(String processId, Handler<AsyncResult<ProcessInstanceService>> handler) { if (closed) { handler.handle(Future.failedFuture(new IllegalStateException("Proxy is closed"))); return this; }/*w w w. j a v a 2s . co m*/ JsonObject _json = new JsonObject(); _json.put("processId", processId); DeliveryOptions _deliveryOptions = (_options != null) ? new DeliveryOptions(_options) : new DeliveryOptions(); _deliveryOptions.addHeader("action", "create"); _vertx.eventBus().<ProcessInstanceService>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(ProcessInstanceService.class, _vertx, addr))); } }); return this; }
From source file:com.diabolicallabs.process.manager.service.ProcessServiceVertxEBProxy.java
License:Apache License
public ProcessService createWithVariables(String processId, JsonObject variables, Handler<AsyncResult<ProcessInstanceService>> handler) { if (closed) { handler.handle(Future.failedFuture(new IllegalStateException("Proxy is closed"))); return this; }//w w w. j a va 2 s .c o m JsonObject _json = new JsonObject(); _json.put("processId", processId); _json.put("variables", variables); DeliveryOptions _deliveryOptions = (_options != null) ? new DeliveryOptions(_options) : new DeliveryOptions(); _deliveryOptions.addHeader("action", "createWithVariables"); _vertx.eventBus().<ProcessInstanceService>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(ProcessInstanceService.class, _vertx, addr))); } }); return this; }
From source file:com.diabolicallabs.process.manager.service.ProcessServiceVertxEBProxy.java
License:Apache License
public ProcessService signalEvent(String eventName, JsonObject data, Handler<AsyncResult<Void>> handler) { if (closed) { handler.handle(Future.failedFuture(new IllegalStateException("Proxy is closed"))); return this; }// w w w . jav a2 s .c o m JsonObject _json = new JsonObject(); _json.put("eventName", eventName); _json.put("data", data); DeliveryOptions _deliveryOptions = (_options != null) ? new DeliveryOptions(_options) : new DeliveryOptions(); _deliveryOptions.addHeader("action", "signalEvent"); _vertx.eventBus().<Void>send(_address, _json, _deliveryOptions, res -> { if (res.failed()) { handler.handle(Future.failedFuture(res.cause())); } else { handler.handle(Future.succeededFuture(res.result().body())); } }); return this; }