Uploaded image for project: 'Java Driver'
  1. Java Driver
  2. JAVA-2166

Make it easier to mix ConnectionString settings with MongoClientSettings

    XMLWordPrintableJSON

Details

    • Icon: New Feature New Feature
    • Resolution: Done
    • Icon: Minor - P4 Minor - P4
    • 3.7.0
    • None
    • Async, Configuration
    • None

    Description

      Currently, mixing settings is extremely verbose compared to MongoClientURI.

      A recent example is a user (SCALA-243) wanting to set the serverSelectionTimeoutMS in the Scala driver is:

      val connectionString = new ConnectionString("mongodb://localhost/?connectTimeoutMS=500&socketTimeoutMS=500")
      val mongoClientSettings = MongoClientSettings.builder()
        .clusterSettings(ClusterSettings.builder().applyConnectionString(connectionString).serverSelectionTimeoutMS(500).build())
        .connectionPoolSettings(ConnectionPoolSettings.builder().applyConnectionString(connectionString).build())
        .serverSettings(ServerSettings.builder().build()).credentialList(connectionString.getCredentialList)
        .sslSettings(SslSettings.builder().applyConnectionString(connectionString).build())
        .socketSettings(SocketSettings.builder().applyConnectionString(connectionString).build())
        .build()
          
      MongoClient(mongoClientSettings)
      

      Which is very verbose compared to the Sync driver:

      String connectionString = "mongodb://localhost/?connectTimeoutMS=500&socketTimeoutMS=500";
      MongoClientURI connectionStringAndOptions = new MongoClientURI(connectionString, MongoClientOptions.builder().serverSelectionTimeout(200));
      new MongoClient(uriAndOptions); 
      

      Attachments

        Activity

          People

            ross@mongodb.com Ross Lawley
            ross@mongodb.com Ross Lawley
            Votes:
            2 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: