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 22a5b8f741bdfe7c2f7318c8475c07c2e4ae873b
Author: Jose Cordero <corde...@adobe.com>
AuthorDate: Mon Aug 4 23:56:59 2025 +0200

    OAK-11835: Add new properties to the builder
---
 .../plugins/document/DocumentNodeStoreService.java | 11 ++++
 .../mongo/MongoDocumentNodeStoreBuilderBase.java   | 68 ++++++++++++++++++++++
 2 files changed, 79 insertions(+)

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 9d93d09ea7..177f4103ca 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
@@ -369,6 +369,17 @@ public class DocumentNodeStoreService {
             configureBuilder(builder);
             builder.setMaxReplicationLag(config.maxReplicationLagInSecs(), 
TimeUnit.SECONDS);
             builder.setLeaseSocketTimeout(config.mongoLeaseSocketTimeout());
+            builder.setMongoMaxPoolSize(config.mongoMaxPoolSize());
+            builder.setMongoMinPoolSize(config.mongoMinPoolSize());
+            builder.setMongoMaxConnecting(config.mongoMaxConnecting());
+            builder.setMongoMaxIdleTimeMS(config.mongoMaxIdleTimeMS());
+            builder.setMongoMaxLifeTimeMS(config.mongoMaxLifeTimeMS());
+            builder.setMongoConnectTimeoutMS(config.mongoConnectTimeoutMS());
+            
builder.setMongoHeartbeatFrequencyMS(config.mongoHeartbeatFrequencyMS());
+            
builder.setMongoServerSelectionTimeoutMS(config.mongoServerSelectionTimeoutMS());
+            
builder.setMongoWaitQueueTimeoutMS(config.mongoWaitQueueTimeoutMS());
+            builder.setMongoReadTimeoutMS(config.mongoReadTimeoutMS());
+            
builder.setMongoMinHeartbeatFrequencyMS(config.mongoMinHeartbeatFrequencyMS());
             builder.setMongoDB(uri, db, config.blobCacheSize());
             
builder.setCollectionCompressionType(config.collectionCompressionType());
             mkBuilder = builder;
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentNodeStoreBuilderBase.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentNodeStoreBuilderBase.java
index 612cfd82b2..67c578e913 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentNodeStoreBuilderBase.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentNodeStoreBuilderBase.java
@@ -50,6 +50,19 @@ public abstract class MongoDocumentNodeStoreBuilderBase<T 
extends MongoDocumentN
     private String collectionCompressionType;
     private MongoClient mongoClient;
 
+    // MongoDB connection pool settings
+    private Integer maxPoolSize;
+    private Integer minPoolSize;
+    private Integer maxConnecting;
+    private Integer maxIdleTimeMS;
+    private Integer maxLifeTimeMS;
+    private Integer connectTimeoutMS;
+    private Integer heartbeatFrequencyMS;
+    private Integer serverSelectionTimeoutMS;
+    private Integer waitQueueTimeoutMS;
+    private Integer readTimeoutMS;
+    private Integer minHeartbeatFrequencyMS;
+
     /**
      * Uses the given information to connect to to MongoDB as backend
      * storage for the DocumentNodeStore. The write concern is either
@@ -153,6 +166,61 @@ public abstract class MongoDocumentNodeStoreBuilderBase<T 
extends MongoDocumentN
         return thisBuilder();
     }
 
+    public T setMongoMaxPoolSize(int maxPoolSize) {
+        this.maxPoolSize = maxPoolSize;
+        return thisBuilder();
+    }
+
+    public T setMongoMinPoolSize(int minPoolSize) {
+        this.minPoolSize = minPoolSize;
+        return thisBuilder();
+    }
+
+    public T setMongoMaxConnecting(int maxConnecting) {
+        this.maxConnecting = maxConnecting;
+        return thisBuilder();
+    }
+
+    public T setMongoMaxIdleTimeMS(int maxIdleTimeMS) {
+        this.maxIdleTimeMS = maxIdleTimeMS;
+        return thisBuilder();
+    }
+
+    public T setMongoMaxLifeTimeMS(int maxLifeTimeMS) {
+        this.maxLifeTimeMS = maxLifeTimeMS;
+        return thisBuilder();
+    }
+
+    public T setMongoConnectTimeoutMS(int connectTimeoutMS) {
+        this.connectTimeoutMS = connectTimeoutMS;
+        return thisBuilder();
+    }
+
+    public T setMongoHeartbeatFrequencyMS(int heartbeatFrequencyMS) {
+        this.heartbeatFrequencyMS = heartbeatFrequencyMS;
+        return thisBuilder();
+    }
+
+    public T setMongoServerSelectionTimeoutMS(int serverSelectionTimeoutMS) {
+        this.serverSelectionTimeoutMS = serverSelectionTimeoutMS;
+        return thisBuilder();
+    }
+
+    public T setMongoWaitQueueTimeoutMS(int waitQueueTimeoutMS) {
+        this.waitQueueTimeoutMS = waitQueueTimeoutMS;
+        return thisBuilder();
+    }
+
+    public T setMongoReadTimeoutMS(int readTimeoutMS) {
+        this.readTimeoutMS = readTimeoutMS;
+        return thisBuilder();
+    }
+
+    public T setMongoMinHeartbeatFrequencyMS(int minHeartbeatFrequencyMS) {
+        this.minHeartbeatFrequencyMS = minHeartbeatFrequencyMS;
+        return thisBuilder();
+    }
+
     /**
      * @return the lease socket timeout in milliseconds. If none is set, then
      *      zero is returned.

Reply via email to