Example usage for io.vertx.core.eventbus Message body

List of usage examples for io.vertx.core.eventbus Message body

Introduction

In this page you can find the example usage for io.vertx.core.eventbus Message body.

Prototype

@CacheReturn
T body();

Source Link

Document

The body of the message.

Usage

From source file:org.entcore.infra.controllers.EventStoreController.java

License:Open Source License

@BusAddress("event.store")
public void eventStore(final Message<JsonObject> message) {
    if (!authorizedUser(message.body())) {
        message.reply(new JsonObject().put("status", "ok"));
    } else {//  www .j  a  va2s .co  m
        eventStoreService.store(message.body(), new Handler<Either<String, Void>>() {
            @Override
            public void handle(Either<String, Void> event) {
                if (event.isRight()) {
                    message.reply(new JsonObject().put("status", "ok"));
                } else {
                    message.reply(
                            new JsonObject().put("status", "error").put("message", event.left().getValue()));
                }
            }
        });
    }
}

From source file:org.entcore.infra.controllers.MonitoringController.java

License:Open Source License

private Handler<Message<JsonObject>> getResponseHandler(final String module, final long timerId,
        final JsonObject result, final AtomicInteger count, final HttpServerRequest request,
        final AtomicBoolean closed) {
    return new Handler<Message<JsonObject>>() {
        @Override/*from  w  w  w .  j av  a  2s .  c  om*/
        public void handle(Message<JsonObject> event) {
            result.put(module, event.body().getString("status"));
            if (count.decrementAndGet() <= 0 && !closed.get()) {
                vertx.cancelTimer(timerId);
                boolean error = false;
                for (String element : result.fieldNames()) {
                    if (!"ok".equals(result.getString(element))) {
                        error = true;
                        break;
                    }
                }
                if (error) {
                    renderError(request, result);
                } else {
                    renderJson(request, result);
                }
            }
        }
    };
}

From source file:org.entcore.infra.services.impl.AbstractAntivirusService.java

License:Open Source License

@Override
public void handle(Message<JsonObject> event) {
    switch (event.body().getString("action", "")) {
    case "rmInfected":
        InfectedFile i = queue.remove(event.body().getString("id", ""));
        if (i != null) {
            vertx.cancelTimer(i.getTimerId());
            i.setApplication(event.body().getString("application"));
            i.setName(event.body().getString("name"));
            i.setOwner(event.body().getString("owner"));
            removeInfectedFile(i, event);
        }/* w  w w  . j  a  va  2 s  . com*/
        break;
    }
}

From source file:org.entcore.infra.services.impl.AbstractAntivirusService.java

License:Open Source License

private void removeInfectedFile(final InfectedFile i, final Message<JsonObject> message) {
    ObjectMapper mapper = new ObjectMapper();
    try {// ww  w.  j  a va  2 s.  c  o m
        final JsonObject params = new JsonObject(mapper.writeValueAsString(i));
        log.info("Remove infected file : " + params.encode());
        final HttpServerRequest request = new JsonHttpServerRequest(new JsonObject());
        render.processTemplate(request, "text/infectedFile.txt", params, new Handler<String>() {
            @Override
            public void handle(String content) {
                storage.writeBuffer(i.getPath(), i.getId(), Buffer.buffer(content), "text/plain",
                        i.getName() + ".txt", new Handler<JsonObject>() {
                            @Override
                            public void handle(JsonObject event) {
                                if (timeline != null && i.getOwner() != null) {
                                    final List<String> recipients = new ArrayList<>();
                                    recipients.add(i.getOwner());
                                    timeline.notifyTimeline(request, "workspace.delete-virus", null, recipients,
                                            null, params);
                                }
                                if (message != null) {
                                    JsonObject m = new JsonObject().put("id", i.getId())
                                            .put("name", i.getName() + ".txt").put("contentType", "text/plain")
                                            .put("action", "updateInfos");
                                    message.reply(m, handlerToAsyncHandler(new Handler<Message<JsonObject>>() {
                                        @Override
                                        public void handle(Message<JsonObject> r) {
                                            if ("ok".equals(r.body().getString("status"))
                                                    && r.body().getInteger("count", -1) > 0) {
                                                log.info("File info " + i.getId() + " updated.");
                                            } else {
                                                log.error("Error updating file info " + i.getId());
                                            }
                                        }
                                    }));
                                }
                            }
                        });
            }
        });
    } catch (IOException | DecodeException e) {
        log.error("Error serializing infected file : " + i.getId(), e);
    }
}

From source file:org.entcore.infra.services.impl.ClamAvService.java

License:Open Source License

@Override
public void scan(String file) {
    String command = "clamdscan -m --fdpass " + file;
    JsonObject m = new JsonObject().put("command", command);
    vertx.eventBus().send("exec.command", m, handlerToAsyncHandler(new Handler<Message<JsonObject>>() {
        @Override//w w w.j  a v a2  s . co m
        public void handle(Message<JsonObject> event) {
            if ("ok".equals(event.body().getString("status"))) {
                List<InfectedFile> infectedFiles = parse(event.body().getString("result"));
                if (infectedFiles.size() > 0) {
                    launchReplace(infectedFiles);
                }
            }
        }
    }));
}

From source file:org.entcore.infra.services.impl.ExecCommandWorker.java

License:Open Source License

