All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.ebay.jetstream.config.mongo.MongoConnection Maven / Gradle / Ivy

/*******************************************************************************
 *  Copyright © 2012-2015 eBay Software Foundation
 *  This program is dual licensed under the MIT and Apache 2.0 licenses.
 *  Please see LICENSE for more information.
 *******************************************************************************/
package com.ebay.jetstream.config.mongo;

import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;

import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.Mongo;
import com.mongodb.ServerAddress;
  
 public class MongoConnection {
  
	  private static final String collection = "jetstreamconfig";
      private DB db = null;
      
      public MongoConnection(MongoConfiguration mongoConfiguration) {
    	  
          List hosts = new ArrayList();
          for (String host : mongoConfiguration.getHosts()) {
              try {
                  hosts.add(new ServerAddress(host, Integer.valueOf(mongoConfiguration.getPort())));
              } catch (UnknownHostException e) {
              }
          }
  
          Mongo mongo = null;
          mongo = new Mongo(hosts);
          db = mongo.getDB( mongoConfiguration.getDb());
          
          authenticate(mongoConfiguration);
      }
  
      public MongoConnection(List hostStrings, String port, String database) {
  
          List hosts = new ArrayList();
          for (String host : hostStrings) {
              try {
                  hosts.add(new ServerAddress(host, Integer.valueOf(port)));
              } catch (UnknownHostException e) {
              }
          }
  
          Mongo mongo = null;
          mongo = new Mongo(hosts);
          db = mongo.getDB(database);
          
      }
  
      public DB getDB(){
          return db;
      }
      
      public DBCollection getDBCollection() {
  		return (db == null ? null : db.getCollection(collection) );
  	  }
      
      private void authenticate(MongoConfiguration mongoConfiguration) {
    	  if(mongoConfiguration.getUser() != null && mongoConfiguration.getUser().length() > 0) {
          	  if(mongoConfiguration.getPw() != null && mongoConfiguration.getPw().length() > 0) {
          		  Boolean auth = db.authenticate(mongoConfiguration.getUser(), mongoConfiguration.getPw().toCharArray());
                    if (!auth)
                        throw new MongoConfigRuntimeException("Mongo Authentication Failed");  
          	  }
            }
      }
      
  }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy