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

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

commit 6f6fdcd53cc306283dbb0d6adc1f0cf3bec9d250
Author: Benoit Tellier <btell...@linagora.com>
AuthorDate: Sat Jul 1 19:03:40 2023 +0700

    JAMES-3924 Fix checkstyles and some unstable tests
    
    Co-authored-by: Rene Cordier <rcord...@linagora.com>
    Co-authored-by: Quan Tran <hqt...@linagora.com>
---
 .../view/cassandra/CassandraMailQueueBrowser.java  |  1 -
 .../cassandra/CassandraMailQueueMailDelete.java    |  2 +-
 .../queue/rabbitmq/RabbitMQMailQueueTest.java      | 56 +++++++++++-----------
 3 files changed, 28 insertions(+), 31 deletions(-)

diff --git 
a/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/CassandraMailQueueBrowser.java
 
b/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/CassandraMailQueueBrowser.java
index 9c1241351d..40ca47a197 100644
--- 
a/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/CassandraMailQueueBrowser.java
+++ 
b/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/CassandraMailQueueBrowser.java
@@ -21,7 +21,6 @@ package org.apache.james.queue.rabbitmq.view.cassandra;
 
 import static 
org.apache.james.queue.rabbitmq.view.cassandra.model.BucketedSlices.BucketId;
 import static 
org.apache.james.queue.rabbitmq.view.cassandra.model.BucketedSlices.Slice;
-import static org.apache.james.util.ReactorUtils.DEFAULT_CONCURRENCY;
 
 import java.time.Clock;
 import java.time.Instant;
diff --git 
a/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/CassandraMailQueueMailDelete.java
 
