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.common.neo4j.Neo4jUtils.java

License:Open Source License

public static void loadScripts(final String appName, final Vertx vertx, final String path) {
    String query = "MATCH (n:System) WHERE n.name = {appName} RETURN n.scripts as scripts";
    Neo4j.getInstance().execute(query, new JsonObject().put("appName", appName),
            new Handler<Message<JsonObject>>() {
                @Override//from w  w w.  jav a 2s . co  m
                public void handle(Message<JsonObject> event) {
                    JsonArray res = event.body().getJsonArray("result");
                    JsonArray scripts;
                    if ("ok".equals(event.body().getString("status")) && res != null && res.size() > 0) {
                        scripts = res.getJsonObject(0).getJsonArray("scripts",
                                new fr.wseduc.webutils.collections.JsonArray());
                    } else {
                        scripts = new fr.wseduc.webutils.collections.JsonArray();
                    }
                    loadAndExecute(appName, vertx, path, true, scripts);
                    loadAndExecute(appName, vertx, path, false, scripts);
                }
            });
}

From source file:org.entcore.common.neo4j.Neo4jUtils.java

License:Open Source License

private static void loadAndExecute(final String schema, final Vertx vertx, final String path,
        final boolean index, final JsonArray excludeFileNames) {
    final String pattern = index ? ".*?-index\\.cypher$" : "^(?!.*-index).*?\\.cypher$";
    vertx.fileSystem().readDir(path, pattern, new Handler<AsyncResult<List<String>>>() {
        @Override// w  w  w  . ja  va2  s . c  o  m
        public void handle(AsyncResult<List<String>> asyncResult) {
            if (asyncResult.succeeded()) {
                final List<String> files = asyncResult.result();
                Collections.sort(files);
                final StatementsBuilder s = new StatementsBuilder();
                final JsonArray newFiles = new fr.wseduc.webutils.collections.JsonArray();
                final AtomicInteger count = new AtomicInteger(files.size());
                for (final String f : files) {
                    final String filename = f.substring(f.lastIndexOf(File.separatorChar) + 1);
                    if (!excludeFileNames.contains(filename)) {
                        vertx.fileSystem().readFile(f, new Handler<AsyncResult<Buffer>>() {
                            @Override
                            public void handle(AsyncResult<Buffer> bufferAsyncResult) {
                                if (bufferAsyncResult.succeeded()) {
                                    String script = bufferAsyncResult.result().toString();
                                    for (String q : script.replaceAll("(\r|\n)", " ").split(";")) {
                                        s.add(q);
                                    }
                                    newFiles.add(filename);
                                } else {
                                    log.error("Error reading file : " + f, bufferAsyncResult.cause());
                                }
                                if (count.decrementAndGet() == 0) {
                                    commit(schema, s, newFiles, index);
                                }
                            }
                        });
                    } else if (count.decrementAndGet() == 0 && newFiles.size() > 0) {
                        commit(schema, s, newFiles, index);
                    }
                }
            } else if (log.isDebugEnabled()) {
                log.debug("Error reading neo4j directory : " + path, asyncResult.cause());
            }
        }

        private void commit(final String schema, StatementsBuilder s, final JsonArray newFiles,
                final boolean index) {
            final JsonObject params = new JsonObject().put("appName", schema).put("newFiles", newFiles);
            if (!index) {
                s.add(UPDATE_SCRIPTS, params);
            }
            Neo4j.getInstance().executeTransaction(s.build(), null, true, new Handler<Message<JsonObject>>() {
                @Override
                public void handle(Message<JsonObject> message) {
                    if ("ok".equals(message.body().getString("status"))) {
                        if (index) {
                            Neo4j.getInstance().execute(UPDATE_SCRIPTS, params,
                                    new Handler<Message<JsonObject>>() {
                                        @Override
                                        public void handle(Message<JsonObject> event) {
                                            if (!"ok".equals(event.body().getString("status"))) {
                                                log.error("Error update scripts : "
                                                        + event.body().getString("message"));
                                            }
                                        }
                                    });
                        }
                        log.info("Scripts added : " + newFiles.encode());
                    } else {
                        log.error("Error when commit transaction : " + message.body().getString("message"));
                    }
                }
            });
        }
    });
}

From source file:org.entcore.common.notification.NotificationUtils.java

License:Open Source License

