Example usage for com.mongodb.client MongoDatabase getCollection

List of usage examples for com.mongodb.client MongoDatabase getCollection

Introduction

In this page you can find the example usage for com.mongodb.client MongoDatabase getCollection.

Prototype

MongoCollection<Document> getCollection(String collectionName);

Source Link

Document

Gets a collection.

Usage

From source file:eu.project.ttc.models.occstore.MongoDBOccurrenceStore.java

License:Apache License

public MongoDBOccurrenceStore(String mongoDbUri, State state) {
    super();// w w w . j  a v  a2  s .c om

    Preconditions.checkNotNull(mongoDbUri, "MongoDB dadabase's URI must not be null");
    Preconditions.checkState(state != State.INDEXING, "Invalid occ store state for constructor. Only "
            + State.COLLECTING + " and " + State.INDEXED + " allowed");

    this.mongoDBUri = getMongoDBUri(mongoDbUri);
    this.state = state;

    initThreadExecutor();

    MongoClientURI connectionString = new MongoClientURI(mongoDbUri);
    this.mongoClient = new MongoClient(connectionString);
    MongoDatabase db = mongoClient.getDatabase(this.mongoDBUri.getDatabase())
            .withWriteConcern(WriteConcern.ACKNOWLEDGED);
    db.runCommand(new org.bson.Document("profile", 1));

    if (state == State.COLLECTING)
        db.drop();

    this.termCollection = db.getCollection("terms");
    this.occurrenceCollection = db.getCollection("occurrences");
    this.documentUrlCollection = db.getCollection("documents");

    resetBuffers();
}

From source file:eu.seaclouds.platform.discoverer.core.Discoverer.java

License:Apache License

public Discoverer(MongoClient mongoClient, ArrayList<String> activeCrawlers) {
    this.initializeResources();

    MongoDatabase db = mongoClient.getDatabase(this.databaseName);
    MongoCollection<Document> coll = db.getCollection(this.collectionName);

    this.offeringManager = new OfferingManager(coll);
    this.offeringManager.initializeOfferings();

    this.activeCrawlers = activeCrawlers;
}

From source file:eu.vital.vitalcep.cep.CEP.java

public Boolean CEPStart(CEPType type, DolceSpecification dolceSpecification, String mqin, String mqout,
        String confFile, String sources, JSONObject credentials) throws FileNotFoundException, IOException {

    ConfigReader configReader = ConfigReader.getInstance();

    mongoURL = configReader.get(ConfigReader.MONGO_URL);
    mongoDB = configReader.get(ConfigReader.MONGO_DB);

    cp = new CepProcess(dolceSpecification.toString(), mqin, mqout, confFile);
    cp.startCEP();//from  www . j  a  va 2  s.  co  m
    this.PID = cp.PID;

    CepContainer.putCepProc(cp);

    this.type = type.toString();
    String T = type.toString();

    if (cp.PID > 0) {

        this.fileName = cp.fileName;
        MongoClient mongo = new MongoClient(new MongoClientURI(mongoURL));
        MongoDatabase db = mongo.getDatabase(mongoDB);

        try {

            Document doc = new Document();

            doc.put("PID", PID);
            doc.put("mqin", mqin);
            doc.put("mqout", mqout);
            doc.put("dolceSpecification", dolceSpecification.toString());
            doc.put("dolcefile", cp.cepFolder + "/" + cp.fileName);
            doc.put("cepType", T);
            doc.put("clientId", fileName);
            //doc.put("sensorId", id);
            doc.put("fileName", fileName);
            doc.put("cepFolder", cp.cepFolder);

            Date NOW = new Date();

            switch (T) {
            case "DATA":
                doc.put("data", sources);
                break;
            case "QUERY":
                doc.put("querys", sources);
                break;

            case "CEPICO":
            case "ALERT":
                doc.put("lastRequest", getXSDDateTime(NOW));
                BasicDBList sourcesCEPICO = (BasicDBList) JSON.parse(sources);
                doc.put("requests", sourcesCEPICO);
                doc.put("lastRequest", getXSDDateTime(NOW));
                doc.put("username", credentials.getString("username"));
                doc.put("password", encrypt(credentials.getString("password")));
                break;

            case "CONTINUOUS":

                BasicDBList sourcesB = (BasicDBList) JSON.parse(sources);
                BasicDBList propertiesB = (BasicDBList) JSON.parse(dolceSpecification.getEvents().toString());
                doc.put("sources", sourcesB);
                doc.put("properties", propertiesB);
                doc.put("lastRequest", getXSDDateTime(NOW));
                doc.put("username", credentials.getString("username"));
                doc.put("password", encrypt(credentials.getString("password")));
                break;
            }

            doc.put("status", "OK");
            db.getCollection("cepinstances").insertOne(doc);
            ObjectId idO = (ObjectId) doc.get("_id");
            this.id = idO.toString();

            if (id != null && !(T == "DATA" || T == "QUERY")) {
                Boolean insertIntoCollectorList = insertIntoCollectorList(doc, idO);

                if (!insertIntoCollectorList) {
                    db.getCollection("cepinstances").updateOne(doc,
                            new Document("$set", new Document("status", "no collector available")));
                    throw new ServerErrorException(500);
                }

            }

        } catch (JSONException | GeneralSecurityException | UnsupportedEncodingException
                | ServerErrorException ex) {
            String a = "";
        } finally {
            if (db != null)
                db = null;
            if (mongo != null) {
                mongo.close();
                mongo = null;
            }
        }

    } else {
        this.fileName = "";
        return false;
    }
    return true;

}

