static SocketSettings socket(final String path, final ConnectionString cstr, final Config dbconf) { SocketSettings.Builder settings = SocketSettings.builder().applyConnectionString(cstr); withConf(path, dbconf, c -> { withMs("connectTimeout", c, s -> settings.connectTimeout(s.intValue(), TimeUnit.MILLISECONDS)); withBool("keepAlive", c, settings::keepAlive); withMs("readTimeout", c, s -> settings.readTimeout(s.intValue(), TimeUnit.MILLISECONDS)); withInt("receiveBufferSize", c, settings::receiveBufferSize); withInt("sendBufferSize", c, settings::sendBufferSize); }); return settings.build(); }
private MongoClientSettings buildMongoClientSettings(MongoDbConfig.ClientConfig clientConfig, String clientName, Coffig coffig) { MongoClientSettings.Builder settingsBuilder = MongoClientSettings.builder(); AllSettings allSettings = coffig.get(AllSettings.class, String.format("mongoDb.clients.%s.settings", clientName)); // Apply hosts List<String> hosts = clientConfig.getHosts(); if (hosts.size() > 0) { allSettings.cluster.get().hosts(buildServerAddresses(clientName, hosts)); } // Apply credentials settingsBuilder.credentialList(buildMongoCredentials(clientName, clientConfig.getCredentials())); // Apply global settings Optional.ofNullable(allSettings.readPreference).ifPresent(settingsBuilder::readPreference); Optional.ofNullable(allSettings.writeConcern).ifPresent(settingsBuilder::writeConcern); Optional.ofNullable(allSettings.codecRegistry).map(Classes::instantiateDefault).ifPresent(settingsBuilder::codecRegistry); // Apply sub-settings settingsBuilder.clusterSettings(allSettings.cluster.get().build()); settingsBuilder.socketSettings(allSettings.socket.get().build()); settingsBuilder.heartbeatSocketSettings(allSettings.heartbeatSocket.get().build()); settingsBuilder.connectionPoolSettings(allSettings.connectionPool.get().build()); settingsBuilder.serverSettings(allSettings.server.get().build()); settingsBuilder.sslSettings(allSettings.ssl.get().build()); return settingsBuilder.build(); }
SocketSettings socketSettings = socketBuilder.build(); ClusterSettings clusterSettings = clusterBuilder.build(); ConnectionPoolSettings connectionPoolSettings = connectionPoolBuilder.build();
private MongoClientSettings(final Builder builder) { readPreference = builder.readPreference; writeConcern = builder.writeConcern; retryWrites = builder.retryWrites; readConcern = builder.readConcern; credential = builder.credential; streamFactoryFactory = builder.streamFactoryFactory; codecRegistry = builder.codecRegistry; commandListeners = builder.commandListeners; applicationName = builder.applicationName; clusterSettings = builder.clusterSettingsBuilder.build(); serverSettings = builder.serverSettingsBuilder.build(); socketSettings = builder.socketSettingsBuilder.build(); connectionPoolSettings = builder.connectionPoolSettingsBuilder.build(); sslSettings = builder.sslSettingsBuilder.build(); compressorList = builder.compressorList; SocketSettings.Builder heartbeatSocketSettingsBuilder = SocketSettings.builder() .readTimeout(socketSettings.getConnectTimeout(MILLISECONDS), MILLISECONDS) .connectTimeout(socketSettings.getConnectTimeout(MILLISECONDS), MILLISECONDS); heartbeatSocketSettings = heartbeatSocketSettingsBuilder.build(); } }
static SocketSettings socket(final String path, final ConnectionString cstr, final Config dbconf) { SocketSettings.Builder settings = SocketSettings.builder().applyConnectionString(cstr); withConf(path, dbconf, c -> { withMs("connectTimeout", c, s -> settings.connectTimeout(s.intValue(), TimeUnit.MILLISECONDS)); withBool("keepAlive", c, settings::keepAlive); withMs("readTimeout", c, s -> settings.readTimeout(s.intValue(), TimeUnit.MILLISECONDS)); withInt("receiveBufferSize", c, settings::receiveBufferSize); withInt("sendBufferSize", c, settings::sendBufferSize); }); return settings.build(); }
private MongoClientSettings(final Builder builder) { readPreference = builder.readPreference; writeConcern = builder.writeConcern; retryWrites = builder.retryWrites; readConcern = builder.readConcern; credential = builder.credential; streamFactoryFactory = builder.streamFactoryFactory; codecRegistry = builder.codecRegistry; commandListeners = builder.commandListeners; applicationName = builder.applicationName; clusterSettings = builder.clusterSettingsBuilder.build(); serverSettings = builder.serverSettingsBuilder.build(); socketSettings = builder.socketSettingsBuilder.build(); connectionPoolSettings = builder.connectionPoolSettingsBuilder.build(); sslSettings = builder.sslSettingsBuilder.build(); compressorList = builder.compressorList; SocketSettings.Builder heartbeatSocketSettingsBuilder = SocketSettings.builder() .readTimeout(socketSettings.getConnectTimeout(MILLISECONDS), MILLISECONDS) .connectTimeout(socketSettings.getConnectTimeout(MILLISECONDS), MILLISECONDS); heartbeatSocketSettings = heartbeatSocketSettingsBuilder.build(); } }