public static void getUsersPreferences(EventBus eb, JsonArray userIds, String fields,
        final Handler<JsonArray> handler) {
    eb.send(USERBOOK_ADDRESS, new JsonObject().put("action", "get.userlist").put("application", "timeline")
            .put("additionalMatch",
                    ", u-[:IN]->(g:Group)-[:AUTHORIZED]->(r:Role)-[:AUTHORIZE]->(act:WorkflowAction) ")
            .put("additionalWhere",
                    "AND act.name = \"org.entcore.timeline.controllers.TimelineController|mixinConfig\" ")
            .put("additionalCollectFields", ", " + fields).put("userIds", userIds),
            handlerToAsyncHandler(new Handler<Message<JsonObject>>() {
                public void handle(Message<JsonObject> event) {
                    if (!"error".equals(event.body().getString("status"))) {
                        handler.handle(event.body().getJsonArray("results"));
                    } else {
                        handler.handle(null);
                    }/*from ww  w  .  j a v  a2 s . c  om*/
                }
            }));
}

From source file:org.entcore.common.search.SearchingHandler.java

License:Open Source License

@Override
public void handle(final Message<JsonObject> message) {
    final JsonArray searchWords = message.body().getJsonArray("searchWords");
    final String userId = message.body().getString("userId", "");
    final Integer page = message.body().getInteger("page", 0);
    final Integer limit = message.body().getInteger("limit", 0);
    final String searchId = message.body().getString("searchId", "");
    final JsonArray groupIds = message.body().getJsonArray("groupIds",
            new fr.wseduc.webutils.collections.JsonArray());
    final JsonArray columnsHeader = message.body().getJsonArray("columnsHeader",
            new fr.wseduc.webutils.collections.JsonArray());
    final List<String> appFilters = message.body()
            .getJsonArray("appFilters", new fr.wseduc.webutils.collections.JsonArray()).getList();
    final String locale = message.body().getString("locale", "fr");

    searchingEvents.searchResource(appFilters, userId, groupIds, searchWords, page, limit, columnsHeader,
            locale, new Handler<Either<String, JsonArray>>() {
                @Override/*from   w w w .j  av a2s . c  o  m*/
                public void handle(Either<String, JsonArray> event) {
                    if (event.isRight()) {
                        final String address = "search." + searchId;
                        final JsonObject message = new JsonObject().put("application",
                                searchingEvents.getClass().getSimpleName());
                        message.put("results", event.right().getValue());
                        eb.send(address, message, new DeliveryOptions().setSendTimeout(5000l),
                                new Handler<AsyncResult<Message<JsonObject>>>() {
                                    @Override
                                    public void handle(AsyncResult<Message<JsonObject>> res) {
                                        if (res != null && res.succeeded()) {
                                            if (!"ok".equals(res.result().body().getString("message"))) {
                                                log.error(res.result().body().getString("message"));
                                            }
                                        }
                                    }
                                });
                    } else {
                        log.error(
                                "Failure of the research module : " + searchingEvents.getClass().getSimpleName()
                                        + "; message : " + event.left().getValue());
                    }
                }
            });
}

From source file:org.entcore.common.service.impl.MongoDbCrudService.java

License:Open Source License

public void isOwner(String id, UserInfos user, final Handler<Boolean> handler) {
    QueryBuilder query = QueryBuilder.start("_id").is(id).put("owner.userId").is(user.getUserId());
    mongo.count(collection, MongoQueryBuilder.build(query), new Handler<Message<JsonObject>>() {
        @Override//from  w  w  w . ja  v a 2 s. c  om
        public void handle(Message<JsonObject> event) {
            JsonObject res = event.body();
            handler.handle(res != null && "ok".equals(res.getString("status")) && 1 == res.getInteger("count"));
        }
    });
}

From source file:org.entcore.common.service.impl.MongoDbRepositoryEvents.java

License:Open Source License

