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

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

commit caa28d5580ffc309ad9789b7b77531a9676809dd
Author: Benoit TELLIER <[email protected]>
AuthorDate: Mon Nov 20 22:19:38 2023 +0100

    [BUILD] Per test index is actually faster
    
    Gains ~1 second per test
---
 .../opensearch/DockerOpenSearchExtension.java      |  4 ++-
 .../opensearch/OpenSearchIntegrationTest.java      | 31 ++++++++++++++--------
 2 files changed, 23 insertions(+), 12 deletions(-)

diff --git 
a/backends-common/opensearch/src/test/java/org/apache/james/backends/opensearch/DockerOpenSearchExtension.java
 
b/backends-common/opensearch/src/test/java/org/apache/james/backends/opensearch/DockerOpenSearchExtension.java
index 0f27bdd978..c0310c2f1a 100644
--- 
a/backends-common/opensearch/src/test/java/org/apache/james/backends/opensearch/DockerOpenSearchExtension.java
+++ 
b/backends-common/opensearch/src/test/java/org/apache/james/backends/opensearch/DockerOpenSearchExtension.java
@@ -19,6 +19,8 @@
 
 package org.apache.james.backends.opensearch;
 
+import java.time.Duration;
+
 import org.junit.jupiter.api.extension.AfterEachCallback;
 import org.junit.jupiter.api.extension.BeforeEachCallback;
 import org.junit.jupiter.api.extension.ExtensionContext;
@@ -32,7 +34,7 @@ import org.testcontainers.shaded.org.awaitility.Awaitility;
 public class DockerOpenSearchExtension implements AfterEachCallback, 
BeforeEachCallback, ParameterResolver {
 
     @FunctionalInterface
-    interface CleanupStrategy {
+    public interface CleanupStrategy {
         CleanupStrategy NONE = any -> {};
 
         void clean(DockerOpenSearch openSearch);
diff --git 
a/mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/OpenSearchIntegrationTest.java
 
b/mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/OpenSearchIntegrationTest.java
index 8eece0cced..30cd8315d3 100644
--- 
a/mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/OpenSearchIntegrationTest.java
+++ 
b/mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/OpenSearchIntegrationTest.java
@@ -27,10 +27,13 @@ import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 import java.time.ZoneId;
 import java.util.List;
+import java.util.UUID;
 
 import org.apache.james.backends.opensearch.DockerOpenSearchExtension;
+import org.apache.james.backends.opensearch.IndexName;
 import org.apache.james.backends.opensearch.OpenSearchIndexer;
 import org.apache.james.backends.opensearch.ReactorOpenSearchClient;
+import org.apache.james.backends.opensearch.ReadAliasName;
 import org.apache.james.backends.opensearch.WriteAliasName;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MailboxSessionUtil;
@@ -94,18 +97,17 @@ class OpenSearchIntegrationTest extends 
AbstractMessageSearchIndexTest {
     static TikaExtension tika = new TikaExtension();
 
     @RegisterExtension
-    static DockerOpenSearchExtension openSearch = new 
DockerOpenSearchExtension(
-        new 
DockerOpenSearchExtension.DeleteAllIndexDocumentsCleanupStrategy(new 
WriteAliasName("mailboxWriteAlias")));
+    static DockerOpenSearchExtension openSearch = new 
DockerOpenSearchExtension(DockerOpenSearchExtension.CleanupStrategy.NONE);
 
     static TikaTextExtractor textExtractor;
     static ReactorOpenSearchClient client;
+    private ReadAliasName readAliasName;
+    private WriteAliasName writeAliasName;
+    private IndexName indexName;
 
     @BeforeAll
     static void setUpAll() throws Exception {
         client = openSearch.getDockerOpenSearch().clientProvider().get();
-        MailboxIndexCreationUtil.prepareDefaultClient(
-            client,
-            openSearch.getDockerOpenSearch().configuration());
         textExtractor = new TikaTextExtractor(new RecordingMetricFactory(),
             new TikaHttpClientImpl(TikaConfiguration.builder()
                 .host(tika.getIp())
@@ -136,6 +138,13 @@ class OpenSearchIntegrationTest extends 
AbstractMessageSearchIndexTest {
 
         MailboxIdRoutingKeyFactory routingKeyFactory = new 
MailboxIdRoutingKeyFactory();
 
+        readAliasName = new ReadAliasName(UUID.randomUUID().toString());
+        writeAliasName = new WriteAliasName(UUID.randomUUID().toString());
+        indexName = new IndexName(UUID.randomUUID().toString());
+        MailboxIndexCreationUtil.prepareClient(
+            client, readAliasName, writeAliasName, indexName,
+            openSearch.getDockerOpenSearch().configuration());
+
         InMemoryIntegrationResources resources = 
InMemoryIntegrationResources.builder()
             .preProvisionnedFakeAuthenticator()
             .fakeAuthorizator()
@@ -146,9 +155,9 @@ class OpenSearchIntegrationTest extends 
AbstractMessageSearchIndexTest {
                 preInstanciationStage.getMapperFactory(),
                 ImmutableSet.of(),
                 new OpenSearchIndexer(client,
-                    MailboxOpenSearchConstants.DEFAULT_MAILBOX_WRITE_ALIAS),
+                    writeAliasName),
                 new OpenSearchSearcher(client, new QueryConverter(new 
CriterionConverter()), SEARCH_SIZE,
-                    MailboxOpenSearchConstants.DEFAULT_MAILBOX_READ_ALIAS, 
routingKeyFactory),
+                    readAliasName, routingKeyFactory),
                 new MessageToOpenSearchJson(textExtractor, 
ZoneId.of("Europe/Paris"), IndexAttachments.YES, IndexHeaders.YES),
                 preInstanciationStage.getSessionProvider(), routingKeyFactory, 
messageIdFactory,
                 openSearchMailboxConfiguration(), new 
RecordingMetricFactory()))
@@ -201,7 +210,7 @@ class OpenSearchIntegrationTest extends 
AbstractMessageSearchIndexTest {
 
         ObjectNode updatedDocument = client.get(
                  new GetRequest.Builder()
-                    .index("mailboxWriteAlias")
+                    .index(indexName.getValue())
                     .id(mailboxBId.serialize() + ":" + bMessageUid.asLong())
                     .routing(mailboxBId.serialize())
                     .build())
@@ -235,7 +244,7 @@ class OpenSearchIntegrationTest extends 
AbstractMessageSearchIndexTest {
 
         // Try to delete the document manually to simulate a not found 
document.
         client.deleteByQuery(new DeleteByQueryRequest.Builder()
-                .index("mailboxWriteAlias")
+                .index(indexName.getValue())
                 .query(new MatchAllQuery.Builder().build()._toQuery())
                 .build())
             .block();
@@ -283,7 +292,7 @@ class OpenSearchIntegrationTest extends 
AbstractMessageSearchIndexTest {
         CALMLY_AWAIT.atMost(Durations.TEN_SECONDS)
             .untilAsserted(() -> assertThat(client.search(
                     new SearchRequest.Builder()
-                        
.index(MailboxOpenSearchConstants.DEFAULT_MAILBOX_INDEX.getValue())
+                        .index(indexName.getValue())
                         .query(QueryBuilders.matchAll().build()._toQuery())
                         .build())
                 .block()
@@ -564,7 +573,7 @@ class OpenSearchIntegrationTest extends 
AbstractMessageSearchIndexTest {
         CALMLY_AWAIT.atMost(Durations.TEN_SECONDS)
                 .untilAsserted(() -> assertThat(client.search(
                         new SearchRequest.Builder()
-                            
.index(MailboxOpenSearchConstants.DEFAULT_MAILBOX_INDEX.getValue())
+                            .index(indexName.getValue())
                             .query(query)
                             .build())
                         .block()


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

Reply via email to