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 529b663a84b5b6d3f8dbdac0ce1ff8f4a013ca53
Author: Quan Tran <[email protected]>
AuthorDate: Tue Apr 5 14:35:13 2022 +0700

    JAMES-3739: Allow specific index' own settings
---
 .../apache/james/backends/es/v7/IndexCreationFactory.java   | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git 
a/backends-common/elasticsearch-v7/src/main/java/org/apache/james/backends/es/v7/IndexCreationFactory.java
 
b/backends-common/elasticsearch-v7/src/main/java/org/apache/james/backends/es/v7/IndexCreationFactory.java
index 9b89fb5801..a528f509fa 100644
--- 
a/backends-common/elasticsearch-v7/src/main/java/org/apache/james/backends/es/v7/IndexCreationFactory.java
+++ 
b/backends-common/elasticsearch-v7/src/main/java/org/apache/james/backends/es/v7/IndexCreationFactory.java
@@ -141,11 +141,15 @@ public class IndexCreationFactory {
                 }
 
                 public ReactorElasticSearchClient 
createIndexAndAliases(ReactorElasticSearchClient client) {
-                    return build().createIndexAndAliases(client, 
Optional.empty());
+                    return build().createIndexAndAliases(client, 
Optional.empty(), Optional.empty());
                 }
 
                 public ReactorElasticSearchClient 
createIndexAndAliases(ReactorElasticSearchClient client, XContentBuilder 
mappingContent) {
-                    return build().createIndexAndAliases(client, 
Optional.of(mappingContent));
+                    return build().createIndexAndAliases(client, 
Optional.empty(), Optional.of(mappingContent));
+                }
+
+                public ReactorElasticSearchClient 
createIndexAndAliases(ReactorElasticSearchClient client, 
Optional<XContentBuilder> indexSettings, Optional<XContentBuilder> 
mappingContent) {
+                    return build().createIndexAndAliases(client, 
indexSettings, mappingContent);
                 }
             }
         }
@@ -174,10 +178,11 @@ public class IndexCreationFactory {
             this.customTokenizers = customTokenizers;
         }
 
-        public ReactorElasticSearchClient 
createIndexAndAliases(ReactorElasticSearchClient client, 
Optional<XContentBuilder> mappingContent) {
+        public ReactorElasticSearchClient 
createIndexAndAliases(ReactorElasticSearchClient client, 
Optional<XContentBuilder> indexSettings,
+                                                                
Optional<XContentBuilder> mappingContent) {
             Preconditions.checkNotNull(indexName);
             try {
-                createIndexIfNeeded(client, indexName, generateSetting(), 
mappingContent);
+                createIndexIfNeeded(client, indexName, 
indexSettings.orElse(generateSetting()), mappingContent);
                 aliases.forEach(Throwing.<AliasName>consumer(alias -> 
createAliasIfNeeded(client, indexName, alias))
                     .sneakyThrow());
             } catch (IOException e) {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to