Example usage for com.mongodb MongoClientOptions builder

List of usage examples for com.mongodb MongoClientOptions builder

Introduction

In this page you can find the example usage for com.mongodb MongoClientOptions builder.

Prototype

public static Builder builder() 

Source Link

Document

Creates a builder instance.

Usage

From source file:com.redhat.lightblue.mongo.config.MongoConfiguration.java

License:Open Source License

/**
 * Returns an options object with defaults overriden where there is a valid override.
 *
 * @return//from w  ww . j a  v  a 2s .c o m
 */
public MongoClientOptions getMongoClientOptions() {
    MongoClientOptions.Builder builder = MongoClientOptions.builder();

    if (connectionsPerHost != null) {
        builder.connectionsPerHost(connectionsPerHost);
    }

    if (ssl) {
        // taken from MongoClientURI, written this way so we don't have to
        // construct a URI to connect
        builder.socketFactory(getSocketFactory());
    }

    return builder.build();
}

From source file:com.redhat.thermostat.gateway.common.mongodb.ThermostatMongoStorage.java

License:Open Source License

public ThermostatMongoStorage(Map<String, String> mongoConfiguration) {
    String username = null;//from   ww w. j av  a2  s.  com
    char[] password = null;
    String host = "127.0.0.1";
    int port = 27518;
    int timeout = 1000;
    String dbName = DEFAULT_DB_NAME;

    if (mongoConfiguration.containsKey(MongoConfiguration.MONGO_DB.toString())) {
        dbName = mongoConfiguration.get(MongoConfiguration.MONGO_DB.toString());
    }
    if (mongoConfiguration.containsKey(MongoConfiguration.MONGO_USERNAME.toString())) {
        username = mongoConfiguration.get(MongoConfiguration.MONGO_USERNAME.toString());
    }
    if (mongoConfiguration.containsKey(MongoConfiguration.MONGO_PASSWORD.toString())) {
        password = mongoConfiguration.get(MongoConfiguration.MONGO_PASSWORD.toString()).toCharArray();
    }
    if (mongoConfiguration.containsKey(MongoConfiguration.MONGO_URL.toString())) {
        try {
            URI url = new URI(mongoConfiguration.get(MongoConfiguration.MONGO_URL.toString()));
            host = url.getHost();
            port = url.getPort();
        } catch (URISyntaxException e) {
            // Do nothing. Defaults will be used.
        }
    }
    if (mongoConfiguration.containsKey(MongoConfiguration.MONGO_SERVER_TIMEOUT.toString())) {
        timeout = Integer.valueOf(mongoConfiguration.get(MongoConfiguration.MONGO_SERVER_TIMEOUT.toString()));
    }

    ServerAddress address = new ServerAddress(host, port);
    if (username != null && password != null) {
        MongoCredential credential = MongoCredential.createCredential(username, dbName, password);
        mongoClient = new MongoClient(address, Collections.singletonList(credential),
                new MongoClientOptions.Builder().serverSelectionTimeout(timeout).connectTimeout(0)
                        .socketTimeout(0).build());
    } else {
        mongoClient = new MongoClient(address, new MongoClientOptions.Builder().serverSelectionTimeout(timeout)
                .connectTimeout(0).socketTimeout(0).build());
    }

    Logger mongoLog = Logger.getLogger("org.mongodb.driver");
    mongoLog.setLevel(Level.OFF);
    this.dbName = dbName;
}

From source file:com.redhat.thermostat.web2.endpoint.command.MongoStorage.java

License:Open Source License

public static void start(final String dbName, int port) {
    MongoStorage.dbName = dbName;//  ww  w  .  ja v a  2s.c  o m
    MongoCredential credential = MongoCredential.createCredential(username, dbName, password);
    ServerAddress address = new ServerAddress("127.0.0.1", port);
    mongoClient = new MongoClient(address, Collections.singletonList(credential),
            new MongoClientOptions.Builder().serverSelectionTimeout(0).build());
}

From source file:com.ricardolorenzo.identity.user.impl.UserIdentityManagerMongoDB.java

License:Open Source License

