Package com.mongodb.connection
Class ClusterSettings.Builder
- java.lang.Object
-
- com.mongodb.connection.ClusterSettings.Builder
-
- Enclosing class:
- ClusterSettings
@NotThreadSafe public static final class ClusterSettings.Builder extends Object
A builder for the cluster settings.
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ClusterSettings.Builder
addClusterListener(ClusterListener clusterListener)
Adds a cluster listener.ClusterSettings.Builder
applyConnectionString(ConnectionString connectionString)
Takes the settings from the givenConnectionString
and applies them to the builderClusterSettings.Builder
applySettings(ClusterSettings clusterSettings)
Applies the clusterSettings to the builderClusterSettings
build()
Build the settings from the builder.ClusterSettings.Builder
hosts(List<ServerAddress> hosts)
Sets the hosts for the cluster.ClusterSettings.Builder
localThreshold(long localThreshold, TimeUnit timeUnit)
Sets the local threshold.ClusterSettings.Builder
mode(ClusterConnectionMode mode)
Sets the mode for this cluster.ClusterSettings.Builder
requiredClusterType(ClusterType requiredClusterType)
Sets the required cluster type for the cluster.ClusterSettings.Builder
requiredReplicaSetName(String requiredReplicaSetName)
Sets the required replica set name for the cluster.ClusterSettings.Builder
serverSelectionTimeout(long serverSelectionTimeout, TimeUnit timeUnit)
Sets the timeout to apply when selecting a server.ClusterSettings.Builder
serverSelector(ServerSelector serverSelector)
Adds a server selector for the cluster to apply before selecting a server.ClusterSettings.Builder
srvHost(String srvHost)
Sets the host name to use in order to look up an SRV DNS record to find the MongoDB hosts.ClusterSettings.Builder
srvMaxHosts(Integer srvMaxHosts)
Sets the maximum number of hosts to connect to when using SRV protocol.
-
-
-
Method Detail
-
applySettings
public ClusterSettings.Builder applySettings(ClusterSettings clusterSettings)
Applies the clusterSettings to the builderNote: Overwrites all existing settings
- Parameters:
clusterSettings
- the clusterSettings- Returns:
- this
- Since:
- 3.7
-
srvHost
public ClusterSettings.Builder srvHost(String srvHost)
Sets the host name to use in order to look up an SRV DNS record to find the MongoDB hosts.Note that when setting srvHost via
ClusterSettings.Builder
, the driver will NOT process any associated TXT records associated with the host. In order to enable the processing of TXT records while still usingMongoClientSettings
, specify the SRV host via connection string and apply the connection string to the settings, e.g.MongoClientSettings.builder().applyConnectionString(new ConnectionString("mongodb+srv://host1.acme.com"))
.- Parameters:
srvHost
- the SRV host name- Returns:
- this
- See Also:
MongoClientSettings.Builder.applyConnectionString(ConnectionString)
,applyConnectionString(ConnectionString)
-
srvMaxHosts
public ClusterSettings.Builder srvMaxHosts(Integer srvMaxHosts)
Sets the maximum number of hosts to connect to when using SRV protocol.- Parameters:
srvMaxHosts
- the maximum number of hosts to connect to when using SRV protocol- Returns:
- this
- Since:
- 4.4
-
hosts
public ClusterSettings.Builder hosts(List<ServerAddress> hosts)
Sets the hosts for the cluster. Any duplicate server addresses are removed from the list.- Parameters:
hosts
- the seed list of hosts- Returns:
- this
-
mode
public ClusterSettings.Builder mode(ClusterConnectionMode mode)
Sets the mode for this cluster.- Parameters:
mode
- the cluster connection mode- Returns:
- this;
-
requiredReplicaSetName
public ClusterSettings.Builder requiredReplicaSetName(String requiredReplicaSetName)
Sets the required replica set name for the cluster.- Parameters:
requiredReplicaSetName
- the required replica set name.- Returns:
- this
-
requiredClusterType
public ClusterSettings.Builder requiredClusterType(ClusterType requiredClusterType)
Sets the required cluster type for the cluster.- Parameters:
requiredClusterType
- the required cluster type- Returns:
- this
-
localThreshold
public ClusterSettings.Builder localThreshold(long localThreshold, TimeUnit timeUnit)
Sets the local threshold.- Parameters:
localThreshold
- the acceptable latency difference, in milliseconds, which must be >= 0timeUnit
- the time unit- Returns:
- this
- Throws:
IllegalArgumentException
- iflocalThreshold < 0
- Since:
- 3.7
-
serverSelector
public ClusterSettings.Builder serverSelector(ServerSelector serverSelector)
Adds a server selector for the cluster to apply before selecting a server.- Parameters:
serverSelector
- the server selector to apply as selector.- Returns:
- this
- See Also:
ClusterSettings.getServerSelector()
-
serverSelectionTimeout
public ClusterSettings.Builder serverSelectionTimeout(long serverSelectionTimeout, TimeUnit timeUnit)
Sets the timeout to apply when selecting a server. If the timeout expires before a server is found to handle a request, aMongoTimeoutException
will be thrown. The default value is 30 seconds.A value of 0 means that it will timeout immediately if no server is available. A negative value means to wait indefinitely.
- Parameters:
serverSelectionTimeout
- the timeouttimeUnit
- the time unit- Returns:
- this
-
addClusterListener
public ClusterSettings.Builder addClusterListener(ClusterListener clusterListener)
Adds a cluster listener.- Parameters:
clusterListener
- the non-null cluster listener- Returns:
- this
- Since:
- 3.3
-
applyConnectionString
public ClusterSettings.Builder applyConnectionString(ConnectionString connectionString)
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
-
build
public ClusterSettings build()
Build the settings from the builder.- Returns:
- the cluster settings
-
-