From source file:eu.vital.vitalcep.collector.Collector.java

private void getCollectorList() {
    try {/*ww  w. j  a va2  s  .  c om*/
        MongoClient mongo = new MongoClient(new MongoClientURI(mongoURL));

        final MongoDatabase db = mongo.getDatabase(mongoDB);

        BasicDBObject clause1 = new BasicDBObject("cepType", "CONTINUOUS").append("status", "OK");
        BasicDBObject clause2 = new BasicDBObject("cepType", "CEPICO");
        BasicDBObject clause3 = new BasicDBObject("cepType", "ALERT");
        BasicDBList or = new BasicDBList();
        or.add(clause1);
        or.add(clause2);
        or.add(clause3);
        BasicDBObject query = new BasicDBObject("$or", or);

        FindIterable<Document> coll;
        coll = db.getCollection("cepinstances").find(query);

        coll.forEach(new Block<Document>() {
            @Override
            public void apply(final Document document) {

                JSONObject oCollector = new JSONObject();

                oCollector.put("id", document.getObjectId("_id").toString());
                oCollector.put("mqin", document.getString("mqin"));
                oCollector.put("mqout", document.getString("mqout"));
                oCollector.put("cepType", document.getString("cepType"));

                if (document.getString("cepType").equals("CONTINUOUS")) {

                    final Document doc = new Document("sources", document.get("sources"));
                    final String jsonStringSources = doc.toJson();
                    JSONObject sources = new JSONObject(jsonStringSources);

                    final Document docproperties = new Document("properties", document.get("properties"));
                    final String jsonStringproperties = docproperties.toJson();
                    JSONObject sourcesproperties = new JSONObject(jsonStringproperties);

                    oCollector.put("sources", sources.getJSONArray("sources"));
                    oCollector.put("properties", sourcesproperties.getJSONArray("properties"));
                    oCollector.put("username", document.getString("username"));
                    oCollector.put("password", document.getString("password"));

                } else {

                    final Document doc = new Document("requests", document.get("requests"));
                    final String jsonStringRequests = doc.toJson();
                    JSONObject requestsObject = new JSONObject(jsonStringRequests);

                    oCollector.put("requests", requestsObject.getJSONArray("requests"));
                    oCollector.put("username", document.getString("username"));
                    oCollector.put("password", document.getString("password"));
                }
                oCollector.put("lastRequest", document.getString("lastRequest"));
                sensors.put(oCollector);

            }
        });

    } catch (Exception e) {
        String a = "a";
    } finally {
        if (db != null)
            db = null;
        if (mongo != null) {
            mongo.close();
            mongo = null;
        }
    }
}

From source file:eu.vital.vitalcep.publisher.MessageProcessor_publisher.java