public UserIdentityManagerMongoDB(final Properties conf) throws UnknownHostException {
    this.properties = conf;

    this.databaseUsers = new Boolean(this.properties.getProperty("mongodb.databaseUsers", "true"));

    WriteConcern writeConcern = WriteConcern.MAJORITY;
    String writeConcernType = conf.getProperty("mongodb.writeConcern", "majority").toLowerCase();
    if ("majority".equals(writeConcernType)) {
        writeConcern = WriteConcern.UNACKNOWLEDGED;
    } else if ("unacknowledged".equals(writeConcernType)) {
        writeConcern = WriteConcern.UNACKNOWLEDGED;
    } else if ("acknowledged".equals(writeConcernType)) {
        writeConcern = WriteConcern.ACKNOWLEDGED;
    } else if ("journaled".equals(writeConcernType)) {
        writeConcern = WriteConcern.JOURNALED;
    } else if ("replica_acknowledged".equals(writeConcernType)) {
        writeConcern = WriteConcern.REPLICA_ACKNOWLEDGED;
    }//from  ww  w .jav a  2s  .c  o  m

    ReadPreference readPreference = null;
    String readPreferenceType = conf.getProperty("mongodb.readPreference", "primary").toLowerCase();
    if ("primary".equals(readPreferenceType)) {
        readPreference = ReadPreference.primary();
    } else if ("primary_preferred".equals(readPreferenceType)) {
        readPreference = ReadPreference.primaryPreferred();
    } else if ("secondary".equals(readPreferenceType)) {
        readPreference = ReadPreference.secondary();
    } else if ("secondary_preferred".equals(readPreferenceType)) {
        readPreference = ReadPreference.secondaryPreferred();
    } else if ("nearest".equals(readPreferenceType)) {
        readPreference = ReadPreference.nearest();
    }

    MongoClientOptions.Builder options = MongoClientOptions.builder();
    options.writeConcern(writeConcern);
    options.readPreference(readPreference);
    try {
        options.connectionsPerHost(Integer.parseInt(conf.getProperty("mongodb.threads", "100")));
    } catch (NumberFormatException e) {
        options.connectionsPerHost(100);
    }

    MongoClientURI mongoClientURI = new MongoClientURI(
            conf.getProperty("mongodb.url", "mongodb://localhost:27017"), options);
    if (!this.properties.containsKey("mongodb.database")) {
        if (mongoClientURI.getDatabase() != null && !mongoClientURI.getDatabase().isEmpty()) {
            this.properties.setProperty("mongodb.database", mongoClientURI.getDatabase());
        } else {
            this.properties.setProperty("mongodb.database", DEFAULT_DATABASE);
        }
    }
    mongoClient = new MongoClient(mongoClientURI);
}

From source file:com.sample.db.Database.java

