Ejemplo n.º 1
0
  protected void connect() {

    if (this.mongoClient == null) {
      try {

        List<ServerAddress> addresses = new ArrayList<ServerAddress>();

        for (String host : this.servers) {
          addresses.add(new ServerAddress(host, 27017));
        }

        this.mongoClient =
            new MongoClient(
                addresses,
                MongoClientOptions.builder()
                    .connectionsPerHost(30)
                    .threadsAllowedToBlockForConnectionMultiplier(20)
                    .build());

        this.db = this.mongoClient.getDB("twitter");

        this.dbCollection = this.db.getCollection("tweets");
      } catch (Exception e) {
        this.log.write(
            "MongoDBConnector - Exception in MongoDBConnector.connect: "
                + e.getMessage()
                + ": "
                + e.toString());
      }
    }
  }
  public void initialiseConnections() throws UnknownHostException {
    MongoClientOptions options =
        MongoClientOptions.builder().connectTimeout(15000).socketKeepAlive(true).build();

    Mongo mongo = new MongoClient(new ServerAddress(sourceHost, sourcePort), options);

    sourceDB = mongo.getDB(sourceDBName);

    // conceptTermListColl_source = JacksonDBCollection.wrap(sourceDB.getCollection("TermList"),
    // ConceptTermList.class,
    //		String.class);

    placeTermListColl_source =
        JacksonDBCollection.wrap(
            sourceDB.getCollection("TermList"), PlaceTermList.class, String.class);

    // timespanTermListColl_source = JacksonDBCollection.wrap(sourceDB.getCollection("TermList"),
    //		TimespanTermList.class, String.class);

    // agentTermListColl_source = JacksonDBCollection.wrap(sourceDB.getCollection("TermList"),
    // AgentTermList.class,
    //		String.class);

    // conceptTermColl_source = JacksonDBCollection.wrap(sourceDB.getCollection("concept"),
    // MongoTerm.class,
    //		String.class);

    placeTermColl_source =
        JacksonDBCollection.wrap(sourceDB.getCollection("place"), MongoTerm.class, String.class);

    // timespanTermColl_source = JacksonDBCollection.wrap(sourceDB.getCollection("period"),
    // MongoTerm.class,
    //		String.class);

    // agentTermColl_source = JacksonDBCollection.wrap(sourceDB.getCollection("people"),
    // MongoTerm.class,
    //		String.class);

    if (!sourceHost.equals(targetHost) || sourcePort != targetPort) {
      mongo = new MongoClient(new ServerAddress(targetHost, targetPort), options);
    }

    targetDB = mongo.getDB(targetDBName);

    /*
    		conceptTermListColl_target = JacksonDBCollection.wrap(targetDB.getCollection("TermList"), ConceptTermList.class,
    				String.class);
    		conceptTermListColl_target.createIndex(new BasicDBObject("codeUri", 1), new BasicDBObject("unique", true));
    */
    placeTermListColl_target =
        JacksonDBCollection.wrap(
            targetDB.getCollection("TermList"), PlaceTermList.class, String.class);
    placeTermListColl_target.createIndex(
        new BasicDBObject("codeUri", 1), new BasicDBObject("unique", true));
    /*
    		timespanTermListColl_target = JacksonDBCollection.wrap(targetDB.getCollection("TermList"),
    				TimespanTermList.class, String.class);
    		timespanTermListColl_target.createIndex(new BasicDBObject("codeUri", 1), new BasicDBObject("unique", true));

    		agentTermListColl_target = JacksonDBCollection.wrap(targetDB.getCollection("TermList"), AgentTermList.class,
    				String.class);
    		agentTermListColl_target.createIndex(new BasicDBObject("codeUri", 1), new BasicDBObject("unique", true));

    		conceptTermColl_target = JacksonDBCollection.wrap(targetDB.getCollection("concept"), MongoTerm.class,
    				String.class);
    		conceptTermColl_target.createIndex(new BasicDBObject("label", 1).append("lang", 1).append("codeUri", 1),
    				new BasicDBObject("unique", true));
    		conceptTermColl_target.createIndex(new BasicDBObject("codeUri", 1));
    */
    placeTermColl_target =
        JacksonDBCollection.wrap(targetDB.getCollection("place"), MongoTerm.class, String.class);
    placeTermColl_target.createIndex(
        new BasicDBObject("label", 1).append("lang", 1).append("codeUri", 1),
        new BasicDBObject("unique", true));
    placeTermColl_target.createIndex(new BasicDBObject("codeUri", 1));
    /*
    		timespanTermColl_target = JacksonDBCollection.wrap(targetDB.getCollection("period"), MongoTerm.class,
    				String.class);
    		timespanTermColl_target.createIndex(new BasicDBObject("label", 1).append("lang", 1).append("codeUri", 1),
    				new BasicDBObject("unique", true));
    		timespanTermColl_target.createIndex(new BasicDBObject("codeUri", 1));

    		agentTermColl_target = JacksonDBCollection.wrap(targetDB.getCollection("people"), MongoTerm.class,
    				String.class);
    		agentTermColl_target.createIndex(new BasicDBObject("label", 1).append("lang", 1).append("codeUri", 1),
    				new BasicDBObject("unique", true));
    		agentTermColl_target.createIndex(new BasicDBObject("codeUri", 1));
    */
    lookupColl_target =
        JacksonDBCollection.wrap(
            targetDB.getCollection("lookup"), MongoCodeLookup.class, String.class);
    lookupColl_target.createIndex(
        new BasicDBObject("codeUri", 1).append("originalCodeUri", 1),
        new BasicDBObject("unique", true));
    lookupColl_target.createIndex(new BasicDBObject("originalCodeUri", 1)); // for
    // reverse
    // lookup

    sequenceColl_target =
        JacksonDBCollection.wrap(
            targetDB.getCollection("sequence"), MongoSequence.class, String.class);
  }