Class MongoClientSettings.Builder
- Enclosing class:
- MongoClientSettings
MongoClientSettings
so that MongoClientSettings
can be immutable, and to support easier construction
through chaining.-
Method Summary
Modifier and TypeMethodDescriptionaddCommandListener
(CommandListener commandListener) Adds the given command listener.applicationName
(String applicationName) Sets the logical name of the application using this MongoClient.applyConnectionString
(ConnectionString connectionString) Takes the settings from the givenConnectionString
and applies them to the builderApplies theClusterSettings.Builder
block and then sets the clusterSettings.Applies theConnectionPoolSettings.Builder
block and then sets the connectionPoolSettings.Applies theLoggerSettings.Builder
block and then sets the loggerSettings.Applies theServerSettings.Builder
block and then sets the serverSettings.Applies theSocketSettings.Builder
block and then sets the socketSettings.Applies theSslSettings.Builder
block and then sets the sslSettings.autoEncryptionSettings
(AutoEncryptionSettings autoEncryptionSettings) Sets the auto-encryption settingsbuild()
Build an instance ofMongoClientSettings
.codecRegistry
(CodecRegistry codecRegistry) Sets the codec registrycommandListenerList
(List<CommandListener> commandListeners) Sets the command listenerscompressorList
(List<MongoCompressor> compressorList) Sets the compressors to use for compressing messages to the server.contextProvider
(ContextProvider contextProvider) Sets the context providercredential
(MongoCredential credential) Sets the credential.Sets theDnsClient
to use for resolving DNS queries.inetAddressResolver
(InetAddressResolver inetAddressResolver) Sets theInetAddressResolver
to use for looking up theInetAddress
instances for each host.readConcern
(ReadConcern readConcern) Sets the read concern.readPreference
(ReadPreference readPreference) Sets the read preference.retryReads
(boolean retryReads) Sets whether reads should be retried if they fail due to a network error.retryWrites
(boolean retryWrites) Sets whether writes should be retried if they fail due to a network error.Sets the server API to use when sending commands to the server.Sets the time limit for the full execution of an operation.transportSettings
(TransportSettings transportSettings) Sets theTransportSettings
to apply.uuidRepresentation
(UuidRepresentation uuidRepresentation) Sets the UUID representation to use when encoding instances ofUUID
and when decoding BSON binary values with subtype of 3.writeConcern
(WriteConcern writeConcern) Sets the write concern.
-
Method Details
-
applyConnectionString
Takes the settings from the givenConnectionString
and applies them to the builder- Parameters:
connectionString
- the connection string containing details of how to connect to MongoDB- Returns:
- this
-
applyToLoggerSettings
Applies theLoggerSettings.Builder
block and then sets the loggerSettings.- Parameters:
block
- the block to apply to the LoggerSettings.- Returns:
- this
- Since:
- 4.9
- See Also:
-
applyToClusterSettings
Applies theClusterSettings.Builder
block and then sets the clusterSettings.- Parameters:
block
- the block to apply to the ClusterSettings.- Returns:
- this
- See Also:
-
applyToSocketSettings
Applies theSocketSettings.Builder
block and then sets the socketSettings.- Parameters:
block
- the block to apply to the SocketSettings.- Returns:
- this
- See Also:
-
applyToConnectionPoolSettings
public MongoClientSettings.Builder applyToConnectionPoolSettings(Block<ConnectionPoolSettings.Builder> block) Applies theConnectionPoolSettings.Builder
block and then sets the connectionPoolSettings.- Parameters:
block
- the block to apply to the ConnectionPoolSettings.- Returns:
- this
- See Also:
-
applyToServerSettings
Applies theServerSettings.Builder
block and then sets the serverSettings.- Parameters:
block
- the block to apply to the ServerSettings.- Returns:
- this
- See Also:
-
applyToSslSettings
Applies theSslSettings.Builder
block and then sets the sslSettings.- Parameters:
block
- the block to apply to the SslSettings.- Returns:
- this
- See Also:
-
readPreference
Sets the read preference.- Parameters:
readPreference
- read preference- Returns:
- this
- See Also:
-
writeConcern
Sets the write concern.- Parameters:
writeConcern
- the write concern- Returns:
- this
- See Also:
-
retryWrites
Sets whether writes should be retried if they fail due to a network error.Starting with the 3.11.0 release, the default value is true
- Parameters:
retryWrites
- sets if writes should be retried if they fail due to a network error.- Returns:
- this
- See Also:
- Since server release
- 3.6
-
retryReads
Sets whether reads should be retried if they fail due to a network error.- Parameters:
retryReads
- sets if reads should be retried if they fail due to a network error.- Returns:
- this
- Since:
- 3.11
- See Also:
- Since server release
- 3.6
-
readConcern
Sets the read concern.- Parameters:
readConcern
- the read concern- Returns:
- this
- MongoDB documentation
- Read Concern
- Since server release
- 3.2
-
credential
Sets the credential.- Parameters:
credential
- the credential- Returns:
- this
-
codecRegistry
Sets the codec registryThe
CodecRegistry
configured by this method is effectively treated by the driver as an instance ofCodecProvider
, whichCodecRegistry
extends. So there is no benefit to defining a class that implementsCodecRegistry
. Rather, an application should always createCodecRegistry
instances using the factory methods inCodecRegistries
.- Parameters:
codecRegistry
- the codec registry- Returns:
- this
- See Also:
-
transportSettings
Sets theTransportSettings
to apply.- Parameters:
transportSettings
- the transport settings- Returns:
- this
- See Also:
-
addCommandListener
Adds the given command listener.- Parameters:
commandListener
- the command listener- Returns:
- this
-
commandListenerList
Sets the command listeners- Parameters:
commandListeners
- the list of command listeners- Returns:
- this
-
applicationName
Sets the logical name of the application using this MongoClient. The application name may be used by the client to identify the application to the server, for use in server logs, slow query logs, and profile collection.- Parameters:
applicationName
- the logical name of the application using this MongoClient. It may be null. The UTF-8 encoding may not exceed 128 bytes.- Returns:
- this
- See Also:
- Since server release
- 3.4
-
compressorList
Sets the compressors to use for compressing messages to the server. The driver will use the first compressor in the list that the server is configured to support.- Parameters:
compressorList
- the list of compressors to request- Returns:
- this
- See Also:
- Since server release
- 3.4
-
uuidRepresentation
Sets the UUID representation to use when encoding instances ofUUID
and when decoding BSON binary values with subtype of 3.See
MongoClientSettings.getUuidRepresentation()
for recommendations on settings this value- Parameters:
uuidRepresentation
- the UUID representation, which may not be null- Returns:
- this
- Since:
- 3.12
-
serverApi
Sets the server API to use when sending commands to the server.This is required for some MongoDB deployments.
- Parameters:
serverApi
- the server API, which may not be null- Returns:
- this
- Since:
- 4.3
-
autoEncryptionSettings
public MongoClientSettings.Builder autoEncryptionSettings(@Nullable AutoEncryptionSettings autoEncryptionSettings) Sets the auto-encryption settingsA separate, internal
MongoClient
is created if any of the following are true:AutoEncryptionSettings.keyVaultClient
is not passedAutoEncryptionSettings.bypassAutomaticEncryption
isfalse
MongoClient
is created, it is configured with the same options as the parentMongoClient
exceptminPoolSize
is set to0
andAutoEncryptionSettings
is omitted.- Parameters:
autoEncryptionSettings
- the auto-encryption settings- Returns:
- this
- Since:
- 3.11
- See Also:
-
contextProvider
Sets the context providerWhen used with the synchronous driver, this must be an instance of
com.mongodb.client.SynchronousContextProvider
. When used with the reactive streams driver, this must be an instance ofcom.mongodb.reactivestreams.client.ReactiveContextProvider
.- Parameters:
contextProvider
- the context provider- Returns:
- this
- Since:
- 4.4
-
dnsClient
Sets theDnsClient
to use for resolving DNS queries.If set, it will be used to resolve SRV and TXT records for mongodb+srv connections. Otherwise, implementation of
DnsClientProvider
will be discovered viaServiceLoader
and used to create an instance ofDnsClient
. If no implementation is discovered, thencom.sun.jndi.dns.DnsContextFactory
will be used to resolve these records.If applying a connection string to these settings, care must be taken to also pass the same
DnsClient
as an argument to theConnectionString
constructor.- Parameters:
dnsClient
- the DNS client- Returns:
- the DNS client
- Since:
- 4.10
- See Also:
-
inetAddressResolver
public MongoClientSettings.Builder inetAddressResolver(@Nullable InetAddressResolver inetAddressResolver) Sets theInetAddressResolver
to use for looking up theInetAddress
instances for each host.If set, it will be used to look up the
InetAddress
for each host, viaInetAddressResolver.lookupByName(String)
. Otherwise, an implementation ofInetAddressResolverProvider
will be discovered viaServiceLoader
and used to create an instance ofInetAddressResolver
. If no implementation is discovered,InetAddress.getAllByName(String)
will be used to lookup theInetAddress
instances for a host.- Parameters:
inetAddressResolver
- the InetAddress provider- Returns:
- the
InetAddress
resolver - Since:
- 4.10
- See Also:
-
timeout
Sets the time limit for the full execution of an operation.null
means that the timeout mechanism for operations will defer to using:waitQueueTimeoutMS
: The maximum wait time in milliseconds that a thread may wait for a connection to become availablesocketTimeoutMS
: How long a send or receive on a socket can take before timing out.wTimeoutMS
: How long the server will wait for the write concern to be fulfilled before timing out.maxTimeMS
: The cumulative time limit for processing operations on a cursor. See: cursor.maxTimeMS.maxCommitTimeMS
: The maximum amount of time to allow a singlecommitTransaction
command to execute. See:TransactionOptions.getMaxCommitTime(java.util.concurrent.TimeUnit)
.
0
means infinite timeout.> 0
The time limit to use for the full execution of an operation.
- Parameters:
timeout
- the timeouttimeUnit
- the time unit- Returns:
- this
- Since:
- 5.2
- See Also:
-
build
Build an instance ofMongoClientSettings
.- Returns:
- the settings from this builder
-