@Override
public void deleteGroups(JsonArray groups) {
    if (groups == null || groups.size() == 0) {
        return;/*from   w w w.  j  a v  a 2  s  .co m*/
    }

    final String[] groupIds = new String[groups.size()];
    for (int i = 0; i < groups.size(); i++) {
        JsonObject j = groups.getJsonObject(i);
        groupIds[i] = j.getString("group");
    }

    final JsonObject matcher = MongoQueryBuilder.build(QueryBuilder.start("shared.groupId").in(groupIds));

    MongoUpdateBuilder modifier = new MongoUpdateBuilder();
    modifier.pull("shared", MongoQueryBuilder.build(QueryBuilder.start("groupId").in(groupIds)));

    final String collection = MongoDbConf.getInstance().getCollection();
    if (collection == null || collection.trim().isEmpty()) {
        log.error("Error deleting groups : invalid collection " + collection + " in class "
                + this.getClass().getName());
        return;
    }
    mongo.update(collection, matcher, modifier.build(), false, true, new Handler<Message<JsonObject>>() {
        @Override
        public void handle(Message<JsonObject> event) {
            if (!"ok".equals(event.body().getString("status"))) {
                log.error("Error deleting groups in collection " + collection + " : "
                        + event.body().getString("message"));
            }
        }
    });
}

From source file:org.entcore.common.service.impl.MongoDbRepositoryEvents.java

License:Open Source License

@Override
public void deleteUsers(JsonArray users) {
    if (users == null || users.size() == 0) {
        return;//  w ww . j  ava 2s  .  com
    }

    final String[] userIds = new String[users.size()];
    for (int i = 0; i < users.size(); i++) {
        JsonObject j = users.getJsonObject(i);
        userIds[i] = j.getString("id");
    }

    final JsonObject criteria = MongoQueryBuilder.build(QueryBuilder.start("shared.userId").in(userIds));

    MongoUpdateBuilder modifier = new MongoUpdateBuilder();
    modifier.pull("shared", MongoQueryBuilder.build(QueryBuilder.start("userId").in(userIds)));

    final String collection = MongoDbConf.getInstance().getCollection();
    if (collection == null || collection.trim().isEmpty()) {
        log.error("Error deleting groups : invalid collection " + collection + " in class "
                + this.getClass().getName());
        return;
    }
    mongo.update(collection, criteria, modifier.build(), false, true, new Handler<Message<JsonObject>>() {
        @Override
        public void handle(Message<JsonObject> event) {
            if (!"ok".equals(event.body().getString("status"))) {
                log.error("Error deleting users shared in collection " + collection + " : "
                        + event.body().getString("message"));
            }

            final JsonObject criteria = MongoQueryBuilder.build(QueryBuilder.start("owner.userId").in(userIds));
            MongoUpdateBuilder modifier = new MongoUpdateBuilder();
            modifier.set("owner.deleted", true);
            mongo.update(collection, criteria, modifier.build(), false, true,
                    new Handler<Message<JsonObject>>() {
                        @Override
                        public void handle(Message<JsonObject> event) {
                            if (!"ok".equals(event.body().getString("status"))) {
                                log.error("Error deleting users shared in collection " + collection + " : "
                                        + event.body().getString("message"));
                            } else if (managerRight != null && !managerRight.trim().isEmpty()) {
                                removeObjects(collection);
                            }
                        }
                    });
        }
    });
}

From source file:org.entcore.common.service.impl.MongoDbRepositoryEvents.java

License:Open Source License

protected void removeObjects(final String collection) {
    JsonObject matcher = MongoQueryBuilder
            .build(QueryBuilder.start("shared." + managerRight).notEquals(true).put("owner.deleted").is(true));

    JsonObject projection = new JsonObject().put("_id", 1);

    // Get ids of objects who have no manager and no owner (owner has just been deleted, or has been deleted previously)
    mongo.find(collection, matcher, null, projection, new Handler<Message<JsonObject>>() {
        @Override//from  w  w  w  .  j a  v  a2  s . c  om
        public void handle(Message<JsonObject> event) {
            JsonArray res = event.body().getJsonArray("results");
            if (!"ok".equals(event.body().getString("status"))) {
                log.error("Error when finding objects who have no manager and no owner : "
                        + event.body().getString("message"));
            } else if (res == null || res.size() == 0) {
                log.info("There are no objects without manager and without owner : no objects to delete");
            } else {
                final String[] objectIds = new String[res.size()];
                for (int i = 0; i < res.size(); i++) {
                    JsonObject j = res.getJsonObject(i);
                    objectIds[i] = j.getString("_id");
                }
                JsonObject matcher = MongoQueryBuilder.build(QueryBuilder.start("_id").in(objectIds));
                mongo.delete(collection, matcher, new Handler<Message<JsonObject>>() {
                    @Override
                    public void handle(Message<JsonObject> event) {
                        if (!"ok".equals(event.body().getString("status"))) {
                            log.error("Error deleting objects in collection " + collection + " : "
                                    + event.body().getString("message"));
                        } else if (revisionsCollection != null && !revisionsCollection.trim().isEmpty()
                                && revisionIdAttribute != null && !revisionIdAttribute.trim().isEmpty()) {
                            JsonObject criteria = MongoQueryBuilder
                                    .build(QueryBuilder.start(revisionIdAttribute).in(objectIds));
                            mongo.delete(revisionsCollection, criteria, new Handler<Message<JsonObject>>() {
                                @Override
                                public void handle(Message<JsonObject> event) {
                                    if (!"ok".equals(event.body().getString("status"))) {
                                        log.error("Error deleting revisions objects in collection "
                                                + revisionsCollection + " : "
                                                + event.body().getString("message"));
                                    }
                                }
                            });
                        }
                    }
                });
            }
        }
    });
}

