List of usage examples for io.vertx.core.eventbus Message body
@CacheReturn T body();
From source file:de.openflorian.alarm.transform.BinaryAlarmFaxTransformator.java
License:Open Source License
@Override public void transform(Message<Object> msg) { log.debug("Start transforming an alarm fax TIF file..."); Process ps = null;//from w w w . j ava 2s . co m try { AlarmFaxEvent event = (AlarmFaxEvent) msg.body(); Runtime rt = Runtime.getRuntime(); String resultTextFile = String.format("%s/%s", faxObervationDirectory, event.getResultFile().getName()); String cmd = ""; cmd = transformationCmd.replaceAll(transformationCmdVarInput, event.getResultFile().getAbsolutePath().replace("\\", "/")); cmd = cmd.replaceAll(transformationCmdVarOutput, resultTextFile); log.debug("Running cmd: " + cmd); ps = rt.exec(cmd); int exitCode = ps.waitFor(); if (exitCode == 0) { log.debug(String.format("Successful transformed '%s' to '%s'. Exit code: %d", event.getResultFile().getAbsolutePath(), resultTextFile, exitCode)); vertx.eventBus().send(EventBusAddresses.ARCHIVE_FILE, event.getResultFile().getAbsolutePath()); vertx.eventBus().send(EventBusAddresses.ALARMFAX_TRANSFORMED, new AlarmFaxEvent(new File(resultTextFile + ".txt"))); } else { log.error(String.format("An error occured transforming '%s'. Exit code: %d", event.getResultFile().getAbsolutePath(), exitCode)); String errorMsg = new BufferedReader(new InputStreamReader(ps.getErrorStream())).lines() .collect(Collectors.joining(System.getProperty("line.separator"))); log.error(errorMsg); } ps.destroy(); } catch (IOException e) { log.error(e.getMessage(), e); } catch (InterruptedException e) { log.error(e.getMessage(), e); } finally { if (ps != null) ps.destroy(); } }
From source file:eventbusbridge.Main.java
License:Apache License
static void pingPong(final Message<JsonObject> m) { final int counter = m.body().getInteger("counter"); System.out.println("ping-pong: count is " + counter); final JsonObject reply = new JsonObject(); reply.put("counter", counter + 1); m.reply(reply, pingPongReply);/*www . j ava2 s . co m*/ }
From source file:fr.pjthin.vertx.client.UserDaoVertxProxyHandler.java
License:Apache License
public void handle(Message<JsonObject> msg) { try {// w w w . j ava 2 s.c om JsonObject json = msg.body(); String action = msg.headers().get("action"); if (action == null) { throw new IllegalStateException("action not specified"); } accessed(); switch (action) { case "save": { service.save( json.getJsonObject("newUser") == null ? null : new fr.pjthin.vertx.client.data.User(json.getJsonObject("newUser")), createHandler(msg)); break; } case "findAll": { service.findAll(res -> { if (res.failed()) { msg.fail(-1, res.cause().getMessage()); } else { msg.reply(new JsonArray( res.result().stream().map(User::toJson).collect(Collectors.toList()))); } }); break; } case "findUserByLogin": { service.findUserByLogin((java.lang.String) json.getValue("login"), res -> { if (res.failed()) { msg.fail(-1, res.cause().getMessage()); } else { msg.reply(res.result() == null ? null : res.result().toJson()); } }); break; } case "deleteByLogin": { service.deleteByLogin((java.lang.String) json.getValue("login"), createHandler(msg)); break; } case "close": { service.close(); close(); break; } default: { throw new IllegalStateException("Invalid action: " + action); } } } catch (Throwable t) { msg.fail(-1, t.getMessage()); throw t; } }
From source file:fr.wseduc.pages.controllers.PagesController.java
License:Open Source License
@BusAddress("pages") public void busApi(Message<JsonObject> message) { String action = message.body().getString("action", ""); final String pageId = message.body().getString("pageId"); switch (action) { case "create": UserInfos user = UserUtils.sessionToUserInfos(message.body().getJsonObject("user")); JsonObject page = message.body().getJsonObject("page"); crudService.create(page, user, busResponseHandler(message)); break;/*from w ww. jav a2s. c o m*/ case "share": String userId = message.body().getString("userId"); String groupId = message.body().getString("groupId"); List<String> actions = message.body().getJsonArray("actions").getList(); shareService.groupShare(userId, groupId, pageId, actions, busResponseHandler(message)); break; case "delete": crudService.delete(pageId, busResponseHandler(message)); break; case "get": crudService.retrieve(pageId, busResponseHandler(message)); break; case "update": crudService.update(pageId, message.body().getJsonObject("page"), busResponseHandler(message)); break; default: message.reply(new JsonObject().put("status", "error").put("message", "invalid.action")); } }
From source file:fr.wseduc.rack.controllers.RackController.java
License:Open Source License
/** * Post a new document to other people's rack folder. * @param request Client request containing a list of user ids belonging to the receivers and the file. *///from w ww. java2 s . co m @Post("") @SecuredAction(send) public void postRack(final HttpServerRequest request) { UserUtils.getUserInfos(eb, request, new Handler<UserInfos>() { @Override public void handle(final UserInfos userInfos) { if (userInfos == null) { badRequest(request); return; } request.setExpectMultipart(true); final Buffer fileBuffer = Buffer.buffer(); final JsonObject metadata = new JsonObject(); /* Upload file */ request.uploadHandler(getUploadHandler(fileBuffer, metadata, request)); /* After upload */ request.endHandler(new Handler<Void>() { @Override public void handle(Void v) { String users = request.formAttributes().get("users"); if (users == null) { badRequest(request); return; } String[] userIds = users.split(","); final AtomicInteger countdown = new AtomicInteger(userIds.length); final AtomicInteger success = new AtomicInteger(0); final AtomicInteger failure = new AtomicInteger(0); /* Final handler - called after each attempt */ final Handler<Boolean> finalHandler = new Handler<Boolean>() { @Override public void handle(Boolean event) { if (event == null || !event) failure.addAndGet(1); else success.addAndGet(1); if (countdown.decrementAndGet() == 0) { JsonObject result = new JsonObject(); result.put("success", success.get()); result.put("failure", failure.get()); renderJson(request, result); } } }; for (final String to : userIds) { /* Query user and check existence */ String query = "MATCH (n:User) " + "WHERE n.id = {id} " + "RETURN count(n) as nb, n.displayName as username"; Map<String, Object> params = new HashMap<>(); params.put("id", to); Handler<Message<JsonObject>> existenceHandler = new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> res) { JsonArray result = res.body().getJsonArray("result"); if (!"ok".equals(res.body().getString("status")) || 1 != result.size() || 1 != result.getJsonObject(0).getInteger("nb")) { finalHandler.handle(false); return; } /* Pre write rack document fields */ final JsonObject doc = new JsonObject(); doc.put("to", to); doc.put("toName", result.getJsonObject(0).getString("username")); doc.put("from", userInfos.getUserId()); doc.put("fromName", userInfos.getUsername()); String now = dateFormat.format(new Date()); doc.put("sent", now); /* Rack collection saving */ final Handler<JsonObject> rackSaveHandler = new Handler<JsonObject>() { @Override public void handle(JsonObject uploaded) { if (uploaded == null || !"ok".equals(uploaded.getString("status"))) { finalHandler.handle(false); } else { addAfterUpload(uploaded.put("metadata", metadata), doc, request.params().get("name"), request.params().get("application"), request.params().getAll("thumbnail"), new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> res) { if ("ok".equals(res.body().getString("status"))) { JsonObject params = new JsonObject() .put("uri", "/userbook/annuaire#" + doc.getString("from")) .put("resourceUri", pathPrefix) .put("username", doc.getString("fromName")) .put("documentName", doc.getString("name")); List<String> receivers = new ArrayList<>(); receivers.add(doc.getString("to")); JsonObject pushNotif = new JsonObject() .put("title", "rack.push.notif.rack-post") .put("body", I18n.getInstance().translate( "rack.push.notif.rack-post.body", getHost(request), I18n.acceptLanguage( request), doc.getString( "fromName"), doc.getString("name"))); params.put("pushNotif", pushNotif); timelineHelper.notifyTimeline(request, "rack.rack-post", userInfos, receivers, userInfos.getUserId() + System.currentTimeMillis() + "postrack", null, params, true); finalHandler.handle(true); } else { finalHandler.handle(false); } } }); } } }; /* Get user quota & check */ getUserQuota(to, new Handler<JsonObject>() { @Override public void handle(JsonObject j) { if (j == null || "error".equals(j.getString("status"))) { finalHandler.handle(false); return; } long emptySize = 0l; long quota = j.getLong("quota", 0l); long storage = j.getLong("storage", 0l); emptySize = quota - storage; if (emptySize < metadata.getLong("size", 0l)) { finalHandler.handle(false); return; } //Save file RackController.this.storage.writeBuffer(fileBuffer, metadata.getString("content-type"), metadata.getString("name"), rackSaveHandler); } }); } }; Neo4j.getInstance().execute(query, params, existenceHandler); } } }); } }); }
From source file:fr.wseduc.rack.controllers.RackController.java
License:Open Source License
private void copyFiles(final HttpServerRequest request, final JsonArray idsArray, final String folder, final UserInfos user, final String destinationCollection) { String criteria = "{ \"_id\" : { \"$in\" : " + idsArray.encode() + "}"; criteria += ", \"to\" : \"" + user.getUserId() + "\" }"; mongo.find(collection, new JsonObject(criteria), new Handler<Message<JsonObject>>() { private void persist(final JsonArray insert, int remains) { if (remains == 0) { mongo.insert(destinationCollection, insert, new Handler<Message<JsonObject>>() { @Override// ww w .ja v a 2 s.c o m public void handle(Message<JsonObject> inserted) { if ("ok".equals(inserted.body().getString("status"))) { /* Increment quota */ long totalSize = 0l; for (Object insertion : insert) { JsonObject added = (JsonObject) insertion; totalSize += added.getJsonObject("metadata", new JsonObject()).getLong("size", 0l); } updateUserQuota(user.getUserId(), totalSize); renderJson(request, inserted.body()); } else { renderError(request, inserted.body()); } } }); } } @Override public void handle(Message<JsonObject> r) { JsonObject src = r.body(); if ("ok".equals(src.getString("status")) && src.getJsonArray("results") != null) { final JsonArray origs = src.getJsonArray("results"); final JsonArray insert = new JsonArray(); final AtomicInteger number = new AtomicInteger(origs.size()); emptySize(user, new Handler<Long>() { @Override public void handle(Long emptySize) { long size = 0; /* Get total file size */ for (Object o : origs) { if (!(o instanceof JsonObject)) continue; JsonObject metadata = ((JsonObject) o).getJsonObject("metadata"); if (metadata != null) { size += metadata.getLong("size", 0l); } } /* If total file size is too big (> quota left) */ if (size > emptySize) { badRequest(request, "files.too.large"); return; } /* Process */ for (Object o : origs) { JsonObject orig = (JsonObject) o; final JsonObject dest = orig.copy(); String now = MongoDb.formatDate(new Date()); dest.remove("_id"); dest.remove("protected"); dest.remove("comments"); dest.put("application", WORKSPACE_NAME); dest.put("owner", user.getUserId()); dest.put("ownerName", dest.getString("toName")); dest.remove("to"); dest.remove("from"); dest.remove("toName"); dest.remove("fromName"); dest.put("created", now); dest.put("modified", now); if (folder != null && !folder.trim().isEmpty()) { dest.put("folder", folder); } else { dest.remove("folder"); } insert.add(dest); final String filePath = orig.getString("file"); if (folder != null && !folder.trim().isEmpty()) { //If the document has a new parent folder, replicate sharing rights String parentName, parentFolder; if (folder.lastIndexOf('_') < 0) { parentName = folder; parentFolder = folder; } else if (filePath != null) { String[] splittedPath = folder.split("_"); parentName = splittedPath[splittedPath.length - 1]; parentFolder = folder; } else { String[] splittedPath = folder.split("_"); parentName = splittedPath[splittedPath.length - 2]; parentFolder = folder.substring(0, folder.lastIndexOf("_")); } QueryBuilder parentFolderQuery = QueryBuilder.start("owner") .is(user.getUserId()).and("folder").is(parentFolder).and("name") .is(parentName); mongo.findOne(collection, MongoQueryBuilder.build(parentFolderQuery), new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> event) { if ("ok".equals(event.body().getString("status"))) { JsonObject parent = event.body().getJsonObject("result"); if (parent != null && parent.getJsonArray("shared") != null && parent.getJsonArray("shared").size() > 0) dest.put("shared", parent.getJsonArray("shared")); if (filePath != null) { storage.copyFile(filePath, new Handler<JsonObject>() { @Override public void handle(JsonObject event) { if (event != null && "ok" .equals(event.getString("status"))) { dest.put("file", event.getString("_id")); persist(insert, number.decrementAndGet()); } } }); } else { persist(insert, number.decrementAndGet()); } } else { renderJson(request, event.body(), 404); } } }); } else if (filePath != null) { storage.copyFile(filePath, new Handler<JsonObject>() { @Override public void handle(JsonObject event) { if (event != null && "ok".equals(event.getString("status"))) { dest.put("file", event.getString("_id")); persist(insert, number.decrementAndGet()); } } }); } else { persist(insert, number.decrementAndGet()); } } } }); } else { notFound(request, src.toString()); } } }); }
From source file:fr.wseduc.rack.controllers.RackController.java
License:Open Source License
private void addAfterUpload(final JsonObject uploaded, final JsonObject doc, String name, String application, final List<String> thumbs, final Handler<Message<JsonObject>> handler) { //Write additional fields in the document doc.put("name", getOrElse(name, uploaded.getJsonObject("metadata").getString("filename"), false)); doc.put("metadata", uploaded.getJsonObject("metadata")); doc.put("file", uploaded.getString("_id")); doc.put("application", getOrElse(application, WORKSPACE_NAME)); //Save document to mongo mongo.save(collection, doc, new Handler<Message<JsonObject>>() { @Override/*from ww w . jav a 2 s .c o m*/ public void handle(Message<JsonObject> res) { if ("ok".equals(res.body().getString("status"))) { Long size = doc.getJsonObject("metadata", new JsonObject()).getLong("size", 0l); updateUserQuota(doc.getString("to"), size); createThumbnailIfNeeded(collection, uploaded, res.body().getString("_id"), null, thumbs); } if (handler != null) { handler.handle(res); } } }); }
From source file:fr.wseduc.rack.security.RackResourcesProvider.java
License:Open Source License
private void authorizeOwner(HttpServerRequest request, UserInfos user, final Handler<Boolean> handler) { String id = request.params().get("id"); String matcher = "{ \"_id\": \"" + id + "\", \"to\": \"" + user.getUserId() + "\" }"; mongo.count(Rack.RACK_COLLECTION, new JsonObject(matcher), new Handler<Message<JsonObject>>() { public void handle(Message<JsonObject> result) { JsonObject res = result.body(); handler.handle(res != null && "ok".equals(res.getString("status")) && res.getLong("count") == 1); }//ww w . j a v a 2 s . co m }); }
From source file:fr.wseduc.smsproxy.providers.ovh.OVHSmsProvider.java
License:Apache License
@Override public void sendSms(final Message<JsonObject> message) { final JsonObject parameters = message.body().getJsonObject("parameters"); logger.debug("[OVH][sendSms] Called with parameters : " + parameters); final Handler<HttpClientResponse> resultHandler = new Handler<HttpClientResponse>() { public void handle(HttpClientResponse response) { if (response == null) { sendError(message, "ovh.apicall.error", null); } else { response.bodyHandler(new Handler<Buffer>() { public void handle(Buffer body) { final JsonObject response = new JsonObject(body.toString()); final JsonArray invalidReceivers = response.getJsonArray("invalidReceivers", new JsonArray()); final JsonArray validReceivers = response.getJsonArray("validReceivers", new JsonArray()); if (validReceivers.size() == 0) { sendError(message, "invalid.receivers.all", null, new JsonObject(body.toString())); } else if (invalidReceivers.size() > 0) { sendError(message, "invalid.receivers.partial", null, new JsonObject(body.toString())); } else { message.reply(response); }// w w w.j a v a 2 s . c om } }); } } }; Handler<String> serviceCallback = new Handler<String>() { public void handle(String service) { if (service == null) { sendError(message, "ovh.apicall.error", null); } else { ovhRestClient.post("/sms/" + service + "/jobs/", parameters, resultHandler); } } }; retrieveSmsService(message, serviceCallback); }
From source file:fr.wseduc.smsproxy.providers.ovh.OVHSmsProvider.java
License:Apache License
@Override public void getInfo(final Message<JsonObject> message) { final JsonObject parameters = message.body().getJsonObject("parameters"); logger.debug("[OVH][getInfo] Called with parameters : " + parameters); retrieveSmsService(message, new Handler<String>() { public void handle(String service) { if (service == null) { sendError(message, "ovh.apicall.error", null); } else { ovhRestClient.get("/sms/" + service, parameters, new Handler<HttpClientResponse>() { public void handle(HttpClientResponse response) { if (response == null) { sendError(message, "ovh.apicall.error", null); return; }/* w w w. ja v a2 s. c o m*/ response.bodyHandler(new Handler<Buffer>() { public void handle(Buffer body) { final JsonObject response = new JsonObject(body.toString()); message.reply(response); } }); } }); } } }); }