Example usage for com.mongodb ServerAddress ServerAddress

List of usage examples for com.mongodb ServerAddress ServerAddress

Introduction

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

Prototype

public ServerAddress(@Nullable final String host, final int port) 

Source Link

Document

Creates a ServerAddress

Usage

From source file:io.gravitee.am.identityprovider.mongo.authentication.spring.MongoAuthenticationProviderConfiguration.java

License:Apache License

@Bean
public MongoClient mongoClient() {
    MongoClient mongoClient;/*from  ww w. jav  a 2  s.  c  o  m*/
    if ((this.configuration.getUri() != null) && (!this.configuration.getUri().isEmpty())) {
        mongoClient = MongoClients.create(this.configuration.getUri());
    } else {
        ServerAddress serverAddress = new ServerAddress(this.configuration.getHost(),
                this.configuration.getPort());
        ClusterSettings clusterSettings = ClusterSettings.builder().hosts(asList(serverAddress)).build();
        MongoClientSettings.Builder settings = MongoClientSettings.builder().clusterSettings(clusterSettings);
        if (this.configuration.isEnableCredentials()) {
            MongoCredential credential = MongoCredential.createCredential(
                    this.configuration.getUsernameCredentials(), this.configuration.getDatabaseCredentials(),
                    this.configuration.getPasswordCredentials().toCharArray());
            settings.credential(credential);
        }
        mongoClient = MongoClients.create(settings.build());
    }
    return mongoClient;
}

From source file:io.gravitee.am.repository.mongodb.common.MongoFactory.java

License:Apache License

@Override
public MongoClient getObject() throws Exception {
    // Client settings
    MongoClientSettings.Builder builder = MongoClientSettings.builder();
    builder.writeConcern(WriteConcern.ACKNOWLEDGED);

    // codec configuration for pojo mapping
    CodecRegistry pojoCodecRegistry = fromRegistries(MongoClients.getDefaultCodecRegistry(),
            fromProviders(PojoCodecProvider.builder().automatic(true).build()));
    builder.codecRegistry(pojoCodecRegistry);

    // Trying to get the MongoClientURI if uri property is defined
    String uri = readPropertyValue(propertyPrefix + "uri");
    if (uri != null && !uri.isEmpty()) {
        // The builder can be configured with default options, which may be overridden by options specified in
        // the URI string.
        MongoClientSettings settings = builder.codecRegistry(pojoCodecRegistry)
                .applyConnectionString(new ConnectionString(uri)).build();

        return MongoClients.create(settings);
    } else {//w w w.j  a v  a2  s . c  o  m
        // Advanced configuration
        SocketSettings.Builder socketBuilder = SocketSettings.builder();
        ClusterSettings.Builder clusterBuilder = ClusterSettings.builder();
        ConnectionPoolSettings.Builder connectionPoolBuilder = ConnectionPoolSettings.builder();
        ServerSettings.Builder serverBuilder = ServerSettings.builder();
        SslSettings.Builder sslBuilder = SslSettings.builder();

        Integer connectTimeout = readPropertyValue(propertyPrefix + "connectTimeout", Integer.class, 1000);
        Integer maxWaitTime = readPropertyValue(propertyPrefix + "maxWaitTime", Integer.class);
        Integer socketTimeout = readPropertyValue(propertyPrefix + "socketTimeout", Integer.class, 1000);
        Boolean socketKeepAlive = readPropertyValue(propertyPrefix + "socketKeepAlive", Boolean.class, true);
        Integer maxConnectionLifeTime = readPropertyValue(propertyPrefix + "maxConnectionLifeTime",
                Integer.class);
        Integer maxConnectionIdleTime = readPropertyValue(propertyPrefix + "maxConnectionIdleTime",
                Integer.class);

        // We do not want to wait for a server
        Integer serverSelectionTimeout = readPropertyValue(propertyPrefix + "serverSelectionTimeout",
                Integer.class, 1000);
        Integer minHeartbeatFrequency = readPropertyValue(propertyPrefix + "minHeartbeatFrequency",
                Integer.class);
        String description = readPropertyValue(propertyPrefix + "description", String.class, "gravitee.io");
        Integer heartbeatFrequency = readPropertyValue(propertyPrefix + "heartbeatFrequency", Integer.class);
        Boolean sslEnabled = readPropertyValue(propertyPrefix + "sslEnabled", Boolean.class);

        if (maxWaitTime != null)
            connectionPoolBuilder.maxWaitTime(maxWaitTime, TimeUnit.MILLISECONDS);
        if (connectTimeout != null)
            socketBuilder.connectTimeout(connectTimeout, TimeUnit.MILLISECONDS);
        if (socketTimeout != null)
            socketBuilder.readTimeout(socketTimeout, TimeUnit.MILLISECONDS);
        if (socketKeepAlive != null)
            socketBuilder.keepAlive(socketKeepAlive);
        if (maxConnectionLifeTime != null)
            connectionPoolBuilder.maxConnectionLifeTime(maxConnectionLifeTime, TimeUnit.MILLISECONDS);
        if (maxConnectionIdleTime != null)
            connectionPoolBuilder.maxConnectionIdleTime(maxConnectionIdleTime, TimeUnit.MILLISECONDS);
        if (minHeartbeatFrequency != null)
            serverBuilder.minHeartbeatFrequency(minHeartbeatFrequency, TimeUnit.MILLISECONDS);
        if (description != null)
            clusterBuilder.description(description);
        if (heartbeatFrequency != null)
            serverBuilder.heartbeatFrequency(heartbeatFrequency, TimeUnit.MILLISECONDS);
        if (sslEnabled != null)
            sslBuilder.enabled(sslEnabled);
        if (serverSelectionTimeout != null)
            clusterBuilder.serverSelectionTimeout(serverSelectionTimeout, TimeUnit.MILLISECONDS);

        // credentials option
        String username = readPropertyValue(propertyPrefix + "username");
        String password = readPropertyValue(propertyPrefix + "password");
        MongoCredential credentials = null;
        if (username != null || password != null) {
            String authSource = readPropertyValue(propertyPrefix + "authSource", String.class, "gravitee-am");
            credentials = MongoCredential.createCredential(username, authSource, password.toCharArray());
            builder.credential(credentials);
        }

        // clustering option
        List<ServerAddress> seeds;
        int serversCount = getServersCount();
        if (serversCount == 0) {
            String host = readPropertyValue(propertyPrefix + "host", String.class, "localhost");
            int port = readPropertyValue(propertyPrefix + "port", int.class, 27017);
            seeds = Collections.singletonList(new ServerAddress(host, port));
        } else {
            seeds = new ArrayList<>(serversCount);
            for (int i = 0; i < serversCount; i++) {
                seeds.add(buildServerAddress(i));
            }
        }
        clusterBuilder.hosts(seeds);

        SocketSettings socketSettings = socketBuilder.build();
        ClusterSettings clusterSettings = clusterBuilder.build();
        ConnectionPoolSettings connectionPoolSettings = connectionPoolBuilder.build();
        ServerSettings serverSettings = serverBuilder.build();
        SslSettings sslSettings = sslBuilder.build();
        MongoClientSettings settings = builder
                .applyToClusterSettings(builder1 -> builder1.applySettings(clusterSettings))
                .applyToSocketSettings(builder1 -> builder1.applySettings(socketSettings))
                .applyToConnectionPoolSettings(builder1 -> builder1.applySettings(connectionPoolSettings))
                .applyToServerSettings(builder1 -> builder1.applySettings(serverSettings))
                .applyToSslSettings(builder1 -> builder1.applySettings(sslSettings)).build();

        return MongoClients.create(settings);
    }
}

