use of com.mongodb.internal.binding.ClusterBinding in project mongo-java-driver by mongodb.
the class ClusterFixture method getBinding.
private static ReadWriteBinding getBinding(final Cluster cluster, final ReadPreference readPreference) {
if (!bindingMap.containsKey(readPreference)) {
ReadWriteBinding binding = new ClusterBinding(cluster, readPreference, ReadConcern.DEFAULT, getServerApi(), IgnorableRequestContext.INSTANCE);
if (serverVersionAtLeast(3, 6)) {
binding = new SessionBinding(binding);
}
bindingMap.put(readPreference, binding);
}
return bindingMap.get(readPreference);
}
use of com.mongodb.internal.binding.ClusterBinding in project mongo-java-driver by mongodb.
the class ClusterFixture method getConnectionString.
public static synchronized ConnectionString getConnectionString() {
if (connectionString != null) {
return connectionString;
}
ConnectionString mongoURIProperty = getConnectionStringFromSystemProperty(MONGODB_URI_SYSTEM_PROPERTY_NAME);
if (mongoURIProperty != null) {
return mongoURIProperty;
}
// Figure out what the connection string should be
Cluster cluster = createCluster(new ConnectionString(DEFAULT_URI), new SocketStreamFactory(SocketSettings.builder().build(), SslSettings.builder().build()));
try {
BsonDocument helloResult = new CommandReadOperation<BsonDocument>("admin", new BsonDocument(LEGACY_HELLO, new BsonInt32(1)), new BsonDocumentCodec()).execute(new ClusterBinding(cluster, ReadPreference.nearest(), ReadConcern.DEFAULT, getServerApi(), IgnorableRequestContext.INSTANCE));
if (helloResult.containsKey("setName")) {
connectionString = new ConnectionString(DEFAULT_URI + "/?replicaSet=" + helloResult.getString("setName").getValue());
} else {
connectionString = new ConnectionString(DEFAULT_URI);
ClusterFixture.cluster = cluster;
}
return connectionString;
} finally {
if (ClusterFixture.cluster == null) {
cluster.close();
}
}
}
Aggregations