private void init() {
    try {/*  www. j  a v  a 2  s.  c  om*/
        props = new Properties();
        props.load(
                Thread.currentThread().getContextClassLoader().getResourceAsStream("./application.properties"));
        max_conn_idle = Integer.parseInt(props.getProperty("mongo.max.connection.idle"));
        min_conn = Integer.parseInt(props.getProperty("mongo.min.connection"));
        server_port = Integer.parseInt(props.getProperty("mongo.port"));
        server_url = props.getProperty("mongo.server");
        auth_db = props.getProperty("mongo.auth.db");
        app_db = props.getProperty("mongo.app.db");
        app_user = props.getProperty("mongo.auth.user");
        app_pwd = props.getProperty("mongo.auth.pwd");

        ServerAddress addr = new ServerAddress(server_url, server_port);
        MongoCredential creds = MongoCredential.createScramSha1Credential(app_user, auth_db,
                app_pwd.toCharArray());

        List<MongoCredential> credList = new ArrayList<>();
        credList.add(creds);
        MongoClientOptions options = new MongoClientOptions.Builder()
                .codecRegistry(getApplicationCodecRegistry()).minConnectionsPerHost(min_conn)
                .maxConnectionIdleTime(max_conn_idle).build();
        client = new MongoClient(addr, credList, options);

    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:com.sitewhere.mongodb.MongoDbClient.java

License:Open Source License

@Override
public void initialize(ILifecycleProgressMonitor monitor) throws SiteWhereException {
    try {/*from  www  .j  a va 2 s. c om*/
        MongoClientOptions.Builder builder = new MongoClientOptions.Builder();
        builder.maxConnectionIdleTime(60 * 60 * 1000); // 1hour

        getLogger().info("MongoDB Connection: hosts=" + getHostname().getValue() + " ports="
                + getConfiguration().getPort() + " replicaSet=" + getConfiguration().getReplicaSetName());

        // Parse hostname(s) and port(s) into address list.
        List<ServerAddress> addresses = parseServerAddresses();

        // Indicator for whether a replica set is being used.
        boolean isUsingReplicaSet = ((addresses.size() > 1)
                && (!StringUtils.isEmpty(getConfiguration().getReplicaSetName())));

        if (isUsingReplicaSet) {
            getLogger().info("MongoDB using replicated mode.");
        } else {
            getLogger().info("MongoDB using standalone mode.");
        }

        // Handle authenticated access.
        if ((getConfiguration().getUsername() != null) && (getConfiguration().getPassword() != null)) {
            MongoCredential credential = MongoCredential.createCredential(getConfiguration().getUsername(),
                    getConfiguration().getAuthDatabaseName(), getConfiguration().getPassword().toCharArray());
            if (isUsingReplicaSet) {
                this.client = new MongoClient(addresses, Arrays.asList(credential), builder.build());
            } else {
                this.client = new MongoClient(addresses.get(0), Arrays.asList(credential), builder.build());
            }
        }

        // Handle unauthenticated access.
        else {
            if (isUsingReplicaSet) {
                this.client = new MongoClient(addresses, builder.build());
            } else {
                this.client = new MongoClient(addresses.get(0), builder.build());
            }
        }

        // Handle automatic configuration of replication.
        if ((isUsingReplicaSet) && (getConfiguration().isAutoConfigureReplication())) {
            doAutoConfigureReplication(addresses);
        }

        // Force interaction to test connectivity.
        getDatabase().listCollectionNames();
    } catch (MongoTimeoutException e) {
        throw new SiteWhereException("Timed out connecting to MongoDB instance. "
                + "Verify that MongoDB is running on " + getHostname().getValue() + ":"
                + getConfiguration().getPort() + " and restart server.", e);
    }
}

From source file:com.sitewhere.mongodb.MongoDbClient.java

License:Open Source License

/**
 * Create a connection to the primary in a replica set.
 * //from  w w  w  .  j a v a2 s .  com
 * @param addresses
 * @return
 */
protected MongoClient getPrimaryConnection(List<ServerAddress> addresses) {
    MongoClientOptions.Builder builder = new MongoClientOptions.Builder();
    if ((getConfiguration().getUsername() != null) && (getConfiguration().getPassword() != null)) {
        MongoCredential credential = MongoCredential.createCredential(getConfiguration().getUsername(),
                getConfiguration().getAuthDatabaseName(), getConfiguration().getPassword().toCharArray());
        return new MongoClient(addresses.get(0), Arrays.asList(credential), builder.build());
    } else {
        return new MongoClient(addresses.get(0), builder.build());
    }
}

From source file:com.socialsky.mods.MongoPersistor.java

License:Apache License

@Override
public void start() {
    super.start();

    address = getOptionalStringConfig("address", "vertx.mongopersistor");

    host = getOptionalStringConfig("host", "localhost");
    port = getOptionalIntConfig("port", 27017);
    dbName = getOptionalStringConfig("db_name", "default_db");
    username = getOptionalStringConfig("username", null);
    password = getOptionalStringConfig("password", null);
    readPreference = ReadPreference.valueOf(getOptionalStringConfig("read_preference", "primary"));
    int poolSize = getOptionalIntConfig("pool_size", 10);
    autoConnectRetry = getOptionalBooleanConfig("auto_connect_retry", true);
    socketTimeout = getOptionalIntConfig("socket_timeout", 60000);
    useSSL = getOptionalBooleanConfig("use_ssl", false);

    JsonArray seedsProperty = config.getArray("seeds");

    try {/*from w  w  w.j  av a  2 s . c om*/
        MongoClientOptions.Builder builder = new MongoClientOptions.Builder();
        builder.connectionsPerHost(poolSize);
        builder.autoConnectRetry(autoConnectRetry);
        builder.socketTimeout(socketTimeout);
        builder.readPreference(readPreference);

        if (useSSL) {
            builder.socketFactory(SSLSocketFactory.getDefault());
        }

        if (seedsProperty == null) {
            ServerAddress address = new ServerAddress(host, port);
            mongo = new MongoClient(address, builder.build());
        } else {
            List<ServerAddress> seeds = makeSeeds(seedsProperty);
            mongo = new MongoClient(seeds, builder.build());
        }

        db = mongo.getDB(dbName);
        if (username != null && password != null) {
            db.authenticate(username, password.toCharArray());
        }
    } catch (UnknownHostException e) {
        logger.error("Failed to connect to mongo server", e);
    }
    eb.registerHandler(address, this);
}

From source file:com.softinstigate.restheart.db.MongoDBClientSingleton.java

License:Open Source License

private void setup() throws UnknownHostException {
    if (initialized) {
        List<ServerAddress> servers = new ArrayList<>();
        List<MongoCredential> credentials = new ArrayList<>();

        for (Map<String, Object> mongoServer : mongoServers) {
            Object mongoHost = mongoServer.get(Configuration.MONGO_HOST_KEY);
            Object mongoPort = mongoServer.get(Configuration.MONGO_PORT_KEY);

            if (mongoHost != null && mongoHost instanceof String && mongoPort != null
                    && mongoPort instanceof Integer) {
                servers.add(new ServerAddress((String) mongoHost, (int) mongoPort));
            }/*from   w w w  .j  av a  2s. co  m*/
        }

        if (mongoCredentials != null) {
            for (Map<String, Object> mongoCredential : mongoCredentials) {
                Object mongoAuthDb = mongoCredential.get(Configuration.MONGO_AUTH_DB_KEY);
                Object mongoUser = mongoCredential.get(Configuration.MONGO_USER_KEY);
                Object mongoPwd = mongoCredential.get(Configuration.MONGO_PASSWORD_KEY);

                if (mongoAuthDb != null && mongoAuthDb instanceof String && mongoUser != null
                        && mongoUser instanceof String && mongoPwd != null && mongoPwd instanceof String) {
                    credentials.add(MongoCredential.createMongoCRCredential((String) mongoUser,
                            (String) mongoAuthDb, ((String) mongoPwd).toCharArray()));
                }
            }
        }

        MongoClientOptions opts = MongoClientOptions.builder().readPreference(ReadPreference.primaryPreferred())
                .writeConcern(WriteConcern.ACKNOWLEDGED).build();

        mongoClient = new MongoClient(servers, credentials, opts);
    }
}

From source file:com.squid.kraken.v4.persistence.MongoDBHelper.java

License:Open Source License

private static MongoClient getMongo(String mongoName) {
    MongoClient mongoInstance;/*from ww w  .  j a v  a 2 s .co  m*/

    String mongoHostProp = KrakenConfig.getProperty("kraken.mongodb.host");
    String[] mongoHostList = mongoHostProp.split(",");

    String mongoPortProp = KrakenConfig.getProperty("kraken.mongodb.port");
    String[] mongoPortList = mongoPortProp.split(",");

    MongoClientOptions opt = MongoClientOptions.builder().connectionsPerHost(250).build();
    List<ServerAddress> addrs = new ArrayList<ServerAddress>();
    for (int i = 0; i < mongoHostList.length; i++) {
        int mongoPort = Integer.parseInt(mongoPortList[i]);
        addrs.add(new ServerAddress(mongoHostList[i], mongoPort));
    }

    // Auth

    String mongoUser = KrakenConfig.getProperty("kraken.mongodb.user", true);
    String mongoPwd = KrakenConfig.getProperty("kraken.mongodb.password", true);

    logger.info("kraken.mongodb.dbname : " + mongoName);
    logger.info("kraken.mongodb.user : " + mongoUser);
    List<MongoCredential> credentials = new ArrayList<MongoCredential>();
    if (mongoUser != null) {
        credentials.add(MongoCredential.createMongoCRCredential(mongoUser, mongoName, mongoPwd.toCharArray()));
    }

    mongoInstance = new MongoClient(addrs, credentials, opt);

    return mongoInstance;
}