From source file:io.gravitee.am.repository.mongodb.common.MongoFactory.java

License:Apache License

private ServerAddress buildServerAddress(int idx) {
    String host = environment.getProperty(propertyPrefix + "servers[" + idx + "].host");
    int port = readPropertyValue(propertyPrefix + "servers[" + idx + "].port", int.class, 27017);

    return new ServerAddress(host, port);
}

From source file:io.gravitee.am.repository.mongodb.management.ManagementRepositoryTestConfiguration.java

License:Apache License

@Bean(name = "managementMongo")
public MongoClient mongo() {
    // cluster configuration
    ClusterSettings clusterSettings = ClusterSettings.builder()
            .hosts(Collections.singletonList(new ServerAddress("localhost", 12345))).build();
    // codec configuration
    CodecRegistry pojoCodecRegistry = fromRegistries(MongoClients.getDefaultCodecRegistry(),
            fromProviders(PojoCodecProvider.builder().automatic(true).build()));

    MongoClientSettings settings = MongoClientSettings.builder().clusterSettings(clusterSettings)
            .codecRegistry(pojoCodecRegistry).writeConcern(WriteConcern.ACKNOWLEDGED).build();
    return MongoClients.create(settings);
}

From source file:io.gravitee.am.repository.mongodb.oauth2.OAuth2RepositoryTestConfiguration.java

License:Apache License

@Bean(name = "oauth2Mongo")
public MongoClient mongo() {
    // cluster configuration
    ClusterSettings clusterSettings = ClusterSettings.builder()
            .hosts(Collections.singletonList(new ServerAddress("localhost", 12346))).build();
    // codec configuration
    CodecRegistry pojoCodecRegistry = fromRegistries(MongoClients.getDefaultCodecRegistry(),
            fromProviders(PojoCodecProvider.builder().automatic(true).build()));

    MongoClientSettings settings = MongoClientSettings.builder().clusterSettings(clusterSettings)
            .codecRegistry(pojoCodecRegistry).writeConcern(WriteConcern.ACKNOWLEDGED).build();
    return MongoClients.create(settings);
}

From source file:io.gravitee.repository.mongodb.common.MongoFactory.java

License:Apache License

