james-project.git
7 months ago[maven-release-plugin] prepare for next development iteration
Benoit Tellier [Tue, 1 Mar 2022 07:14:30 +0000 (14:14 +0700)] 
[maven-release-plugin] prepare for next development iteration

7 months ago[maven-release-plugin] prepare release james-project-3.7.0 james-project-3.7.0
Benoit Tellier [Tue, 1 Mar 2022 07:01:45 +0000 (14:01 +0700)] 
[maven-release-plugin] prepare release james-project-3.7.0

7 months agoJAMES-3715 Add tests for IMAP COMPRESS transport layer
Benoit Tellier [Sat, 26 Feb 2022 04:58:58 +0000 (11:58 +0700)] 
JAMES-3715 Add tests for IMAP COMPRESS transport layer

Commons-net do not look like it supports compression thus I resorted
to use javax.mail

Compression is one of the untested features that broke during the
Netty 4 upgrade thus I take this opportunity to add more tests.

7 months ago[UPGRADE] scala maven plugin change recompileMode: incremental -> all
Tung Van TRAN [Sat, 26 Feb 2022 07:39:40 +0000 (14:39 +0700)] 
[UPGRADE] scala maven plugin change recompileMode: incremental -> all

7 months ago[CHANGELOG] Add recent changes to the changelog
Benoit Tellier [Fri, 25 Feb 2022 13:49:17 +0000 (20:49 +0700)] 
[CHANGELOG] Add recent changes to the changelog

7 months agoJAMES-3715 PartialFetchBodyElement: use Optional to represent absence
Benoit Tellier [Thu, 24 Feb 2022 02:25:05 +0000 (09:25 +0700)] 
JAMES-3715 PartialFetchBodyElement: use Optional to represent absence

This makes the behaviour explicit and prevents mis-calculations down the
line, and solves partial fetchs with only the offset (commons-net IMAP
stack is happy...)

7 months agoJAMES-3715 Adds tests for IMAP partial fetch over Netty transport
Benoit Tellier [Thu, 24 Feb 2022 02:18:44 +0000 (09:18 +0700)] 
JAMES-3715 Adds tests for IMAP partial fetch over Netty transport

Under some circumstances those broke with Netty4 and the little test
suite introduced here reliably demonstrates this.

Furthermore, we identified an issue regarding partial fetch when only
the offset is specified. This is due to the usage of Long.MAX_VALUE to
represent absence, and that causes some mis-calculations down the line.

7 months ago[SONAR] Solve some minor warnings in server/data projects
Benoit Tellier [Mon, 21 Feb 2022 08:24:33 +0000 (15:24 +0700)] 
[SONAR] Solve some minor warnings in server/data projects

7 months ago[SONAR] Solve some minor warnings in mailet projects
Benoit Tellier [Mon, 21 Feb 2022 08:24:22 +0000 (15:24 +0700)] 
[SONAR] Solve some minor warnings in mailet projects

7 months ago[SONAR] Run inspections for Tasks projects
Benoit Tellier [Sun, 20 Feb 2022 06:30:39 +0000 (13:30 +0700)] 
[SONAR] Run inspections for Tasks projects

7 months ago[SONAR] Run inspections for Backend projects
Benoit Tellier [Sun, 20 Feb 2022 06:19:07 +0000 (13:19 +0700)] 
[SONAR] Run inspections for Backend projects

7 months ago[SONAR] Run inspections for WebAdmin projects
Benoit Tellier [Sun, 20 Feb 2022 06:18:45 +0000 (13:18 +0700)] 
[SONAR] Run inspections for WebAdmin projects

7 months agoJAMES-3693 Add getModule to provide Redis Configuration in RedisExtension
Tung Van TRAN [Thu, 24 Feb 2022 09:13:04 +0000 (16:13 +0700)] 
JAMES-3693 Add getModule to provide Redis Configuration in RedisExtension

7 months agoJAMES-3714 Attachments of EML with inlined multiparts is badly handle
Benoit TELLIER [Fri, 25 Feb 2022 02:28:12 +0000 (09:28 +0700)] 
JAMES-3714 Attachments of EML with inlined multiparts is badly handle

7 months agoJAMES-3150 Allow configuration of generation duration and family
Benoit Tellier [Sun, 20 Feb 2022 04:05:16 +0000 (11:05 +0700)] 
JAMES-3150 Allow configuration of generation duration and family

