james-project.git
8 hours agoJAMES-3803 RemoteDelivery uses different scheduler for dequeuing (#1121) master
AdBuch [Fri, 19 Aug 2022 09:18:35 +0000 (11:18 +0200)] 
JAMES-3803 RemoteDelivery uses different scheduler for dequeuing (#1121)

This is necessary as else in high load a delivery-task can queue in the same thread as the never ending dequeuing-task and stay there forever

9 hours agoJAMES-3806 S3BlobStoreDAO logs missing blob id if not found
Karsten Otto [Wed, 17 Aug 2022 09:20:31 +0000 (11:20 +0200)] 
JAMES-3806 S3BlobStoreDAO logs missing blob id if not found

16 hours agoJAMES-3775 ClamAV integration (#1126)
Trần Hồng Quân [Fri, 19 Aug 2022 01:41:54 +0000 (08:41 +0700)] 
JAMES-3775 ClamAV integration (#1126)

16 hours ago[FIX] Slightly refactor MailQueueContract::dequeueShouldBeConcurrent
Benoit Tellier [Mon, 1 Aug 2022 02:56:02 +0000 (09:56 +0700)] 
[FIX] Slightly refactor MailQueueContract::dequeueShouldBeConcurrent

16 hours ago[FIX] Mention upstream issue
Benoit Tellier [Mon, 1 Aug 2022 02:07:53 +0000 (09:07 +0700)] 
[FIX] Mention upstream issue

16 hours ago[FIX] Fix RabbitMQMailQueueTest::dequeueMails
Benoit Tellier [Mon, 1 Aug 2022 02:07:21 +0000 (09:07 +0700)] 
[FIX] Fix RabbitMQMailQueueTest::dequeueMails

16 hours ago[FIX] rabbitmq - Add unit test for concurrent test consuming message with manual ack
Tung Van TRAN [Fri, 8 Jul 2022 10:16:29 +0000 (17:16 +0700)] 
[FIX] rabbitmq - Add unit test for concurrent test consuming message with manual ack

31 hours ago[UPGRADE] Spark 2.9.3 -> 2.9.4 (#1129)
Benoit TELLIER [Thu, 18 Aug 2022 10:28:42 +0000 (17:28 +0700)] 
[UPGRADE] Spark 2.9.3 -> 2.9.4 (#1129)

Fixes Jetty dependency management mess

39 hours ago[BUILD] Improve Mailbox creation stability (#1124)
Benoit TELLIER [Thu, 18 Aug 2022 02:01:43 +0000 (09:01 +0700)] 
[BUILD] Improve Mailbox creation stability (#1124)

MailboxManagerTest::creatingConcurrentlyMailboxesWithSameParentShouldNotFail was hitting the limit of what the ASF CI can hold.

Reproduced locally with 64 concurrent processes, exponential
retries improved stability without reworking the test.

3 days agoJAMES-3805 PulsarMailQueueTest.dequeueShouldBeConcurrent is unstable (#1130)
Benoit TELLIER [Tue, 16 Aug 2022 09:54:20 +0000 (16:54 +0700)] 
JAMES-3805 PulsarMailQueueTest.dequeueShouldBeConcurrent is unstable (#1130)

```
Error Message

Too many concurrent offers. Specified maximum is 1. You have to wait for one previous future to be resolved to send another request

Stacktrace

java.lang.IllegalStateException: Too many concurrent offers. Specified maximum is 1. You have to wait for one previous future to be resolved to send another request

Standard Output

10:19:36.780 [ERROR] r.c.p.Operators - Operator called default onErrorDropped
java.lang.IllegalStateException: Too many concurrent offers. Specified maximum is 1. You have to wait for one previous future to be resolved to send another request
at akka.stream.impl.QueueSource$$anon$1.bufferElem(QueueSource.scala:115)
at akka.stream.impl.QueueSource$$anon$1.$anonfun$callback$1(QueueSource.scala:126)
at akka.stream.impl.QueueSource$$anon$1.$anonfun$callback$1$adapted(QueueSource.scala:120)
at akka.stream.impl.fusing.GraphInterpreter.runAsyncInput(GraphInterpreter.scala:467)
at akka.stream.impl.fusing.GraphInterpreterShell$AsyncInput.execute(ActorGraphInterpreter.scala:517)
at akka.stream.impl.fusing.GraphInterpreterShell.processEvent(ActorGraphInterpreter.scala:625)
at akka.stream.impl.fusing.ActorGraphInterpreter.akka$stream$impl$fusing$ActorGraphInterpreter$$processEvent(ActorGraphInterpreter.scala:800)
at akka.stream.impl.fusing.ActorGraphInterpreter$$anonfun$receive$1.applyOrElse(ActorGraphInterpreter.scala:818)
at akka.actor.Actor.aroundReceive(Actor.scala:537)
at akka.actor.Actor.aroundReceive$(Actor.scala:535)
at akka.stream.impl.fusing.ActorGraphInterpreter.aroundReceive(ActorGraphInterpreter.scala:716)
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:580)
at akka.actor.ActorCell.invoke(ActorCell.scala:548)
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:270)
at akka.dispatch.Mailbox.run(Mailbox.scala:231)
at akka.dispatch.Mailbox.exec(Mailbox.scala:243)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
10:19:36.780 [ERROR] r.c.p.Operators - Operator called default onErrorDropped
java.lang.IllegalStateException: Too many concurrent offers. Specified maximum is 1. You have to wait for one previous future to be resolved to send another request
at akka.stream.impl.QueueSource$$anon$1.bufferElem(QueueSource.scala:115)
at akka.stream.impl.QueueSource$$anon$1.$anonfun$callback$1(QueueSource.scala:126)
at akka.stream.impl.QueueSource$$anon$1.$anonfun$callback$1$adapted(QueueSource.scala:120)
at akka.stream.impl.fusing.GraphInterpreter.runAsyncInput(GraphInterpreter.scala:467)
at akka.stream.impl.fusing.GraphInterpreterShell$AsyncInput.execute(ActorGraphInterpreter.scala:517)
at akka.stream.impl.fusing.GraphInterpreterShell.processEvent(ActorGraphInterpreter.scala:625)
at akka.stream.impl.fusing.ActorGraphInterpreter.akka$stream$impl$fusing$ActorGraphInterpreter$$processEvent(ActorGraphInterpreter.scala:800)
at akka.stream.impl.fusing.ActorGraphInterpreter$$anonfun$receive$1.applyOrElse(ActorGraphInterpreter.scala:818)
at akka.actor.Actor.aroundReceive(Actor.scala:537)
at akka.actor.Actor.aroundReceive$(Actor.scala:535)
at akka.stream.impl.fusing.ActorGraphInterpreter.aroundReceive(ActorGraphInterpreter.scala:716)
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:580)
at akka.actor.ActorCell.invoke(ActorCell.scala:548)
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:270)
at akka.dispatch.Mailbox.run(Mailbox.scala:231)
at akka.dispatch.Mailbox.exec(Mailbox.scala:243)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
```

3 days agoJAMES-3775 Mark RSpamD tests are unstable
Quan Tran [Thu, 11 Aug 2022 03:09:44 +0000 (10:09 +0700)] 
JAMES-3775 Mark RSpamD tests are unstable

Sometime `Container startup failed`.

3 days agoJAMES-3775 Relax rspamd score assertions
Quan Tran [Wed, 10 Aug 2022 16:43:24 +0000 (23:43 +0700)] 
JAMES-3775 Relax rspamd score assertions

3 days agoJAMES-3799 Optimize memory requirements of SimpleMessageSearchIndex
Karsten Otto [Mon, 8 Aug 2022 13:23:38 +0000 (15:23 +0200)] 
JAMES-3799 Optimize memory requirements of SimpleMessageSearchIndex

3 days agoJAMES-3775 RSpamD mailet should support rewrite subject (#1106)
Trần Hồng Quân [Tue, 16 Aug 2022 02:43:40 +0000 (09:43 +0700)] 
JAMES-3775 RSpamD mailet should support rewrite subject (#1106)

3 days agoJAMES-3801 Nack errors upon dequeue
Benoit Tellier [Wed, 10 Aug 2022 04:05:21 +0000 (11:05 +0700)] 
JAMES-3801 Nack errors upon dequeue

3 days agoJAMES-3800 S3BlobStoreDAO should be explicit upon future cancellation
Benoit Tellier [Wed, 10 Aug 2022 03:26:05 +0000 (10:26 +0700)] 
JAMES-3800 S3BlobStoreDAO should be explicit upon future cancellation

Previously returned an empty publisher, causing data
 validation issues down the line.

 Cause of this error is a XML unmarshalling issue upon
 timeouts upon partial data receival.

 This error handling will make James error logs less cryptic and hopefully easier to audit.

3 days agoJAMES-3693 Fix RateLimiterContract::shouldFailWhenLowerLimitExceeded (#1123)
Benoit TELLIER [Tue, 16 Aug 2022 02:43:06 +0000 (09:43 +0700)] 
JAMES-3693 Fix RateLimiterContract::shouldFailWhenLowerLimitExceeded (#1123)

Redis rate limiting window needs to be smaller than the
precision to have reliable assertions. This was not the
case for shouldFailWhenLowerLimitExceeded.

3 days agoJAMES-3798 fix bounce exception when no date header is present (#1107)
ouvtam [Tue, 16 Aug 2022 02:42:57 +0000 (04:42 +0200)] 
JAMES-3798 fix bounce exception when no date header is present (#1107)

7 days agoJAMES-3784 EmptyErrorMailRepositoryHealthCheck: Wrap blocking calls (#1122)
Benoit TELLIER [Fri, 12 Aug 2022 09:03:46 +0000 (16:03 +0700)] 
JAMES-3784 EmptyErrorMailRepositoryHealthCheck: Wrap blocking calls (#1122)

7 days agoJAMES-3771 ADR for the OpenSearch migration (#1120)
Benoit TELLIER [Fri, 12 Aug 2022 09:03:25 +0000 (16:03 +0700)] 
JAMES-3771 ADR for the OpenSearch migration (#1120)

7 days agoJAMES-3775 RSpamD ADR (#1115)
vttran [Fri, 12 Aug 2022 09:03:17 +0000 (16:03 +0700)] 
JAMES-3775 RSpamD ADR (#1115)

7 days agoJAMES-3775 Merge RSpamD index.md and README.md (#1116)
Benoit TELLIER [Fri, 12 Aug 2022 09:03:08 +0000 (16:03 +0700)] 
JAMES-3775 Merge RSpamD index.md and README.md (#1116)

7 days agoJAMES-3791 Increase FakeSmtp timeout (#1117)
Benoit TELLIER [Fri, 12 Aug 2022 09:02:44 +0000 (16:02 +0700)] 
JAMES-3791 Increase FakeSmtp timeout (#1117)

GatewayRemoteDeliveryIntegrationTest::mailFromShouldBePreservedUponConcurrency
can take more than 15 secondes on the Apache CI.

9 days agoJAMES-3775 Documentation for RSpamD extension (#1113)
vttran [Wed, 10 Aug 2022 10:20:29 +0000 (17:20 +0700)] 
JAMES-3775 Documentation for RSpamD extension (#1113)

9 days agoJAMES-33775 RSpamDListener (#1095)
vttran [Wed, 10 Aug 2022 04:08:24 +0000 (11:08 +0700)] 
JAMES-33775 RSpamDListener (#1095)

9 days agoJAMES-3796 Guice support the custom task in extension
Tung Van TRAN [Wed, 3 Aug 2022 09:41:51 +0000 (16:41 +0700)] 
JAMES-3796 Guice support the custom task in extension

9 days agoJAMES-3775 Mailet for RSpamD
Tung Van TRAN [Wed, 27 Jul 2022 00:37:33 +0000 (07:37 +0700)] 
JAMES-3775 Mailet for RSpamD

9 days agoJAMES-2340 IsMarkedAsSpam matcher should accept a dynamic spam status header
Tung Van TRAN [Thu, 28 Jul 2022 01:09:35 +0000 (08:09 +0700)] 
JAMES-2340 IsMarkedAsSpam matcher should accept a dynamic spam status header

10 days agoJAMES-3775 Write a task and webadmin route to feed spam to RSpamD (#1092)
Trần Hồng Quân [Tue, 9 Aug 2022 01:51:02 +0000 (08:51 +0700)] 
JAMES-3775 Write a task and webadmin route to feed spam to RSpamD (#1092)

2 weeks ago[FIX] Wrap CanSendFromImpl calls correctly (#1103)
Benoit TELLIER [Fri, 5 Aug 2022 01:29:33 +0000 (08:29 +0700)] 
[FIX] Wrap CanSendFromImpl calls correctly (#1103)

2 weeks agoJAMES-3794 Implement ActiveMQ HealthCheck (#1105)
Trần Hồng Quân [Fri, 5 Aug 2022 01:27:30 +0000 (08:27 +0700)] 
JAMES-3794 Implement ActiveMQ HealthCheck (#1105)

2 weeks agoJAMES-3771 Add upgrade instructions for elasticsearch migration to Opensearch
Rene Cordier [Mon, 1 Aug 2022 08:26:53 +0000 (15:26 +0700)] 
JAMES-3771 Add upgrade instructions for elasticsearch migration to Opensearch

2 weeks agoJAMES-3771 Upgrade to opensearch 2.1.0
Rene Cordier [Mon, 1 Aug 2022 04:43:33 +0000 (11:43 +0700)] 
JAMES-3771 Upgrade to opensearch 2.1.0

2 weeks agoJAMES-3771 Migrate to opensearch 2.0 and its high level rest java client
Rene Cordier [Tue, 5 Jul 2022 06:01:34 +0000 (13:01 +0700)] 
JAMES-3771 Migrate to opensearch 2.0 and its high level rest java client

2 weeks agoOnly unstable builds should be played for unstable profile in distributed-webadmin...
Rene Cordier [Fri, 29 Jul 2022 09:12:05 +0000 (16:12 +0700)] 
Only unstable builds should be played for unstable profile in distributed-webadmin-integration-test

2 weeks agoRework pre cleanup workspace in Jenkinsfile
Rene Cordier [Wed, 27 Jul 2022 09:09:40 +0000 (16:09 +0700)] 
Rework pre cleanup workspace in Jenkinsfile

2 weeks agoJAMES-3791 Integration test for RemoteDelivery concurrency
Benoit Tellier [Mon, 1 Aug 2022 04:39:24 +0000 (11:39 +0700)] 
JAMES-3791 Integration test for RemoteDelivery concurrency

Reliably reproduce the issue and would prevent regressions.

2 weeks agoJAMES-3775 Simplify and generify RSpamDHttpClient API
Benoit Tellier [Mon, 1 Aug 2022 04:06:43 +0000 (11:06 +0700)] 
JAMES-3775 Simplify and generify RSpamDHttpClient API

 - Avoid the javax.mail dependency: this undesired
  dependency should likely not be relied upon.
  This also enables callers to not parse the
  resulting mime message at all.
 - Upon reporting spam/ham do not split header/content. Reports can be done on the full message. Avoid pushing such a constraint to the caller.

3 weeks agoJAMES-3775 Implement a RSpamD client
Quan Tran [Wed, 20 Jul 2022 06:01:11 +0000 (13:01 +0700)] 
JAMES-3775 Implement a RSpamD client

3 weeks agotask/task-distributed - fixing NullPointerException when executeTask
Tung Van TRAN [Wed, 27 Jul 2022 17:44:55 +0000 (00:44 +0700)] 
task/task-distributed - fixing NullPointerException when executeTask

3 weeks agoJAMES-3784 EmptyErrorMailRepositoryHealthCheck support sizeReactive
Tung Van TRAN [Wed, 29 Jun 2022 03:47:10 +0000 (10:47 +0700)] 
JAMES-3784 EmptyErrorMailRepositoryHealthCheck support sizeReactive

3 weeks agoJAMES-3784 WebAdmin: Document - Provide RunningOptions (limit) for Redeliver event...
Tung Van TRAN [Mon, 27 Jun 2022 07:13:58 +0000 (14:13 +0700)] 
JAMES-3784 WebAdmin: Document - Provide RunningOptions (limit) for Redeliver event task, Reprocessing mail task

3 weeks agoJAMES-3784 WebAdmin: Provide RunningOptions (rateLimit) for Redeliver event task...
Tung Van TRAN [Thu, 23 Jun 2022 10:59:33 +0000 (17:59 +0700)] 
JAMES-3784 WebAdmin: Provide RunningOptions (rateLimit) for Redeliver event task, Reprocessing mail task

3 weeks agoJAMES-3784 HealthCheck /var/mail/error repository size
Tung Van TRAN [Thu, 23 Jun 2022 10:51:35 +0000 (17:51 +0700)] 
JAMES-3784 HealthCheck /var/mail/error repository size

3 weeks agoJAMES-3779 - Adapt SerialTaskManagerWorker with the latest code
Tung Van TRAN [Thu, 7 Jul 2022 09:31:20 +0000 (16:31 +0700)] 
JAMES-3779 - Adapt SerialTaskManagerWorker with the latest code

3 weeks agoJAMES-3779 - ClearMailQueueTask, DeleteMailsFromMailQueueTask remove blocking code...
Tung Van TRAN [Thu, 16 Jun 2022 03:11:45 +0000 (10:11 +0700)] 
JAMES-3779 - ClearMailQueueTask, DeleteMailsFromMailQueueTask remove blocking code in detailReactive

3 weeks agoJAMES-3779 - RabbitMQMailQueue support getSizeReactive
Tung Van TRAN [Thu, 16 Jun 2022 03:11:07 +0000 (10:11 +0700)] 
JAMES-3779 - RabbitMQMailQueue support getSizeReactive

3 weeks agoJAMES-3779 - Task implements support detailReactive
Tung Van TRAN [Tue, 14 Jun 2022 10:38:44 +0000 (17:38 +0700)] 
JAMES-3779 - Task implements support detailReactive

3 weeks agoJAMES-3779 - MailRepository support sizeReactive method
Tung Van TRAN [Mon, 13 Jun 2022 09:56:27 +0000 (16:56 +0700)] 
JAMES-3779 - MailRepository support sizeReactive method

3 weeks agoJAMES-3779 - Clean code some class related to Tasks
Tung Van TRAN [Mon, 13 Jun 2022 09:37:54 +0000 (16:37 +0700)] 
JAMES-3779 - Clean code some class related to Tasks

3 weeks agoJAMES-3779 - Override Tasks.detailsReactive for blocking implements
Tung Van TRAN [Mon, 13 Jun 2022 09:32:00 +0000 (16:32 +0700)] 
JAMES-3779 - Override Tasks.detailsReactive for blocking implements

3 weeks agoJAMES-3779 - TaskManagerWorker support the additionalInformation Publisher
Tung Van TRAN [Mon, 13 Jun 2022 09:14:16 +0000 (16:14 +0700)] 
JAMES-3779 - TaskManagerWorker support the additionalInformation Publisher

3 weeks agoJAMES-3779 - Tasks should avoid blocking calls into constructors.
Tung Van TRAN [Mon, 13 Jun 2022 07:45:18 +0000 (14:45 +0700)] 
JAMES-3779 - Tasks should avoid blocking calls into constructors.

3 weeks agoJAMES-3792 Remote and Local delivery should log MIME MessageId
Karsten Otto [Mon, 25 Jul 2022 10:34:54 +0000 (12:34 +0200)] 
JAMES-3792 Remote and Local delivery should log MIME MessageId

3 weeks agoJAMES-3791 Remote delivery pooling supports SMTPS
Karsten Otto [Mon, 25 Jul 2022 11:45:42 +0000 (13:45 +0200)] 
JAMES-3791 Remote delivery pooling supports SMTPS

4 weeks agoJAMES-3534 Fix Identity/set update when custom identity
Tung Van TRAN [Fri, 15 Jul 2022 06:51:08 +0000 (13:51 +0700)] 
JAMES-3534 Fix Identity/set update when custom identity

4 weeks agoJAMES-3775 Docker container for testing RSpamD
Rene Cordier [Mon, 18 Jul 2022 08:07:33 +0000 (15:07 +0700)] 
JAMES-3775 Docker container for testing RSpamD

5 weeks agoJAMES-3791 Remote Delivery uses a pool of SMTP sessions.
Karsten Otto [Wed, 13 Jul 2022 12:23:43 +0000 (14:23 +0200)] 
JAMES-3791 Remote Delivery uses a pool of SMTP sessions.

This prevents a race condition in setting per-delivery properties.

5 weeks agoJAMES-3760 Fixing memory leaks in MimeMessageWrapperTest
Rene Cordier [Wed, 6 Jul 2022 08:29:55 +0000 (15:29 +0700)] 
JAMES-3760 Fixing memory leaks in MimeMessageWrapperTest

6 weeks agoJAMES-3789 Upgrade apache commons-configuration to 2.8.0
Rene Cordier [Thu, 7 Jul 2022 03:30:35 +0000 (10:30 +0700)] 
JAMES-3789 Upgrade apache commons-configuration to 2.8.0

6 weeks agoJAMES-3787 RemoteDelivery: Error upon enqueue lead to email loss
Benoit Tellier [Thu, 30 Jun 2022 09:53:58 +0000 (16:53 +0700)] 
JAMES-3787 RemoteDelivery: Error upon enqueue lead to email loss

6 weeks agoJAMES-3544 - InMemoryUploadRepository - Fix InterruptedException
Tung Van TRAN [Thu, 30 Jun 2022 11:48:03 +0000 (18:48 +0700)] 
JAMES-3544 - InMemoryUploadRepository - Fix InterruptedException

6 weeks agoAdd a vhost configuration option to RabbitMQ
Rene Cordier [Mon, 4 Jul 2022 03:57:13 +0000 (10:57 +0700)] 
Add a vhost configuration option to RabbitMQ

7 weeks ago[REFACTOR] fixes james-server-mailets-integration-testing depending on accidental... 1065/head
Jean Helou [Wed, 29 Jun 2022 19:25:49 +0000 (21:25 +0200)] 
[REFACTOR] fixes james-server-mailets-integration-testing depending on accidental configuration

7 weeks ago[REFACTOR] throws a useful exception when configuration resource is missing
Jean Helou [Wed, 29 Jun 2022 19:24:54 +0000 (21:24 +0200)] 
[REFACTOR] throws a useful exception when configuration resource is missing

7 weeks ago[REFACTOR] fixes memory-jmap-rfc8621-integrqtion-tests depending on accidental config...
Jean Helou [Wed, 29 Jun 2022 19:24:07 +0000 (21:24 +0200)] 
[REFACTOR] fixes memory-jmap-rfc8621-integrqtion-tests depending on accidental configuration

7 weeks ago[REFACTOR] fixes webadmin-cli tests depending on accidental configuration
Jean Helou [Wed, 29 Jun 2022 19:23:25 +0000 (21:23 +0200)] 
[REFACTOR] fixes webadmin-cli tests depending on accidental configuration

7 weeks ago[REFACTOR] fixes memory-app tests depending on accidental configuration
Jean Helou [Fri, 24 Jun 2022 16:52:14 +0000 (18:52 +0200)] 
[REFACTOR] fixes memory-app tests depending on accidental configuration

7 weeks ago[REFACTOR] moves data-api configuration files to test sources
Jean Helou [Thu, 23 Jun 2022 10:59:35 +0000 (12:59 +0200)] 
[REFACTOR] moves data-api configuration files to test sources

By being in the main sources, they were automatically available on the
classpath, potentially masking missing files and applying incorrect or
involuntary default configuration.

Co-authored-by: Matthieu Baechler <matthieu@apache.org>
7 weeks agoJAMES-3786 Fix an example elasticsearch.properties link
Quan Tran [Tue, 28 Jun 2022 04:22:35 +0000 (11:22 +0700)] 
JAMES-3786 Fix an example elasticsearch.properties link

7 weeks agoJAMES-3786 Mailbox index could support dedicated language
Quan Tran [Tue, 28 Jun 2022 04:21:16 +0000 (11:21 +0700)] 
JAMES-3786 Mailbox index could support dedicated language

7 weeks agoJAMES-3785 Remove Redundant SNOWBALL_KEEP_MAIL_AND_URL analyzer in IndexCreationFactory
Quan Tran [Tue, 28 Jun 2022 03:27:22 +0000 (10:27 +0700)] 
JAMES-3785 Remove Redundant SNOWBALL_KEEP_MAIL_AND_URL analyzer in IndexCreationFactory

7 weeks ago[FIX] CacheDomainListTest::cacheShouldBeRefreshedPeriodicallyUnderReadLoad
Benoit Tellier [Thu, 30 Jun 2022 03:35:35 +0000 (10:35 +0700)] 
[FIX] CacheDomainListTest::cacheShouldBeRefreshedPeriodicallyUnderReadLoad

Some timing issues can cause elements to span one extra window.

7 weeks ago[IMPROVEMENT] Simplify AbstractProcessor reactive pipeline
Benoit Tellier [Thu, 30 Jun 2022 03:34:36 +0000 (10:34 +0700)] 
[IMPROVEMENT] Simplify AbstractProcessor reactive pipeline

7 weeks ago[FIX] CassandraTableManagerTest: rely everywhere on table creation timeout
Benoit Tellier [Thu, 30 Jun 2022 03:22:56 +0000 (10:22 +0700)] 
[FIX] CassandraTableManagerTest: rely everywhere on table creation timeout

7 weeks ago[REFACTORING] Error handling for reactive IMAP
Benoit Tellier [Thu, 30 Jun 2022 03:17:58 +0000 (10:17 +0700)] 
[REFACTORING] Error handling for reactive IMAP

Do error handing steps in one operation instead
of two.

7 weeks ago[REFACTORING] Collapse some final reactor statement together
Benoit Tellier [Thu, 30 Jun 2022 03:17:05 +0000 (10:17 +0700)] 
[REFACTORING] Collapse some final reactor statement together

This simplifies the reactive chain.

7 weeks agoFIX org.apache.james.mpt.imapmailbox.rabbitmq.RabbitMQRenameTest.testRenameITALY
Benoit Tellier [Thu, 30 Jun 2022 03:02:11 +0000 (10:02 +0700)] 
FIX org.apache.james.mpt.imapmailbox.rabbitmq.RabbitMQRenameTest.testRenameITALY

Mono::doFinally is not strict enough for when it
is run, causing bad ordering leading to bad
notifications. Executing the runnable is
stricter and fixes this.

7 weeks agoFIX CassandraBlobStoreClOneTest was instable
Benoit Tellier [Wed, 29 Jun 2022 05:26:36 +0000 (12:26 +0700)] 
FIX CassandraBlobStoreClOneTest was instable

blob entry and blobpart entry could increment the metrics.

7 weeks ago[IMPROVEMENT] Prevent RMI from doing System.gc every hour
Benoit Tellier [Mon, 27 Jun 2022 08:38:48 +0000 (15:38 +0700)] 
[IMPROVEMENT] Prevent RMI from doing System.gc every hour

7 weeks agoJAMES-3773 Fix a blocking call in a reactive pipeline in XUserAuthenticationStrategy
Rene Cordier [Tue, 28 Jun 2022 08:23:36 +0000 (15:23 +0700)] 
JAMES-3773 Fix a blocking call in a reactive pipeline in XUserAuthenticationStrategy

7 weeks ago[FIX] Increase Cassandra driver request timeout back to 5s
Benoit Tellier [Mon, 27 Jun 2022 11:53:21 +0000 (18:53 +0700)] 
[FIX] Increase Cassandra driver request timeout back to 5s

This was the default, pre Cassandra driver 4 that now relies on a 2s request timeout.

7 weeks ago[FIX] Read selected mailbox once
Benoit Tellier [Mon, 27 Jun 2022 11:50:36 +0000 (18:50 +0700)] 
[FIX] Read selected mailbox once

Concurrent connection closure could cause this to be null...

7 weeks ago[FIX] NettyImapSession race conditions
Benoit Tellier [Mon, 27 Jun 2022 11:49:58 +0000 (18:49 +0700)] 
[FIX] NettyImapSession race conditions

Initialisation done within Netty protocol threads might not be visible in some reactor threads.

Mutability... :-(

7 weeks agoFix CassandraSubscriptionManagerTest
Benoit Tellier [Mon, 27 Jun 2022 01:37:06 +0000 (08:37 +0700)] 
Fix CassandraSubscriptionManagerTest

Add a missing table needed for class initialization.

7 weeks agoFix RequeueThrottlingIntegrationTest::throttlingShouldWork
Benoit Tellier [Mon, 27 Jun 2022 01:29:49 +0000 (08:29 +0700)] 
Fix RequeueThrottlingIntegrationTest::throttlingShouldWork

This was lacking a precision that was then equal to the duration,
causing test instability.

7 weeks ago[JAMES-3763] Fixes BlobMailRepository: No isolation across mail repositories 1053/head
Jean Helou [Thu, 16 Jun 2022 20:27:42 +0000 (22:27 +0200)] 
[JAMES-3763] Fixes BlobMailRepository: No isolation across mail repositories

This is an issue as, for instance, when getting rid of the SPAMs that I received I might deletes email in ERROR that actually would like to redeliver causing thus data loss.

7 weeks agoJAMES-3763 BlobMailRepository: No isolation across mail repositories
Benoit Tellier [Fri, 10 Jun 2022 09:24:58 +0000 (16:24 +0700)] 
JAMES-3763 BlobMailRepository: No isolation across mail repositories

This is an issue as, for instance, when getting rid of the SPAMs that I
received I might deletes email in ERROR that actually would like to
redeliver causing thus data loss.

7 weeks agoJAMES-3781 As a user I want to enforce explicit configuration
Benoit Tellier [Fri, 17 Jun 2022 04:13:49 +0000 (11:13 +0700)] 
JAMES-3781 As a user I want to enforce explicit configuration

Adds james.fail.on.missing.configuration=true JVM option.

7 weeks agoJAMES-3774 Update upgrade-instructions.md
Benoit TELLIER [Thu, 9 Jun 2022 09:54:13 +0000 (16:54 +0700)] 
JAMES-3774 Update upgrade-instructions.md

Co-authored-by: Rene Cordier <rene.cordier@gmail.com>
7 weeks agoJAMES-3774 JVM properties: io.netty.leakDetection.level
Benoit Tellier [Wed, 15 Jun 2022 08:21:20 +0000 (15:21 +0700)] 
JAMES-3774 JVM properties: io.netty.leakDetection.level

7 weeks agoJAMES-3774 Cassandra driver 4 configuration in James APP
Benoit Tellier [Tue, 7 Jun 2022 07:51:47 +0000 (14:51 +0700)] 
JAMES-3774 Cassandra driver 4 configuration in James APP

Cassandra driver 4 no longer allow in depth programmatic
configuration, and instead relies on its own configuration mechanisms.

CF https://docs.datastax.com/en/developer/java-driver/4.13/manual/core/configuration/

We furthermore provide an optional LockLessConcurrencyLimitingRequestThrottler

See https://datastax-oss.atlassian.net/browse/JAVA-3024

7 weeks agoJAMES-3774 Avoid some blocking calls
Benoit Tellier [Sat, 11 Jun 2022 08:19:26 +0000 (15:19 +0700)] 
JAMES-3774 Avoid some blocking calls

Blocking the Cassandra event loop is harmful and blocking operations should be avoided at all cost!

Calling .block on Cassandra opertion within a cassandra query post computation will lead the
cassandra driver netty event loop to a halt and cause a timeout. This should be avoided at all cost!

7 weeks agoJAMES-3774 Migrate Apps and integration tests to Cassandra driver 4
Quan Tran [Wed, 8 Jun 2022 07:28:12 +0000 (14:28 +0700)] 
JAMES-3774 Migrate Apps and integration tests to Cassandra driver 4

7 weeks agoJAMES-3774 Migrate server/container/guice/cassandra to Cassandra driver 4
Quan Tran [Wed, 8 Jun 2022 07:27:09 +0000 (14:27 +0700)] 
JAMES-3774 Migrate server/container/guice/cassandra to Cassandra driver 4

7 weeks agoJAMES-3774 Migrate mailbox/cassandra to Cassandra driver 4
Quan Tran [Tue, 7 Jun 2022 10:15:19 +0000 (17:15 +0700)] 
JAMES-3774 Migrate mailbox/cassandra to Cassandra driver 4

7 weeks agoJAMES-3774 Migrate server/queue/queue-rabbitmq to Cassandra driver 4
Tung Van TRAN [Mon, 6 Jun 2022 10:10:49 +0000 (17:10 +0700)] 
JAMES-3774 Migrate server/queue/queue-rabbitmq to Cassandra driver 4

7 weeks agoJAMES-3774 Migrate mailbox/plugin/deleted-messages-vault-cassandra to Cassandra driver 4
Benoit Tellier [Mon, 6 Jun 2022 08:59:53 +0000 (15:59 +0700)] 
JAMES-3774 Migrate mailbox/plugin/deleted-messages-vault-cassandra to Cassandra driver 4

7 weeks agoJAMES-3774 Migrate server/data/data-cassandra to Cassandra driver 4
Tung Van TRAN [Mon, 6 Jun 2022 06:54:02 +0000 (13:54 +0700)] 
JAMES-3774 Migrate server/data/data-cassandra to Cassandra driver 4

7 weeks agoJAMES-3774 Migrate server/blob/blob-cassandra to Cassandra driver 4
Tung Van TRAN [Fri, 3 Jun 2022 10:17:13 +0000 (17:17 +0700)] 
JAMES-3774 Migrate server/blob/blob-cassandra to Cassandra driver 4