b/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/CassandraMailQueueMailDelete.java
index d519c534ba..9cecbddb36 100644
--- 
a/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/CassandraMailQueueMailDelete.java
+++ 
b/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/CassandraMailQueueMailDelete.java
@@ -93,7 +93,7 @@ public class CassandraMailQueueMailDelete {
     }
 
     private Mono<Instant> findNewBrowseStart(MailQueueName mailQueueName) {
-        Instant now= clock.instant();
+        Instant now = clock.instant();
         return browseStartDao.findBrowseStart(mailQueueName)
             .filter(browseStart -> 
browseStart.isBefore(now.minus(configuration.getSliceWindow())))
             .flatMap(browseStart -> 
cassandraMailQueueBrowser.browseReferences(mailQueueName, browseStart)
diff --git 
a/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueTest.java
 
b/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueTest.java
index b83d2431f8..7fe8fec2ee 100644
--- 
a/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueTest.java
+++ 
b/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueTest.java
@@ -67,10 +67,12 @@ import 
org.apache.james.blob.cassandra.CassandraBlobStoreFactory;
 import org.apache.james.blob.mail.MimeMessageStore;
 import org.apache.james.core.builder.MimeMessageBuilder;
 import 
org.apache.james.eventsourcing.eventstore.cassandra.CassandraEventStoreModule;
+import org.apache.james.junit.categories.Unstable;
 import org.apache.james.lifecycle.api.LifecycleUtil;
 import org.apache.james.metrics.api.Gauge;
 import org.apache.james.metrics.tests.RecordingMetricFactory;
 import org.apache.james.queue.api.MailQueue;
+import org.apache.james.queue.api.MailQueueFactory;
 import org.apache.james.queue.api.MailQueueMetricContract;
 import org.apache.james.queue.api.MailQueueMetricExtension;
 import org.apache.james.queue.api.ManageableMailQueue;
@@ -89,12 +91,12 @@ import org.apache.james.utils.UpdatableTickingClock;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.test.FakeMail;
 import org.assertj.core.api.SoftAssertions;
-import org.awaitility.Awaitility;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.RepeatedTest;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
 import org.mockito.ArgumentCaptor;
@@ -112,7 +114,7 @@ import reactor.rabbitmq.Sender;
 class RabbitMQMailQueueTest {
     private static final HashBlobId.Factory BLOB_ID_FACTORY = new 
HashBlobId.Factory();
     private static final int THREE_BUCKET_COUNT = 3;
-    private static final int UPDATE_BROWSE_START_PACE = 10;
+    private static final int UPDATE_BROWSE_START_PACE = 25;
     private static final Duration ONE_HOUR_SLICE_WINDOW = Duration.ofHours(1);
     private static final org.apache.james.queue.api.MailQueueName SPOOL = 
org.apache.james.queue.api.MailQueueName.of("spool");
     private static final Instant IN_SLICE_1 = Instant.now().minus(60, DAYS);
@@ -202,13 +204,14 @@ class RabbitMQMailQueueTest {
                 "5-1", "5-2", "5-3", "5-4", "5-5");
         }
 
-        @Test
+        @RepeatedTest(50)
+        @Tag(Unstable.TAG)
         void browseStartShouldBeUpdated(CassandraCluster cassandraCluster) {
-            int emailCount = 100;
+            int emailCount = 250;
 
             StatementRecorder.Selector selector = 
preparedStatementStartingWith("UPDATE browsestart");
             StatementRecorder statementRecorder = cassandraCluster.getConf()
-                    .recordStatements(selector);
+                .recordStatements(selector);
 
             clock.setInstant(IN_SLICE_1);
             enqueueSomeMails(namePatternForSlice(1), emailCount);
@@ -224,12 +227,13 @@ class RabbitMQMailQueueTest {
 
             // The actual rate of update should actually be lower than the 
update probability.
             assertThat(statementRecorder.listExecutedStatements(selector))
-                .hasSizeBetween(2, 9);
+                .hasSizeBetween(2, 12);
         }
 
-        @Test
+        @RepeatedTest(50)
+        @Tag(Unstable.TAG)
         void contentStartShouldBeUpdated(CassandraCluster cassandraCluster) {
-            int emailCount = 100;
+            int emailCount = 250;
 
             StatementRecorder.Selector selector = 
preparedStatementStartingWith("UPDATE contentstart");
             StatementRecorder statementRecorder = 
cassandraCluster.getConf().recordStatements(selector);
@@ -248,7 +252,7 @@ class RabbitMQMailQueueTest {
 
             // The actual rate of update should actually be lower than the 
update probability.
             assertThat(statementRecorder.listExecutedStatements(selector))
-                .hasSizeBetween(2, 9);
+                .hasSizeBetween(2, 12);
         }
 
         @Test
@@ -361,7 +365,7 @@ class RabbitMQMailQueueTest {
         @Test
         void enqueuedEmailsShouldEventuallyBeCleaned() {
             ManageableMailQueue mailQueue = getManageableMailQueue();
-            int emailCount = 5;
+            int emailCount = 100;
 
             clock.setInstant(IN_SLICE_1);
             enqueueSomeMails(namePatternForSlice(1), emailCount);
@@ -376,10 +380,10 @@ class RabbitMQMailQueueTest {
             enqueueSomeMails(namePatternForSlice(5), emailCount);
 
             clock.setInstant(IN_SLICE_7);
-            dequeueMails(5);
-            dequeueMails(5);
-            dequeueMails(5);
-            dequeueMails(5);
+            dequeueMails(emailCount);
+            dequeueMails(emailCount);
+            dequeueMails(emailCount);
+            dequeueMails(emailCount);
 
             // ensure slice 1 was cleaned
             EnqueuedMailsDAO mailsDAO = new 
EnqueuedMailsDAO(cassandraCluster.getCassandraCluster().getConf(), new 
HashBlobId.Factory());
@@ -707,8 +711,8 @@ class RabbitMQMailQueueTest {
             IntStream.rangeClosed(1, emailCount)
                 .forEach(Throwing.intConsumer(i -> {
                     FakeMail mail = defaultMail()
-                            .name(namePattern.apply(i))
-                            .build();
+                        .name(namePattern.apply(i))
+                        .build();
                     enQueue(mail);
                     LifecycleUtil.dispose(mail);
                 }));
@@ -732,8 +736,8 @@ class RabbitMQMailQueueTest {
 
             try {
                 await()
-                        .atMost(Duration.ofMinutes(10))
-                        .untilAsserted(() -> 
assertThat(counter.get()).isGreaterThanOrEqualTo(times));
+                    .atMost(Duration.ofMinutes(10))
+                    .untilAsserted(() -> 
assertThat(counter.get()).isGreaterThanOrEqualTo(times));
             } finally {
                 disposable.dispose();
             }
@@ -1022,22 +1026,16 @@ class RabbitMQMailQueueTest {
                     .setText(identicalContent))
                 .build());
 
-            Flux<MailQueue.MailQueueItem> dequeueFlux = 
Flux.from(mailQueue.deQueue());
-
-            List<MailQueue.MailQueueItem> items = dequeueFlux.take(2)
+            Flux.from(mailQueue.deQueue())
+                .take(2)
                 .concatMap(mailQueueItem ->
                     Mono.fromCallable(() -> {
+                        
assertThat(mailQueueItem.getMail().getMessage().getContent()).isEqualTo(identicalContent);
                         
mailQueueItem.done(MailQueue.MailQueueItem.CompletionStatus.SUCCESS);
                         return mailQueueItem;
-                    }).subscribeOn(Schedulers.fromExecutor(EXECUTOR))
-                        .thenReturn(mailQueueItem)
-                        .onErrorResume(e -> Mono.just(mailQueueItem)))
+                    }).subscribeOn(Schedulers.fromExecutor(EXECUTOR)))
                 .collectList()
                 .block(Duration.ofSeconds(10));
-
-            assertThat(items)
-                .allSatisfy(Throwing.consumer(item -> 
assertThat(item.getMail().getMessage().getContent())
-                    .isEqualTo(identicalContent)));
         }
     }
 
@@ -1068,6 +1066,6 @@ class RabbitMQMailQueueTest {
             configuration);
         mqManagementApi = new 
RabbitMQMailQueueManagement(rabbitMQExtension.managementAPI());
         mailQueueFactory = new 
RabbitMQMailQueueFactory(rabbitMQExtension.getSender(), mqManagementApi, 
factory, rabbitMQExtension.getRabbitMQ().getConfiguration());
-        mailQueue = mailQueueFactory.createQueue(SPOOL);
+        mailQueue = mailQueueFactory.createQueue(SPOOL, 
MailQueueFactory.prefetchCount(3));
     }
 }


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

Reply via email to