7 months agoJAMES-3150 GC BloomFilter default false positive rate 0.8 -> 0.01
Benoit Tellier [Sun, 20 Feb 2022 02:18:59 +0000 (09:18 +0700)] 
JAMES-3150 GC BloomFilter default false positive rate 0.8 -> 0.01

0.8 as a false positive rate do not make sense.

We furthermore slightly better document bloom filter sizing
properties.

7 months agoJAMES-3317 Apply duplicating/deduplicating module choosing for Cassandra guice produc...
Benoit Tellier [Sun, 20 Feb 2022 02:01:58 +0000 (09:01 +0700)] 
JAMES-3317 Apply duplicating/deduplicating module choosing for Cassandra guice product too

 -> This is what the doc says
 -> This limits behavior divergence between the Cassandra and
 Distributed products

 Because there's nothing worse that choosing the wrong BlobStore
 we need to apply this configuration.

 AES encryption ships as a bonus...

7 months ago[TODO] Fix a bunch of false positive todos
Benoit Tellier [Mon, 21 Feb 2022 08:48:37 +0000 (15:48 +0700)] 
[TODO] Fix a bunch of false positive todos

7 months ago[PERF] Re-use a regex in FileSystemBlobStrategy
Benoit Tellier [Sat, 19 Feb 2022 10:24:11 +0000 (17:24 +0700)] 
[PERF] Re-use a regex in FileSystemBlobStrategy

7 months agoJAMES-3150 Fix RabbitMQWebAdminServerBlobGCIntegrationTest
Benoit Tellier [Fri, 18 Feb 2022 08:25:09 +0000 (15:25 +0700)] 
JAMES-3150 Fix RabbitMQWebAdminServerBlobGCIntegrationTest

An input stream was reused, thus empty on the second try. We
should fix this input mistake and correct the wrong assertions
based on it.

7 months agoJAMES-3693 add a property in redis configuration for enabling cluster connection
Rene Cordier [Wed, 16 Feb 2022 09:55:18 +0000 (16:55 +0700)] 
JAMES-3693 add a property in redis configuration for enabling cluster connection

7 months agoJAMES-3713 Document DLP for the distributed server
Benoit Tellier [Wed, 16 Feb 2022 07:33:02 +0000 (14:33 +0700)] 
JAMES-3713 Document DLP for the distributed server

7 months agoJAMES-3713 Enable rules caching for DLP
Benoit Tellier [Wed, 16 Feb 2022 07:27:06 +0000 (14:27 +0700)] 
JAMES-3713 Enable rules caching for DLP

Querying DLP rules on top of Cassandra relies on Event
sourcing, involves reading a potentially large event
stream and involves some SERIAL reads (LightWeight
transactions) for each processed emails.

7 months agoJAMES-3711 Document for Requeue mailet
Tung Van TRAN [Fri, 11 Feb 2022 05:42:08 +0000 (12:42 +0700)] 
JAMES-3711 Document for Requeue mailet

7 months agoJAMES-3711 Integration test combining ReQueue and RateLimit
Tung Van TRAN [Fri, 11 Feb 2022 05:41:34 +0000 (12:41 +0700)] 
JAMES-3711 Integration test combining ReQueue and RateLimit

7 months agoJAMES-3711 Implement a Requeue mailet
Tung Van TRAN [Fri, 11 Feb 2022 05:41:16 +0000 (12:41 +0700)] 
JAMES-3711 Implement a Requeue mailet

