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

rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit dc6cbb273596f46bb2e033e7babfc7af5a3b15aa
Author: Rene Cordier <rcord...@linagora.com>
AuthorDate: Wed Jun 4 14:26:12 2025 +0700

    JAMES-4135 Add the possibility to add custom IndexSettings to 
MailboxMappingFactory
---
 .../james/mailbox/opensearch/DefaultMailboxMappingFactory.java     | 7 +++++++
 .../apache/james/mailbox/opensearch/MailboxIndexCreationUtil.java  | 4 +++-
 .../org/apache/james/mailbox/opensearch/MailboxMappingFactory.java | 5 +++++
 3 files changed, 15 insertions(+), 1 deletion(-)

diff --git 
a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/DefaultMailboxMappingFactory.java
 
b/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/DefaultMailboxMappingFactory.java
index e106f347d5..8f7b42c5d7 100644
--- 
a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/DefaultMailboxMappingFactory.java
+++ 
b/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/DefaultMailboxMappingFactory.java
@@ -25,6 +25,7 @@ import static 
org.apache.james.backends.opensearch.IndexCreationFactory.KEYWORD;
 import static org.apache.james.backends.opensearch.IndexCreationFactory.RAW;
 
 import java.util.Map;
+import java.util.Optional;
 
 import org.apache.james.mailbox.opensearch.json.JsonMessageConstants;
 import org.opensearch.client.opensearch._types.mapping.BooleanProperty;
@@ -38,6 +39,7 @@ import 
org.opensearch.client.opensearch._types.mapping.Property;
 import org.opensearch.client.opensearch._types.mapping.RoutingField;
 import org.opensearch.client.opensearch._types.mapping.TextProperty;
 import org.opensearch.client.opensearch._types.mapping.TypeMapping;
+import org.opensearch.client.opensearch.indices.IndexSettings;
 
 import com.google.common.collect.ImmutableMap;
 
@@ -290,4 +292,9 @@ public class DefaultMailboxMappingFactory implements 
MailboxMappingFactory {
                 .build())
             .build();
     }
+
+    @Override
+    public Optional<IndexSettings> getIndexSettings() {
+        return Optional.empty();
+    }
 }
diff --git 
a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/MailboxIndexCreationUtil.java
 
b/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/MailboxIndexCreationUtil.java
index 536ae29cf7..a4c4ef3a17 100644
--- 
a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/MailboxIndexCreationUtil.java
+++ 
b/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/MailboxIndexCreationUtil.java
@@ -19,6 +19,8 @@
 
 package org.apache.james.mailbox.opensearch;
 
+import java.util.Optional;
+
 import org.apache.james.backends.opensearch.IndexCreationFactory;
 import org.apache.james.backends.opensearch.IndexName;
 import org.apache.james.backends.opensearch.OpenSearchConfiguration;
@@ -38,7 +40,7 @@ public class MailboxIndexCreationUtil {
                 .useIndex(indexName)
                 .addAlias(readAlias)
                 .addAlias(writeAlias)
-                .createIndexAndAliases(client, 
mailboxMappingFactory.getMappingContent());
+                .createIndexAndAliases(client, 
mailboxMappingFactory.getIndexSettings(), 
Optional.of(mailboxMappingFactory.getMappingContent()));
     }
 
     public static ReactorOpenSearchClient 
prepareDefaultClient(ReactorOpenSearchClient client, OpenSearchConfiguration 
configuration) {
diff --git 
a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/MailboxMappingFactory.java
 
b/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/MailboxMappingFactory.java
index d58789e884..c97a7a58c8 100644
--- 
a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/MailboxMappingFactory.java
+++ 
b/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/MailboxMappingFactory.java
@@ -19,8 +19,13 @@
 
 package org.apache.james.mailbox.opensearch;
 
+import java.util.Optional;
+
 import org.opensearch.client.opensearch._types.mapping.TypeMapping;
+import org.opensearch.client.opensearch.indices.IndexSettings;
 
 public interface MailboxMappingFactory {
     TypeMapping getMappingContent();
+
+    Optional<IndexSettings> getIndexSettings();
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscr...@james.apache.org
For additional commands, e-mail: notifications-h...@james.apache.org

Reply via email to