@Override
public boolean processMsg(MqttMsg mqttMsg) {

    Encoder encoder = new Encoder();
    Date date = new Date();
    String xsdTime = getXSDDateTime(date);
    UUID uuid = UUID.randomUUID();
    String id = uuid.toString();/*from w  ww  .j  a  v  a2s  .  c  o  m*/

    JSONObject observation = null;
    try {
        observation = encoder.dolceOutput2Jsonld(mqttMsg.msg, id, this.sensorId, xsdTime);
    } catch (ParseException ex) {
        java.util.logging.Logger.getLogger(MessageProcessor_publisher.class.getName())
                .log(java.util.logging.Level.SEVERE, null, ex);
    }

    Document doc = null;
    try {
        doc = encoder.dolceOutput2Document(mqttMsg.msg, id, this.sensorId, xsdTime);
    } catch (ParseException ex) {
        java.util.logging.Logger.getLogger(MessageProcessor_publisher.class.getName())
                .log(java.util.logging.Level.SEVERE, null, ex);
    }

    logger.debug("MQTTMessage received: " + mqttMsg.msg);

    MongoClient mongo = null;
    MongoDatabase db = null;
    try {
        mongo = new MongoClient(new MongoClientURI(this.mongoURL));
        db = mongo.getDatabase(this.mongoDB);
        db.getCollection(mongocollection).insertOne(doc);
    } catch (MongoException ex) {
        logger.error("observation not saved");
    } finally {
        if (db != null)
            db = null;
        if (mongo != null)
            mongo.close();
    }

    JSONArray body = new JSONArray();
    body.put(observation);

    DMSManager oDMS = new DMSManager(dms_URL, cookie);

    try {
        if (!oDMS.pushObservations(body.toString())) {
            logger.error("couldn't push to DMS");
            return false;
        } else {
            return true;
        }
    } catch (IOException | KeyManagementException | NoSuchAlgorithmException | KeyStoreException ex) {
        logger.error(ex);
    }

    return true;

}

From source file:eu.vital.vitalcep.restApp.alert.Alerts.java

/**
 * Gets the filters./*  w w  w . java  2  s . co m*/
 *
 * @return the filters
 */
@GET
@Path("getalerts")
@Produces(MediaType.APPLICATION_JSON)
public String getAlerts() {

    MongoClient mongo = new MongoClient(new MongoClientURI(mongoURL));

    MongoDatabase db = mongo.getDatabase(mongoDB);

    BasicDBObject query = new BasicDBObject();
    BasicDBObject fields = new BasicDBObject().append("_id", false);
    fields.append("dolceSpecification", false);

    FindIterable<Document> coll = db.getCollection("alerts").find(query).projection(fields);

    final JSONArray AllJson = new JSONArray();

    coll.forEach(new Block<Document>() {
        @Override
        public void apply(final Document document) {
            AllJson.put(document);
        }
    });
    if (db != null)
        db = null;
    if (mongo != null) {
        mongo.close();
        mongo = null;
    }
    return AllJson.toString();

}

From source file:eu.vital.vitalcep.restApp.alert.Alerts.java

/**
 * Creates a filter./*from  ww w. j  a v  a  2 s  .co m*/
 *
 * @param cepico
 * @param req
 * @return the filter id 
 * @throws java.io.IOException 
 */
