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.