From source file:org.entcore.common.share.impl.MongoDbShareService.java

License:Open Source License

@Override
public void shareInfos(final String userId, String resourceId, final String acceptLanguage, final String search,
        final Handler<Either<String, JsonObject>> handler) {
    if (userId == null || userId.trim().isEmpty()) {
        handler.handle(new Either.Left<String, JsonObject>("Invalid userId."));
        return;/*from  ww w  .  j  a  v  a 2  s .  c o  m*/
    }
    if (resourceId == null || resourceId.trim().isEmpty()) {
        handler.handle(new Either.Left<String, JsonObject>("Invalid resourceId."));
        return;
    }
    final JsonArray actions = getResoureActions(securedActions);
    QueryBuilder query = QueryBuilder.start("_id").is(resourceId);
    JsonObject keys = new JsonObject().put("shared", 1);
    mongo.findOne(collection, MongoQueryBuilder.build(query), keys, new Handler<Message<JsonObject>>() {
        @Override
        public void handle(Message<JsonObject> event) {
            if ("ok".equals(event.body().getString("status"))) {
                JsonArray shared = event.body().getJsonObject("result", new JsonObject()).getJsonArray("shared",
                        new fr.wseduc.webutils.collections.JsonArray());
                JsonObject gs = new JsonObject();
                JsonObject us = new JsonObject();
                for (Object o : shared) {
                    if (!(o instanceof JsonObject))
                        continue;
                    JsonObject userShared = (JsonObject) o;
                    JsonArray a = new fr.wseduc.webutils.collections.JsonArray();
                    for (String attrName : userShared.fieldNames()) {
                        if ("userId".equals(attrName) || "groupId".equals(attrName)) {
                            continue;
                        }
                        if (groupedActions != null && groupedActions.containsKey(attrName)) {
                            for (String action : groupedActions.get(attrName)) {
                                a.add(action.replaceAll("\\.", "-"));
                            }
                        } else {
                            a.add(attrName);
                        }
                    }
                    final String g = userShared.getString("groupId");
                    String u;
                    if (g != null) {
                        gs.put(g, a);
                    } else if ((u = userShared.getString("userId")) != null && !u.equals(userId)) {
                        us.put(u, a);
                    }
                }
                getShareInfos(userId, actions, gs, us, acceptLanguage, search, new Handler<JsonObject>() {
                    @Override
                    public void handle(JsonObject event) {
                        if (event != null && event.size() == 3) {
                            handler.handle(new Either.Right<String, JsonObject>(event));
                        } else {
                            handler.handle(
                                    new Either.Left<String, JsonObject>("Error finding shared resource."));
                        }
                    }
                });
            } else {
                handler.handle(new Either.Left<String, JsonObject>(
                        event.body().getString("error", "Error finding shared resource.")));
            }
        }
    });
}

From source file:org.entcore.common.share.impl.MongoDbShareService.java

License:Open Source License

private void inShare(String resourceId, String shareId, boolean group, final Handler<Boolean> handler) {
    QueryBuilder query = QueryBuilder.start("_id").is(resourceId).put("shared")
            .elemMatch(QueryBuilder.start(group ? "groupId" : "userId").is(shareId).get());
    mongo.count(collection, MongoQueryBuilder.build(query), new Handler<Message<JsonObject>>() {
        @Override/*w  w w  . ja  v  a 2s .co m*/
        public void handle(Message<JsonObject> event) {
            JsonObject res = event.body();
            handler.handle(res != null && "ok".equals(res.getString("status")) && 1 == res.getInteger("count"));
        }
    });
}