@Override
public void handle(Message<JsonObject> event) {
    String command = event.body().getString("command");
    if (isEmpty(command)) {
        sendError(event, "Invalid command");
        return;/*from www. j a  v  a 2s  .  co  m*/
    }
    try {
        Process p = Runtime.getRuntime().exec(command);
        p.waitFor();

        BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
        StringBuilder sb = new StringBuilder();
        String line = "";
        while ((line = reader.readLine()) != null) {
            sb.append(line).append("\n");
        }
        sendOK(event, new JsonObject().put("result", sb.toString()));
    } catch (Exception e) {
        sendError(event, "Error executing command : " + command, e);
    }
}

From source file:org.entcore.infra.Starter.java

License:Open Source License

private void registerWidget(final String widgetPath) {
    final String widgetName = new File(widgetPath).getName();
    JsonObject widget = new JsonObject().put("name", widgetName)
            .put("js", "/assets/widgets/" + widgetName + "/" + widgetName + ".js")
            .put("path", "/assets/widgets/" + widgetName + "/" + widgetName + ".html");

    if (vertx.fileSystem().existsBlocking(widgetPath + "/i18n")) {
        widget.put("i18n", "/assets/widgets/" + widgetName + "/i18n");
    }/* w  w  w  .ja va  2s. c  o  m*/

    JsonObject message = new JsonObject().put("widget", widget);
    vertx.eventBus().send("wse.app.registry.widgets", message,
            handlerToAsyncHandler(new Handler<Message<JsonObject>>() {
                public void handle(Message<JsonObject> event) {
                    if ("error".equals(event.body().getString("status"))) {
                        log.error("Error while registering widget " + widgetName + ". "
                                + event.body().getJsonArray("errors"));
                        return;
                    }
                    log.info("Successfully registered widget " + widgetName);
                }
            }));
}

From source file:org.entcore.portal.controllers.PortalController.java

License:Open Source License

@Get("/theme")
@SecuredAction(value = "portal", type = ActionType.AUTHENTICATED)
public void getTheme(final HttpServerRequest request) {
    final String theme_attr = THEME_ATTRIBUTE + getHost(request);
    UserUtils.getUserInfos(eb, request, new Handler<UserInfos>() {
        @Override//from  w  w w  .  j a  v  a 2 s .  co  m
        public void handle(final UserInfos user) {
            if (user != null) {
                Object t = user.getAttribute(theme_attr);
                if (t != null) {
                    renderJson(request, new JsonObject(t.toString()));
                    return;
                }
                JsonObject urls = config.getJsonObject("urls", new JsonObject());
                final JsonObject theme = new JsonObject().put("template", "/public/template/portal.html")
                        .put("logoutCallback", getLogoutCallback(request, urls));
                String query = "MATCH (n:User)-[:USERBOOK]->u " + "WHERE n.id = {id} " + "RETURN u.theme"
                        + getSkinFromConditions(request).replaceAll("\\W+", "") + " as theme";
                Map<String, Object> params = new HashMap<>();
                params.put("id", user.getUserId());
                Neo4j.getInstance().execute(query, params, new Handler<Message<JsonObject>>() {
                    @Override
                    public void handle(Message<JsonObject> event) {
                        if ("ok".equals(event.body().getString("status"))) {
                            JsonArray result = event.body().getJsonArray("result");
                            String userTheme = (result != null && result.size() == 1)
                                    ? result.getJsonObject(0).getString("theme")
                                    : null;
                            List<String> t = themes.get(getSkinFromConditions(request));
                            if (userTheme != null && t != null && t.contains(userTheme)) {
                                theme.put("skin", getThemePrefix(request) + "/skins/" + userTheme + "/");
                            } else {
                                theme.put("skin", getThemePrefix(request) + "/skins/default/");
                            }
                        } else {
                            theme.put("skin", getThemePrefix(request) + "/skins/default/");
                        }
                        renderJson(request, theme);
                        UserUtils.addSessionAttribute(eb, user.getUserId(), theme_attr, theme.encode(), null);
                    }
                });
            } else {
                unauthorized(request);
            }
        }
    });
}

From source file:org.entcore.registry.controllers.AppRegistryController.java

License:Open Source License

@Get("/cas-types")
@SecuredAction(value = "", type = ActionType.RESOURCE)
@ResourceFilter(AdminFilter.class)
public void listCasTypes(final HttpServerRequest request) {
    Server.getEventBus(vertx).send("cas.configuration", new JsonObject().put("action", "list-services"),
            handlerToAsyncHandler(new Handler<Message<JsonObject>>() {
                public void handle(Message<JsonObject> event) {
                    if ("ok".equals(event.body().getString("status"))) {
                        renderJson(request, event.body().getJsonArray("result"));
                    } else {
                        log.error(event.body().getString("message"));
                    }/* w  w w  . ja  v a 2 s  .  co  m*/
                }
            }));
}

From source file:org.entcore.registry.controllers.AppRegistryController.java

License:Open Source License

@BusAddress("wse.app.registry")
public void collectApps(final Message<JsonObject> message) {
    final JsonObject app = message.body().getJsonObject("application");
    final String application = app.getString("name");
    final JsonArray securedActions = message.body().getJsonArray("actions");
    if (application != null && securedActions != null && !application.trim().isEmpty()) {
        appRegistryService.createApplication(null, app, securedActions,
                new Handler<Either<String, JsonObject>>() {
                    @Override//www  .  j  a  v a  2s  .co  m
                    public void handle(Either<String, JsonObject> event) {
                        JsonObject j = new JsonObject();
                        if (event.isRight()) {
                            j.put("status", "ok");
                        } else {
                            j.put("status", "error").put("message", event.left().getValue());
                        }
                        message.reply(j);
                    }
                });
    } else {
        message.reply(new JsonObject().put("status", "error").put("message", "invalid.parameters"));
    }
}