@Override
public Mongo getObject() throws Exception {
    MongoClientOptions.Builder builder = builder();

    // Trying to get the MongoClientURI if uri property is defined
    String uri = readPropertyValue(propertyPrefix + "uri");

    if (uri != null && !uri.isEmpty()) {
        // The builder can be configured with default options, which may be overridden by options specified in
        // the URI string.
        return new MongoClient(new MongoClientURI(uri, builder));
    } else {//ww w .  j a  va 2s  .  co m

        String databaseName = readPropertyValue(propertyPrefix + "dbname", String.class, "gravitee");

        String username = readPropertyValue(propertyPrefix + "username");
        String password = readPropertyValue(propertyPrefix + "password");

        List<MongoCredential> credentials = null;
        if (username != null || password != null) {
            credentials = Collections.singletonList(
                    MongoCredential.createMongoCRCredential(username, databaseName, password.toCharArray()));
        }

        List<ServerAddress> seeds;
        int serversCount = getServersCount();

        if (serversCount == 0) {
            String host = readPropertyValue(propertyPrefix + "host", String.class, "localhost");
            int port = readPropertyValue(propertyPrefix + "port", int.class, 27017);
            seeds = Collections.singletonList(new ServerAddress(host, port));
        } else {
            seeds = new ArrayList<>(serversCount);
            for (int i = 0; i < serversCount; i++) {
                seeds.add(buildServerAddress(i));
            }
        }

        MongoClientOptions options = builder.build();
        if (credentials == null) {
            return new MongoClient(seeds, options);
        }

        return new MongoClient(seeds, credentials, options);
    }
}

From source file:io.lumeer.storage.mongodb.MongoDbStorage.java

License:Open Source License

@Override
public void connect(final List<StorageConnection> connections, final String database, final Boolean useSsl) {
    final List<ServerAddress> addresses = new ArrayList<>();

    connections.forEach(c -> {/* w w  w .  j  a va 2 s. co  m*/
        addresses.add(new ServerAddress(c.getHost(), c.getPort()));
    });

    MongoCredential credential = null;
    if (connections.size() > 0 && connections.get(0).getUserName() != null
            && !connections.get(0).getUserName().isEmpty()) {
        credential = MongoCredential.createScramSha1Credential(connections.get(0).getUserName(), database,
                connections.get(0).getPassword());
    }

    final MongoClientOptions.Builder optionsBuilder = (new MongoClientOptions.Builder()).connectTimeout(30000);

    if (useSsl) {
        optionsBuilder.sslEnabled(true).socketFactory(NaiveTrustManager.getSocketFactory())
                .sslInvalidHostNameAllowed(true);
    }

    final CodecRegistry defaultRegistry = MongoClient.getDefaultCodecRegistry();
    final CodecRegistry codecRegistry = CodecRegistries.fromCodecs(new BigDecimalCodec(), new RoleCodec());
    final CodecRegistry providersRegistry = CodecRegistries.fromProviders(new PermissionsCodecProvider(),
            new PermissionCodecProvider(), new QueryCodecProvider(), new ViewCodecProvider(),
            new AttributeCodecProvider(), new LinkInstanceCodecProvider(), new LinkTypeCodecProvider(),
            new UserCodecProvider(), new GroupCodecProvider(), new PaymentCodecProvider(),
            new CompanyContactCodedProvider(), new UserLoginEventCodecProvider(), new FeedbackCodecProvider());
    final CodecRegistry registry = CodecRegistries.fromRegistries(defaultRegistry, codecRegistry,
            providersRegistry);

    if (credential != null) {
        this.mongoClient = new MongoClient(addresses, credential,
                optionsBuilder.codecRegistry(registry).build());
    } else {
        this.mongoClient = new MongoClient(addresses, optionsBuilder.codecRegistry(registry).build());
    }

    this.database = mongoClient.getDatabase(database);
    this.datastore = (AdvancedDatastore) morphia.createDatastore(this.mongoClient, database);
}

From source file:io.opentracing.contrib.mongo.TracingMongoClient.java

License:Apache License

public TracingMongoClient(Tracer tracer, final String host, final int port) {
    this(tracer, new ServerAddress(host, port));
}

From source file:io.seventyone.mongoutils.MongoServiceImplementation.java

License:Apache License

public MongoServiceImplementation(String host, int port, String dbName, String user, String password) {

    ServerAddress serverAddress = new ServerAddress(host, port);
    if (StringUtils.isBlank(user)) {
        this.mongoClient = new MongoClient(serverAddress);
    } else {//w  w  w . ja  v a  2s.  c  om
        MongoCredential credential = MongoCredential.createCredential(user, dbName, password.toCharArray());
        this.mongoClient = new MongoClient(serverAddress, Collections.singletonList(credential));
    }

    this.db = this.mongoClient.getDatabase(dbName);
}

From source file:it.f2informatica.mongodb.MongoDBApplicationConfig.java

License:Apache License

@Bean
@Override//from  w  w  w  . j  a  v a2 s.c  om
public Mongo mongo() throws UnknownHostException {
    return new MongoClient(new ServerAddress(host, Integer.parseInt(defaultPort)), mongoClientOptions());
}