7 months agoJAMES-3693 Add missing dependency declaration in root pom for redis rate limiter...
Rene Cordier [Wed, 16 Feb 2022 03:14:32 +0000 (03:14 +0000)] 
JAMES-3693 Add missing dependency declaration in root pom for redis rate limiter module (#883)

7 months ago[SonarLint] Disable XXE cf CWE-611
Benoit Tellier [Sun, 6 Feb 2022 16:24:00 +0000 (23:24 +0700)] 
[SonarLint] Disable XXE cf CWE-611

https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html

7 months ago[SonarLint] Release ThreadLocal
Benoit Tellier [Sun, 6 Feb 2022 15:41:49 +0000 (22:41 +0700)] 
[SonarLint] Release ThreadLocal

ThreadLocal variables are supposed to be garbage collected once the holding thread is no longer alive. Memory leaks can occur when holding threads are re-used which is the case on application servers using pool of threads.
To avoid such problems, it is recommended to always clean up ThreadLocal variables using the remove() method to remove the current thread’s value for the ThreadLocal variable.

7 months ago[SonarLint] Fix a few code style issues in James server mains
Benoit Tellier [Sun, 6 Feb 2022 15:16:23 +0000 (22:16 +0700)] 
[SonarLint] Fix a few code style issues in James server mains

7 months ago[SonarLint] Fix a few code style issues in james-server-blob
Benoit Tellier [Sun, 6 Feb 2022 14:53:51 +0000 (21:53 +0700)] 
[SonarLint] Fix a few code style issues in james-server-blob

7 months ago[SonarLint] Don't swallow interrupted exceptions
Benoit Tellier [Sun, 6 Feb 2022 14:48:58 +0000 (21:48 +0700)] 
[SonarLint] Don't swallow interrupted exceptions

7 months ago[SonarLint] Fix a few code smalls in Guice related projects
Benoit Tellier [Sun, 6 Feb 2022 14:36:51 +0000 (21:36 +0700)] 
[SonarLint] Fix a few code smalls in Guice related projects

7 months ago[SonarLint] FileMailRepository "notifyAll" should be used
Benoit Tellier [Sun, 6 Feb 2022 14:36:30 +0000 (21:36 +0700)] 
[SonarLint] FileMailRepository "notifyAll" should be used

notify and notifyAll both wake up sleeping threads, but notify only rouses one, while notifyAll rouses all of them. Since notify might not wake up the right thread, notifyAll should be used instead.

7 months ago[SonarLint] Small refactorings in guice-common
Benoit Tellier [Sun, 6 Feb 2022 14:29:25 +0000 (21:29 +0700)] 
[SonarLint] Small refactorings in guice-common

7 months ago[SonarLint] CVE-2015-5254 Explicitly says our ActiveMQ code not to deserialize untrus...
Benoit Tellier [Fri, 4 Feb 2022 15:51:10 +0000 (22:51 +0700)] 
[SonarLint] CVE-2015-5254 Explicitly says our ActiveMQ code not to deserialize untrusted data

ActiveMQ can send/receive JMS Object messages (named ObjectMessage in ActiveMQ context) to comply with JMS specification. Internally, ActiveMQ relies on Java serialization mechanism for marshaling/unmarshaling of the message payload. Deserialization based on data supplied by the user could lead to remote code execution attacks, where the structure of the serialized data is changed to modify the behavior of the object being unserialized.
To limit the risk to be victim of such attack, ActiveMQ 5.12.2+ enforces developers to explicitly whitelist packages that can be exchanged using ObjectMessages.

Our exposure is anyway very limited (only an in-vm one),
but taking defensive measures likely do not hurt.

7 months ago[SonarLint] Solve a crazy bug for Math.abs(MIN_VALUE)
Benoit Tellier [Fri, 4 Feb 2022 15:37:00 +0000 (22:37 +0700)] 
[SonarLint] Solve a crazy bug for Math.abs(MIN_VALUE)

I learnt something...

7 months ago[SonarLint] Solve a couple of warnings in event-bus/*
Benoit Tellier [Fri, 4 Feb 2022 15:17:43 +0000 (22:17 +0700)] 
[SonarLint] Solve a couple of warnings in event-bus/*

7 months ago[SonarLint] Solve a couple of warnings in event-bus/api
Benoit Tellier [Fri, 4 Feb 2022 15:07:09 +0000 (22:07 +0700)] 
[SonarLint] Solve a couple of warnings in event-bus/api

7 months ago[SonarLint] Solve a couple of warnings in mailet/amqp
Benoit Tellier [Fri, 4 Feb 2022 14:56:41 +0000 (21:56 +0700)] 
[SonarLint] Solve a couple of warnings in mailet/amqp

7 months ago[SonarLint] Solve a couple of warnings in mailet/api
Benoit Tellier [Fri, 4 Feb 2022 14:55:01 +0000 (21:55 +0700)] 
[SonarLint] Solve a couple of warnings in mailet/api

7 months ago[SonarLint] Solve a couple of warnings in mailet/icalendar
Benoit Tellier [Fri, 4 Feb 2022 14:48:46 +0000 (21:48 +0700)] 
[SonarLint] Solve a couple of warnings in mailet/icalendar

7 months ago[SonarLint] Solve a couple of warnings in mailet/standard
Benoit Tellier [Fri, 4 Feb 2022 14:47:37 +0000 (21:47 +0700)] 
[SonarLint] Solve a couple of warnings in mailet/standard

7 months ago[SonarLint] Solve a couple of warnings in server/mailet/mailet-container
Benoit Tellier [Fri, 4 Feb 2022 14:33:25 +0000 (21:33 +0700)] 
[SonarLint] Solve a couple of warnings in server/mailet/mailet-container

7 months ago[SonarLint] Solve a couple of warnings in server/data/data-ldap
Benoit Tellier [Fri, 4 Feb 2022 14:32:52 +0000 (21:32 +0700)] 
[SonarLint] Solve a couple of warnings in server/data/data-ldap

7 months ago[SonarLint] Solve a couple of warnings in server/data/data-jmap-cassandra
Benoit Tellier [Fri, 4 Feb 2022 14:32:39 +0000 (21:32 +0700)] 
[SonarLint] Solve a couple of warnings in server/data/data-jmap-cassandra

7 months ago[SonarLint] Solve a couple of warnings in server/mailet/mailets
Benoit Tellier [Fri, 4 Feb 2022 14:32:13 +0000 (21:32 +0700)] 
[SonarLint] Solve a couple of warnings in server/mailet/mailets

7 months ago[SonarLint] Solve a couple of warnings in server/protocols/IMAP
Benoit Tellier [Fri, 4 Feb 2022 14:31:50 +0000 (21:31 +0700)] 
[SonarLint] Solve a couple of warnings in server/protocols/IMAP

7 months ago[SonarLint] Solve a couple of warnings in protocols/smtp
Benoit Tellier [Fri, 4 Feb 2022 14:31:17 +0000 (21:31 +0700)] 
[SonarLint] Solve a couple of warnings in protocols/smtp

7 months ago[SonarLint] Solve a couple of warnings in mailbox/store
Benoit Tellier [Fri, 4 Feb 2022 14:30:56 +0000 (21:30 +0700)] 
[SonarLint] Solve a couple of warnings in mailbox/store

7 months ago[SonarLint] Solve a couple of warnings in mailbox/elasticsearch-v7
Benoit Tellier [Fri, 4 Feb 2022 14:30:28 +0000 (21:30 +0700)] 
[SonarLint] Solve a couple of warnings in mailbox/elasticsearch-v7

7 months ago[SonarLint] Solve a couple of warnings in mailbox/api
Benoit Tellier [Fri, 4 Feb 2022 14:30:11 +0000 (21:30 +0700)] 
[SonarLint] Solve a couple of warnings in mailbox/api

7 months ago[SonarLint] SearchQuery failed at being serializable
Benoit Tellier [Fri, 4 Feb 2022 14:26:24 +0000 (21:26 +0700)] 
[SonarLint] SearchQuery failed at being serializable

 - Several fields were not serializable
 - Unneeded boxing was performed
 - There is no apparent needs of why one would want to
 serialize a search query
 - Java serialization is always a terrible idea...

7 months ago[SonarLint] Solve a bunch of warnings for mailbox/cassandra
Benoit Tellier [Fri, 4 Feb 2022 14:15:10 +0000 (21:15 +0700)] 
[SonarLint] Solve a bunch of warnings for mailbox/cassandra

7 months ago[SonarLint] CountingInputStream: improve readAll
Benoit Tellier [Fri, 4 Feb 2022 13:47:01 +0000 (20:47 +0700)] 
[SonarLint] CountingInputStream: improve readAll

This best practice yields a x4 improvment when operating on
 top of a ByteArrayInputStream.

    @Test
    void bench() {
        byte[] bytes = ClassLoaderUtils.getSystemResourceAsByteArray("eml/emailWithNonIndexableAttachment.eml");

        IntStream.range(0, 10)
            .forEach(Throwing.intConsumer(i -> new CountingInputStream(new ByteArrayInputStream(bytes)).readAll()));

        final Stopwatch stopwatch = Stopwatch.createStarted();

        IntStream.range(0, 1000)
            .forEach(Throwing.intConsumer(i -> new CountingInputStream(new ByteArrayInputStream(bytes)).readAll()));
        System.out.println(stopwatch.elapsed(TimeUnit.MILLISECONDS));
    }

7 months agoJAMES-3693 Add documentation for PerRecipientRateLimitMailet
Quan Tran [Mon, 7 Feb 2022 09:52:23 +0000 (16:52 +0700)] 
JAMES-3693 Add documentation for PerRecipientRateLimitMailet

7 months agoJAMES-3693 Rate limiting should allow choosing precision
Quan Tran [Mon, 7 Feb 2022 08:40:38 +0000 (15:40 +0700)] 
JAMES-3693 Rate limiting should allow choosing precision

7 months ago[DOCUMENTATION] Example for deploying MUA auto-configuration (#882)
Benoit TELLIER [Fri, 11 Feb 2022 08:22:34 +0000 (15:22 +0700)] 
[DOCUMENTATION] Example for deploying MUA auto-configuration (#882)

- RFC-6186 Using SRV records
 - Auto-configuration for thunderbirds
 - Notes on JMAP auto-configuration

7 months agoJAMES-3683 GlobalRateLimitIntegrationTest: Add a await
Benoit Tellier [Thu, 10 Feb 2022 03:50:18 +0000 (10:50 +0700)] 
JAMES-3683 GlobalRateLimitIntegrationTest: Add a await

7 months agoJAMES-3683 PerRecipientRateLimitMailet -> PerRecipientRateLimit & javadoc
Benoit Tellier [Wed, 9 Feb 2022 07:57:29 +0000 (14:57 +0700)] 
JAMES-3683 PerRecipientRateLimitMailet -> PerRecipientRateLimit & javadoc

7 months agoJAMES-3683 PerRecipientRateLimitMailet -> PerRecipientRateLimit & javadoc
Benoit Tellier [Mon, 7 Feb 2022 10:29:19 +0000 (17:29 +0700)] 
JAMES-3683 PerRecipientRateLimitMailet -> PerRecipientRateLimit & javadoc

7 months agoJAMES-3683 Introduce a redis.properties configuration file
Benoit Tellier [Mon, 7 Feb 2022 03:57:16 +0000 (10:57 +0700)] 
JAMES-3683 Introduce a redis.properties configuration file

7 months agoJAMES-3683 Tiny scala code style enhancement
Benoit Tellier [Fri, 28 Jan 2022 04:58:46 +0000 (11:58 +0700)] 
JAMES-3683 Tiny scala code style enhancement

7 months agoJAMES-3683 Document the use of the Redis rate limiter
Benoit Tellier [Fri, 28 Jan 2022 04:50:02 +0000 (11:50 +0700)] 
JAMES-3683 Document the use of the Redis rate limiter

7 months agoJAMES-3683 Package the Redis Rate Limiter in a jar-with-dependencies
Benoit Tellier [Fri, 28 Jan 2022 04:49:46 +0000 (11:49 +0700)] 
JAMES-3683 Package the Redis Rate Limiter in a jar-with-dependencies

Size: 4.3 MB

7 months agoJAMES-3683 Guice injections for the Redis Rate limiter implementation
Benoit Tellier [Fri, 28 Jan 2022 04:49:06 +0000 (11:49 +0700)] 
JAMES-3683 Guice injections for the Redis Rate limiter implementation

7 months agoJAMES-3693 Support connections to a Redis Cluster
Benoit Tellier [Fri, 28 Jan 2022 04:19:48 +0000 (11:19 +0700)] 
JAMES-3693 Support connections to a Redis Cluster

Changeset tested manually

7 months agoJAMES-3693 Integration test: Mailet PerRecipientRateLimit (#875)
vttran [Wed, 9 Feb 2022 03:24:32 +0000 (10:24 +0700)] 
JAMES-3693 Integration test: Mailet PerRecipientRateLimit (#875)

7 months agoJAMES-3708 Get rid of StringBuffer in MailAddress
Benoit Tellier [Tue, 1 Feb 2022 07:01:27 +0000 (14:01 +0700)] 
JAMES-3708 Get rid of StringBuffer in MailAddress

 - This is returned as a code smell by SonarLint
 - StringBuilder is not synchronized thus faster
 - Remove uneeded copied, toString call

Micro-benchmarks shows this change set fastens the code
by ~25%. Effect on memory allocation was not measured.

7 months agoJAMES-3708 Fix some assertions in WebAdmin
Benoit Tellier [Sun, 30 Jan 2022 13:32:40 +0000 (20:32 +0700)] 
JAMES-3708 Fix some assertions in WebAdmin

7 months agoJAMES-3708 MailAddress::toInternetAddress should return an optional
Benoit Tellier [Sun, 30 Jan 2022 13:26:20 +0000 (20:26 +0700)] 
JAMES-3708 MailAddress::toInternetAddress should return an optional

This forces callers to explicitly handle the missing
case thus minimising the impact of possible defects
(no NPE and quality caller should handle that in a
graceful way).

Also adds a log to simplify diagnostic.

7 months agoJAMES-3708 Tests for valid/invalid mail address values on the wikipedia page
Benoit Tellier [Sun, 30 Jan 2022 05:15:29 +0000 (12:15 +0700)] 
JAMES-3708 Tests for valid/invalid mail address values on the wikipedia page

7 months agoJAMES-3708 Stricter domain and address parsing
Benoit Tellier [Sun, 30 Jan 2022 05:08:15 +0000 (12:08 +0700)] 
JAMES-3708 Stricter domain and address parsing

This avoids having down the line domains and email
addresses we do not know handling.

Note that this work is inspired from InternetDomainName
with the modification that we allow domains being IP
addresses.

7 months agoJAMES-3708 Invalid mail address: Demonstrate NPE in RemoteDelivery
Benoit Tellier [Tue, 25 Jan 2022 07:53:00 +0000 (14:53 +0700)] 
JAMES-3708 Invalid mail address: Demonstrate NPE in RemoteDelivery

7 months ago[REFACTORING] StripAttachment: use Optional to denote pattern absence
Benoit Tellier [Mon, 31 Jan 2022 03:26:13 +0000 (10:26 +0700)] 
[REFACTORING] StripAttachment: use Optional to denote pattern absence

7 months ago[REFACTORING] ReadOnlyLDAPUsersDAO: null -> Optional refactoring
Benoit Tellier [Mon, 31 Jan 2022 03:15:29 +0000 (10:15 +0700)] 
[REFACTORING] ReadOnlyLDAPUsersDAO: null -> Optional refactoring

Minimal reach as it was a private method, but better be
safe...

7 months ago[REFACTORING] SMTPResponse: Remove buggy constructor
Benoit Tellier [Sun, 30 Jan 2022 15:32:36 +0000 (22:32 +0700)] 
[REFACTORING] SMTPResponse: Remove buggy constructor

 - Calls could easily be switched to the other cnstructor
 - It was buggy: null pointer exception, array out of
 bound exception... Risky stuff!
 - Also, a custom AuthenticationHook disconnecting the
 session was throwing (new SMTPResponse("") throws)

7 months ago[REFACTORING] VacationAction: error handling returning null
Benoit Tellier [Sun, 30 Jan 2022 15:08:55 +0000 (22:08 +0700)] 
[REFACTORING] VacationAction: error handling returning null

The last of the code base!

Was throwing a NPE... This can safely be skipped.

7 months ago[REFACTORING] Reduce visibility of a ethod that returns null
Benoit Tellier [Sun, 30 Jan 2022 15:07:00 +0000 (22:07 +0700)] 
[REFACTORING] Reduce visibility of a ethod that returns null

7 months ago[REFACTORING] Remove a duplicated unused partially implemented class
Benoit Tellier [Sun, 30 Jan 2022 15:06:37 +0000 (22:06 +0700)] 
[REFACTORING] Remove a duplicated unused partially implemented class

7 months ago[SCALA_CHECKSTYLE] Upgrade version 0.1.4_0.9.23 -> 0.1.4_0.9.33 (#879)
vttran [Wed, 9 Feb 2022 01:25:13 +0000 (08:25 +0700)] 
[SCALA_CHECKSTYLE] Upgrade version 0.1.4_0.9.23 -> 0.1.4_0.9.33 (#879)

7 months agoJAMES-3693 Rate limiter - update pom (#878)
vttran [Wed, 9 Feb 2022 01:25:02 +0000 (08:25 +0700)] 
JAMES-3693 Rate limiter - update pom (#878)

7 months agoJAMES-343 Performance: Use ImmutableMap copy upon DSN parameters lookup (#881)
Benoit TELLIER [Wed, 9 Feb 2022 01:24:53 +0000 (08:24 +0700)] 
JAMES-343 Performance: Use ImmutableMap copy upon DSN parameters lookup (#881)

Before a streaming copy was done, taking ~28% of CPU
time for RecipientRewriteTable lookups.

7 months agoCVE-2022-22931 JAMES-3646 Rely on strong typing for file paths operations (#877)
Benoit TELLIER [Wed, 9 Feb 2022 01:24:12 +0000 (08:24 +0700)] 
CVE-2022-22931 JAMES-3646 Rely on strong typing for file paths operations (#877)

7 months agoJAMES-3712 Remove RedirectNotify::getMimeMessageModifier
Benoit Tellier [Thu, 3 Feb 2022 15:50:21 +0000 (22:50 +0700)] 
JAMES-3712 Remove RedirectNotify::getMimeMessageModifier

This level of indirection is no longer needed.

7 months agoJAMES-3712 Bounce should prefix bounced message
Benoit Tellier [Thu, 3 Feb 2022 15:44:42 +0000 (22:44 +0700)] 
JAMES-3712 Bounce should prefix bounced message

7 months ago[RELEASE] Modify download page to advertise 3.6.2
Benoit Tellier [Wed, 26 Jan 2022 04:32:16 +0000 (11:32 +0700)] 
[RELEASE] Modify download page to advertise 3.6.2

7 months ago[RELEASE] Documentation should match 3.6.2 version
Benoit Tellier [Wed, 26 Jan 2022 04:30:40 +0000 (11:30 +0700)] 
[RELEASE] Documentation should match 3.6.2 version

7 months ago[RELEASE] Docker-compose images should match the one being built
Benoit Tellier [Wed, 26 Jan 2022 04:30:08 +0000 (11:30 +0700)] 
[RELEASE] Docker-compose images should match the one being built

7 months ago[DOCUMENTATION] Small corrections
Benoit Tellier [Wed, 26 Jan 2022 04:29:41 +0000 (11:29 +0700)] 
[DOCUMENTATION] Small corrections

7 months ago[RELEASE] 3.6.2 Post on the blog
Benoit Tellier [Wed, 26 Jan 2022 03:47:14 +0000 (10:47 +0700)] 
[RELEASE] 3.6.2 Post on the blog

7 months ago[RELEASE] Upgrade instructions for 3.6.2
Benoit Tellier [Wed, 26 Jan 2022 03:43:09 +0000 (10:43 +0700)] 
[RELEASE] Upgrade instructions for 3.6.2

7 months ago[RELEASE] Changelog for 3.6.2
Benoit Tellier [Wed, 26 Jan 2022 03:42:42 +0000 (10:42 +0700)] 
[RELEASE] Changelog for 3.6.2

7 months agoJAMES-3709 Refactoring POP3 command handlers to share common code.
Karsten Otto [Mon, 24 Jan 2022 14:42:28 +0000 (15:42 +0100)] 
JAMES-3709 Refactoring POP3 command handlers to share common code.
Also fixes a disabled POP3ServerTest.

7 months agoJAMES-3709 Concurrent message deletion can cause issue in POP3
Benoit Tellier [Wed, 26 Jan 2022 11:13:27 +0000 (18:13 +0700)] 
JAMES-3709 Concurrent message deletion can cause issue in POP3

7 months agoJAMES-3693 Integration Tests for GlobalRateLimit and PerSenderRateLimit (#869)
Trần Hồng Quân [Mon, 31 Jan 2022 03:11:19 +0000 (10:11 +0700)] 
JAMES-3693 Integration Tests for GlobalRateLimit and PerSenderRateLimit (#869)

7 months agoJAMES-3693 Mailet PerRecipientRateLimit implementation (#853)
vttran [Mon, 31 Jan 2022 03:10:58 +0000 (10:10 +0700)] 
JAMES-3693 Mailet PerRecipientRateLimit implementation (#853)

7 months ago[FIX] Remove some debugging statements within JVMMailboxPathLocker (#871)
Benoit TELLIER [Mon, 31 Jan 2022 03:09:56 +0000 (10:09 +0700)] 
[FIX] Remove some debugging statements within JVMMailboxPathLocker (#871)

7 months agoJAMES-3432 Uploads should return JSON content type (#862)
Benoit TELLIER [Mon, 31 Jan 2022 03:09:46 +0000 (10:09 +0700)] 
JAMES-3432 Uploads should return JSON content type (#862)

7 months ago[DOCUMENTATION] Mention Log4Shell on James security page (#864)
Benoit TELLIER [Mon, 31 Jan 2022 03:09:07 +0000 (10:09 +0700)] 
[DOCUMENTATION] Mention Log4Shell on James security page (#864)