This is an automated email from the ASF dual-hosted git repository.

joscorbe pushed a commit to branch OAK-11835
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git

commit d15732dce77b2e4319230abc8ad0ae2baefe7136
Author: Jose Cordero <corde...@adobe.com>
AuthorDate: Tue Aug 5 03:47:01 2025 +0200

    OAK-11835: Apply default configuration in getDefaultBuilder
---
 .../plugins/document/DocumentNodeStoreService.java | 22 +++++++++---------
 .../oak/plugins/document/util/MongoConnection.java | 26 +++++++++++++++++++---
 2 files changed, 34 insertions(+), 14 deletions(-)

diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java
index a2a90f383a..0a4e0d8a01 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java
@@ -144,17 +144,17 @@ public class DocumentNodeStoreService {
     static final int DEFAULT_FULL_GC_GENERATION = 0;
     static final int DEFAULT_MONGO_LEASE_SO_TIMEOUT_MILLIS = 30000;
     // MongoDB Connection Pool Settings
-    static final int DEFAULT_MONGO_MAX_POOL_SIZE = 100;
-    static final int DEFAULT_MONGO_MIN_POOL_SIZE = 0;
-    static final int DEFAULT_MONGO_MAX_CONNECTING = 2;
-    static final int DEFAULT_MONGO_MAX_IDLE_TIME_MS = 0;
-    static final int DEFAULT_MONGO_MAX_LIFE_TIME_MS = 0;
-    static final int DEFAULT_MONGO_CONNECT_TIMEOUT_MS = 10000;
-    static final int DEFAULT_MONGO_HEARTBEAT_FREQUENCY_MS = 5000;
-    static final int DEFAULT_MONGO_SERVER_SELECTION_TIMEOUT_MS = 30000;
-    static final int DEFAULT_MONGO_WAIT_QUEUE_TIMEOUT_MS = 60000;
-    static final int DEFAULT_MONGO_READ_TIMEOUT_MS = 0;
-    static final int DEFAULT_MONGO_MIN_HEARTBEAT_FREQUENCY_MS = 500;
+    public static final int DEFAULT_MONGO_MAX_POOL_SIZE = 100;
+    public static final int DEFAULT_MONGO_MIN_POOL_SIZE = 0;
+    public static final int DEFAULT_MONGO_MAX_CONNECTING = 2;
+    public static final int DEFAULT_MONGO_MAX_IDLE_TIME_MS = 0;
+    public static final int DEFAULT_MONGO_MAX_LIFE_TIME_MS = 0;
+    public static final int DEFAULT_MONGO_CONNECT_TIMEOUT_MS = 10000;
+    public static final int DEFAULT_MONGO_HEARTBEAT_FREQUENCY_MS = 5000;
+    public static final int DEFAULT_MONGO_SERVER_SELECTION_TIMEOUT_MS = 30000;
+    public static final int DEFAULT_MONGO_WAIT_QUEUE_TIMEOUT_MS = 60000;
+    public static final int DEFAULT_MONGO_READ_TIMEOUT_MS = 0;
+    public static final int DEFAULT_MONGO_MIN_HEARTBEAT_FREQUENCY_MS = 500;
     static final String DEFAULT_PERSISTENT_CACHE = "cache";
     static final String DEFAULT_JOURNAL_CACHE = "diff-cache";
     static final boolean DEFAULT_CUSTOM_BLOB_STORE = false;
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/MongoConnection.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/MongoConnection.java
index 3be4e9bf3d..f63b9f925b 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/MongoConnection.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/MongoConnection.java
@@ -39,10 +39,11 @@ import com.mongodb.connection.SocketSettings;
 
 import static java.util.Objects.requireNonNull;
 
-import org.jetbrains.annotations.NotNull;
+import org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService;
 
-import org.slf4j.LoggerFactory;
+import org.jetbrains.annotations.NotNull;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * The {@code MongoConnection} abstracts connection to the {@code MongoDB}.
@@ -174,7 +175,26 @@ public class MongoConnection {
      */
     public static MongoClientSettings.Builder getDefaultBuilder() {
         return MongoClientSettings.builder()
-                .applicationName("MongoConnection for Oak DocumentMK");
+                .applicationName("MongoConnection for Oak DocumentMK")
+                // Apply default connection pool settings
+                .applyToConnectionPoolSettings(poolBuilder -> poolBuilder
+                        
.maxSize(DocumentNodeStoreService.DEFAULT_MONGO_MAX_POOL_SIZE)
+                        
.minSize(DocumentNodeStoreService.DEFAULT_MONGO_MIN_POOL_SIZE)
+                        
.maxConnecting(DocumentNodeStoreService.DEFAULT_MONGO_MAX_CONNECTING)
+                        
.maxConnectionIdleTime(DocumentNodeStoreService.DEFAULT_MONGO_MAX_IDLE_TIME_MS, 
TimeUnit.MILLISECONDS)
+                        
.maxConnectionLifeTime(DocumentNodeStoreService.DEFAULT_MONGO_MAX_LIFE_TIME_MS, 
TimeUnit.MILLISECONDS)
+                        
.maxWaitTime(DocumentNodeStoreService.DEFAULT_MONGO_WAIT_QUEUE_TIMEOUT_MS, 
TimeUnit.MILLISECONDS))
+                // Apply default socket settings
+                .applyToSocketSettings(socketBuilder -> socketBuilder
+                        
.connectTimeout(DocumentNodeStoreService.DEFAULT_MONGO_CONNECT_TIMEOUT_MS, 
TimeUnit.MILLISECONDS)
+                        
.readTimeout(DocumentNodeStoreService.DEFAULT_MONGO_READ_TIMEOUT_MS, 
TimeUnit.MILLISECONDS))
+                // Apply default server settings
+                .applyToServerSettings(serverBuilder -> serverBuilder
+                        
.heartbeatFrequency(DocumentNodeStoreService.DEFAULT_MONGO_HEARTBEAT_FREQUENCY_MS,
 TimeUnit.MILLISECONDS)
+                        
.minHeartbeatFrequency(DocumentNodeStoreService.DEFAULT_MONGO_MIN_HEARTBEAT_FREQUENCY_MS,
 TimeUnit.MILLISECONDS))
+                // Apply default cluster settings
+                .applyToClusterSettings(clusterBuilder -> clusterBuilder
+                        
.serverSelectionTimeout(DocumentNodeStoreService.DEFAULT_MONGO_SERVER_SELECTION_TIMEOUT_MS,
 TimeUnit.MILLISECONDS));
     }
 
     public static String toString(MongoClientSettings settings) {

Reply via email to