@PUT
@Path("createalert")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response createAlert(String cepico, @Context HttpServletRequest req) throws IOException {

    StringBuilder ck = new StringBuilder();
    Security slogin = new Security();

    JSONObject credentials = new JSONObject();

    Boolean token = slogin.login(req.getHeader("name"), req.getHeader("password"), false, ck);
    credentials.put("username", req.getHeader("name"));
    credentials.put("password", req.getHeader("password"));
    if (!token) {
        return Response.status(Response.Status.UNAUTHORIZED).build();
    }
    this.cookie = ck.toString();

    JSONObject jo = new JSONObject(cepico);
    if (!jo.has("source")) {
        return Response.status(Response.Status.BAD_REQUEST).build();
    }

    MongoClient mongo = new MongoClient(new MongoClientURI(mongoURL));
    MongoDatabase db = mongo.getDatabase(mongoDB);

    try {
        db.getCollection("alerts");
    } catch (Exception e) {
        //System.out.println("Mongo is down");
        mongo.close();
        return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();

    } finally {
        if (db != null)
            db = null;
        if (mongo != null) {
            mongo.close();
            mongo = null;
        }
    }

    // create an empty query
    BasicDBObject query = new BasicDBObject();
    BasicDBObject fields = new BasicDBObject().append("_id", false);
    fields.append("dolceSpecification", false);

    if (jo.has("dolceSpecification")) {

        //Filter oFilter = new Filter(filter);
        JSONObject dsjo = jo.getJSONObject("dolceSpecification");
        String str = dsjo.toString();//"{\"dolceSpecification\": "+ dsjo.toString()+"}";

        try {

            DolceSpecification ds = new DolceSpecification(str);

            if (ds instanceof DolceSpecification) {
                UUID uuid = UUID.randomUUID();
                String randomUUIDString = uuid.toString();

                String mqin = RandomStringUtils.randomAlphanumeric(8);
                String mqout = RandomStringUtils.randomAlphanumeric(8);

                Date NOW = new Date();

                JSONArray requestArray;

                try {
                    requestArray = createAlertRequests(jo.getJSONArray("source"), ds.getEvents(),
                            getXSDDateTime(NOW));
                } catch (Exception e) {
                    return Response.status(Response.Status.BAD_REQUEST)
                            .entity("not available getObservation Service for this sensor ").build();
                }

                CEP cepProcess = new CEP();

                if (!(cepProcess.CEPStart(CEP.CEPType.ALERT, ds, mqin, mqout, confFile, requestArray.toString(),
                        credentials))) {
                    return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
                }

                String clientName = cepProcess.fileName;

                if (cepProcess.PID < 1) {
                    return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
                }

                DBObject dbObject = createAlertSensor(cepico, randomUUIDString, dsjo, cepProcess.id);

                Document doc = new Document(dbObject.toMap());

                try {
                    db.getCollection("alerts").insertOne(doc);

                    JSONObject opState = createOperationalStateObservation(randomUUIDString);
                    String sensorId = host + "/sensor/" + randomUUIDString;

                    MessageProcessor_publisher Publisher_MsgProcc = new MessageProcessor_publisher(this.dmsURL,
                            cookie, sensorId, "alertsobservations", mongoURL, mongoDB);//555
                    MQTT_connector_subscriper publisher = new MQTT_connector_subscriper(mqout,
                            Publisher_MsgProcc);
                    MqttConnectorContainer.addConnector(publisher.getClientName(), publisher);

                    DBObject oPut = (DBObject) JSON.parse(opState.toString());
                    Document doc1 = new Document(oPut.toMap());

                    try {
                        db.getCollection("alertsobservations").insertOne(doc1);
                        String id = doc1.get("_id").toString();

                    } catch (MongoException ex) {
                        return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
                    }

                    JSONObject aOutput = new JSONObject();
                    aOutput.put("id", host + "/sensor/" + randomUUIDString);
                    return Response.status(Response.Status.OK).entity(aOutput.toString()).build();

                } catch (MongoException ex) {
                    return Response.status(Response.Status.BAD_REQUEST).build();
                }

            } else {

                return Response.status(Response.Status.BAD_REQUEST).build();
            }
        } catch (JSONException | IOException e) {
            return Response.status(Response.Status.BAD_REQUEST).build();
        }
    }

    return Response.status(Response.Status.BAD_REQUEST).build();

}

From source file:eu.vital.vitalcep.restApp.alert.Alerts.java

/**
 * Gets a filter.//from   w w  w  .j  a  v  a  2s .  c  om
 *
 * @return the filter 
 */
@POST
@Path("getAlert")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response getAlert(String id) {

    JSONObject jo = new JSONObject(id);
    String idjo = jo.getString("id");

    MongoClient mongo = new MongoClient(new MongoClientURI(mongoURL));
    MongoDatabase db = mongo.getDatabase(mongoDB);

    try {
        db.getCollection("alerts");
    } catch (Exception e) {
        //System.out.println("Mongo is down");
        mongo.close();
        return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();

    }

    BasicDBObject searchById = new BasicDBObject("id", idjo);
    String found = null;
    BasicDBObject fields = new BasicDBObject().append("_id", false);

    FindIterable<Document> coll = db.getCollection("alerts").find(searchById).projection(fields);

    try {
        found = coll.first().toJson();
    } catch (Exception e) {
        return Response.status(Response.Status.NOT_FOUND).build();
    } finally {
        db = null;
        if (mongo != null) {
            mongo.close();
            mongo = null;
        }
    }

    if (found == null) {
        return Response.status(Response.Status.NOT_FOUND).build();
    } else {
        return Response.status(Response.Status.OK).entity(found.toString()).build();
    }

}

From source file:eu.vital.vitalcep.restApp.alert.Alerts.java

/**
 * Gets a filter./*from  www  .  j  a va2 s.  c  o  m*/
 *
 * @param filterId
 * @param req
 * @return the filter 
 */
@DELETE
@Path("deletealert")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response deleteAlert(String filterId, @Context HttpServletRequest req) throws IOException {
    MongoClient mongo = null;
    MongoDatabase db = null;

    try {
        StringBuilder ck = new StringBuilder();
        Security slogin = new Security();

        Boolean token = slogin.login(req.getHeader("name"), req.getHeader("password"), false, ck);
        if (!token) {
            return Response.status(Response.Status.UNAUTHORIZED).build();
        }
        this.cookie = ck.toString();

        JSONObject jo = new JSONObject(filterId);
        String idjo = jo.getString("id");

        mongo = new MongoClient(new MongoClientURI(mongoURL));
        db = mongo.getDatabase(mongoDB);

        try {
            db.getCollection("alerts");
        } catch (Exception e) {
            //System.out.println("Mongo is down");
            mongo.close();
            return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
        }

        MongoCollection<Document> coll = db.getCollection("alerts");

        Bson filter = Filters.eq("id", idjo);

        FindIterable<Document> iterable = coll.find(filter);

        String cepInstance;

        CEP cepProcess = new CEP();

        if (iterable != null && iterable.first() != null) {
            Document doc = iterable.first();
            cepInstance = doc.getString("cepinstance");

            MongoCollection<Document> collInstances = db.getCollection("cepinstances");

            ObjectId ci = new ObjectId(cepInstance);
            Bson filterInstances = Filters.eq("_id", ci);

            FindIterable<Document> iterable2 = collInstances.find(filterInstances);

            if (iterable2 != null) {
                Document doc2 = iterable2.first();
                cepProcess.PID = doc2.getInteger("PID");
                cepProcess.fileName = doc2.getString("fileName");
                cepProcess.cepFolder = doc2.getString("cepFolder");
                cepProcess.type = CEP.CEPType.ALERT.toString();
                CepProcess cp = new CepProcess(null, null, null, null);
                cp.PID = doc2.getInteger("PID");

                cepProcess.cp = cp;

                if (!cepProcess.cepDispose()) {
                    java.util.logging.Logger.getLogger(Alerts.class.getName()).log(Level.SEVERE,
                            "bcep Instance not terminated");
                } else {

                    Bson filter1 = Filters.eq("_id", ci);
                    Bson update = new Document("$set", new Document("status", "terminated"));
                    UpdateOptions options = new UpdateOptions().upsert(false);
                    UpdateResult updateDoc = db.getCollection("cepinstances").updateOne(filter1, update,
                            options);

                }
                ;
                CepContainer.deleteCepProcess(cp.PID);

            }
        } else {
            return Response.status(Response.Status.NOT_FOUND).build();
        }

        DeleteResult deleteResult = coll.deleteOne(eq("id", idjo));

        if (deleteResult.getDeletedCount() < 1) {
            return Response.status(Response.Status.NOT_FOUND).build();
        } else {
            return Response.status(Response.Status.OK).build();
        }
    } catch (Exception e) {
        return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
    } finally {
        db = null;
        if (mongo != null) {
            mongo.close();
            mongo = null;
        }
    }
}

From source file:eu.vital.vitalcep.restApp.cepRESTApi.CEPICO.java

/**
 * Gets the filters./* w  ww . j a  v  a 2s .c  om*/
 *
 * @return the filters
 */
@GET
@Path("getcepicos")
@Produces(MediaType.APPLICATION_JSON)
public Response getCEPICOs() {

    MongoClient mongo = new MongoClient(new MongoClientURI(mongoURL));

    MongoDatabase db = mongo.getDatabase(mongoDB);

    BasicDBObject query = new BasicDBObject();
    BasicDBObject fields = new BasicDBObject().append("_id", false).append("cepinstance", false);
    fields.append("dolceSpecification", false);

    FindIterable<Document> coll = db.getCollection("cepicos").find(query).projection(fields);

    final JSONArray AllJson = new JSONArray();

    coll.forEach(new Block<Document>() {
        @Override
        public void apply(final Document document) {
            AllJson.put(document);
        }
    });

    db = null;
    if (mongo != null) {
        mongo.close();
        mongo = null;
    }

    return Response.status(Response.Status.OK).entity(AllJson.toString()).build();

}