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

rcordier pushed a change to branch postgresql
in repository https://gitbox.apache.org/repos/asf/james-project.git


    omit 94635f6a2f JAMES-2586 postgres mailbox - drop 
JPAStreamingMailboxMessage, JPAEncryptedMailboxMessage, 
JPAMailboxMessageWithAttachmentStorage
    omit 410bb12f41 JAMES-2586 Rename mailbox postgres package
    omit 26156edf76 JAMES-2586 Rename Postgres Subscription
    omit 3591f3ec77 JAMES-2586 Guice binding for Postgres subscription module
    omit 1fbca94689 JAMES-2586 Fix review comments
    omit 0f4472ebc5 JAMES-2586 Sample docker configuration for 
postgres.properties
    omit 6e3ac918c7 JAMES-2586 PostgresTableManager should only create RLS 
column when general RLS configuration enabled
    omit ca9e57cf74 JAMES-2586 Guice binding for PostgresTableManager
    omit 84d8337ed2 JAMES-2586 Guice binding for JamesPostgresConnectionFactory
    omit 3b1c48a958 JAMES-2586 Guice binding for PostgresConfiguration
    omit 19387703e1 JAMES-2586 Rename postgres-app tests' name: JPA -> Postgres
    omit a350bf3387 JAMES-2586 Introduce PostgresConfiguration
    omit 9190994801 JAMES-2586 implement pg connection factory (#1774)
    omit 31d8ec6e77 JAMES-2586 Postgres Subscription mapper (#1775)
    omit 16576107cd JAMES-2586 Introduce PostgresExtension
    omit 898140ff68 [CI] Maven runs test on only postgres modules (postgresql 
branch)
    omit c1fc08fee6 JAMES-2586 PostgresTableManager support create table when 
enable row level security
    omit fa0810a29e JAMES-2586 - Implement PostgresTableManager
    omit 06a39c22a9 JAMES-2586 - Postgres - Init 
james-serrver-guice-mailbox-postgres
    omit c5522a0745 JAMES-2586 - Postgres - Init 
james-server-postgres-common-guice
    omit 9d2e30183d JAMES-2586 - Postgres - Init james-server-data-postgres
    omit 7b44425c41 JAMES-2586 - Postgres - Init postgres app server
    omit fb2e63ecb8 JAMES-2586 - Postgres - Init postgres mailbox module
    omit 050c35ddf8 JAMES-2586 - Postgres - Init backend common module for 
postgres
     add ff1796e869 JAMES-3949 Prevent usage of JMX file auto configuration on 
Windows (#1763)
     add 9968f4c8d1 [ADR] Update few ADRs status
     add ee0ce806e6 JAMES-2586 ADR: Native PostgreSQL adoption
     add 55454b26a3 JAMES-3944 FILTER: forward loop issue (#1762)
     add 45661998bd ADR-69 - Crowdsec IP filtering (#1761)
     add 5aae9234ed JAMES-3953 New File based blob store implementation
     add c704a8f746 JAMES-3953 Guice injections for File blob store
     add b223f177d6 JAMES-3953 Documentation for File blob store
     add bc6549a740 JAMES-3953 Better namings for BucketModules
     add 12c8610296 JAMES-3955 Add James consuming limitation in 
TaskManagerWorkQueue in RabbitMQ documentation.
     add b3c362fe57 [DOCUMENTATION] Refresh a bit secuirty.adoc
     add 51138848e3 JAMES-3491 Deserialized keywords should return empty list 
and not null when missing
     add 148ca8d75a JAMES-3874 LMTP should handle overQuota exceptions
     add 5c9e35089b JAMES-3954 Implement RFC-9394 PARTIAL for IMAP SEARCH
     add a5cd87d87c JAMES-3954 Implement RFC-9394 PARTIAL for IMAP FETCH
     add 1021e81180 JAMES-3954 Document RFC-9394 PARTIAL implementation
     add 5f8eef6379 JAMES 3897 - Crowdsec integration for Dictionary Attack 
(#1764)
     add 3facc21b00 [Build] Fail tests on modules longer than 30 minutes 
instead of 20
     add 817e4f5c39 [Build] Increase latency to 2s with dates checks in 
MailImplTest
     add a1bea0d06e [Build] Increase delay to 1s instead of 500ms in 
CachedBlobStoreTest
     add 3363a285a1 JAMES-3959 Starting distributed James without OpenSearch 
(#1784)
     add 180c0ab4a3 JAMES-3897: Crowdsec Extension Test (#1779)
     add 8d95aec8f4 JAMES-3960 Hints to ensure UID/ModSeq consistency in case 
of disaster
     add ec9ad67d5a JAMES-3958 Be resilient when updating mails with invalid 
headers (#1783)
     add 055675d98f JAMES-3955 Check for queues without consumer and resume 
consumption a… (#1778)
     add 8cec9479c7 JAMES-3955 Applicative timeouts before Rabbit timeouts
     add 47056fc2cf JAMES-3955 WARNING logs upon closing channels
     add 4215e592cd JAMES-3926 Handle insert null quota limit (#1796)
     add 9a7f6a3bcf JAMES-3956 created redis module in backends-common, moved 
redis configuration from rate-limiter-redis
     add a61254569f JAMES-3956 added RedisConfigurationTest
     add 32f026301b JAMES-3046 Webadmin startup should not hang forever upon 
port conflict
     add 25ac480393 JAMES-3046 Allow webadmin port conflict to be retries 
within JamesServerExtension (integration tests scope)
     add 582cf566da JAMES-3955 Increase consumer timeout for 
TaskManagerWorkQueue
     add 61a077253f JAMES-3774 Remove completely Cassandra cache timeout 
configuration
     add ccbc4b26d2 JAMES-3962 JMAP Email/set: specific headers for body parts 
(#1801)
     add 5da0b15180 [UPGRADE] Cassandra driver 4.16.0 -> 4.17.0
     add 2932ca8b45 [UPGRADE] S3 driver 2.20.103 -> 4.17.0
     add 9263c20769 [UPGRADE] Netty 4.1.94.Final -> 4.1.101.Final
     add 351cc273fd [UPGRADE] Reactor 2022.0.9 -> 2023.0.0
     add b15787fa34 [UPGRADE] Lettuce 6.2.4.RELEASE -> 6.3.0.RELEASE
     add 3dd1b53612 [UPGRADE] amqp-client 5.18.0 -> 5.20.0
     add c5d9cbf22f [BUILD] Disable JMX for MailDelivrerToHost object pool
     add 9339116155 [BUILD] Disable Metrics logger
     add 69e90ce0e4 [BUILD] Implement caching for ExtendedClassLoader
     add 3f24078c67 [BUILD] Avoid polling without delays for MemoryMailQueue
     add 7e63c3e6e7 [BUILD] Lower password hasking requirements
     add caa28d5580 [BUILD] Per test index is actually faster
     add 920c19b0e8 JAMES-3897: Implement CrowdsecHttpClient (#1788)
     add 2f12c348a1 JAMES-3963 Sort From To Cc on display name first (#1811)
     add 4711379766 JAMES-3963 Full text search: AND for combining phrase terms 
(#1810)
     add ca97a1815e [Build] Do not build on ephemeral nodes (#1825)
     add fe820cee72 JAMES-3964 Mutualize SMTP tests set up
     add 0b40e17d1e JAMES-3964 Implement and test disabledCaps for SMTP
     add fd18efa145 JAMES-3964 Document disabledCaps for SMTP
     add 6e1d450336 [BUILD] OpenSearchSearcherTest was unstable
     add b8752b0531 JAMES-3965 DKIMSign: Use fileSystem in order to resolve 
privateKeyFilepath
     add b76e94fb01 JAMES-3965 FileSystemImpl: convenience method for testing
     add 72803ca457 JAMES 3897: Implement CrowdsecEhloHook (#1799)
     add fa2c2dfa30 [IMPROVEMENT] Display message/disposition-notification in 
main message body
     add 795aca76d7 [IMPROVEMENT] message/disposition-notification should not 
be considered as an attachment
     add 3072f2a44d [UPDATE] logback 1.4.8 -> 1.4.13
     add c341fa6db3 [UPDATE] logback 1.4.13 -> 1.4.14
     add 8c9fa4657e [ENHANCEMENT] Allow to trust all certificates with S3 
blobstore (#1846)
     add d7a4f45fa4 JAMES-3539 PushSubscription/get should return expired 
subscriptions (#1845)
     new a8a86c2ec7 JAMES-2586 - Postgres - Init backend common module for 
postgres
     new b61d7fd05d JAMES-2586 - Postgres - Init postgres mailbox module
     new b43158b3b3 JAMES-2586 - Postgres - Init postgres app server
     new 141bb97237 JAMES-2586 - Postgres - Init james-server-data-postgres
     new 4386110020 JAMES-2586 - Postgres - Init 
james-server-postgres-common-guice
     new d8b314fa42 JAMES-2586 - Postgres - Init 
james-serrver-guice-mailbox-postgres
     new 115d0dcd1e JAMES-2586 - Implement PostgresTableManager
     new 17b80bce8c JAMES-2586 PostgresTableManager support create table when 
enable row level security
     new 062ad690fa [CI] Maven runs test on only postgres modules (postgresql 
branch)
     new 8fb0502405 JAMES-2586 Introduce PostgresExtension
     new fbcc6c9111 JAMES-2586 Postgres Subscription mapper (#1775)
     new fcaeb611fe JAMES-2586 implement pg connection factory (#1774)
     new 621c46a426 JAMES-2586 Introduce PostgresConfiguration
     new e3da8b68a5 JAMES-2586 Rename postgres-app tests' name: JPA -> Postgres
     new 9492d0d40d JAMES-2586 Guice binding for PostgresConfiguration
     new 83f3383135 JAMES-2586 Guice binding for JamesPostgresConnectionFactory
     new 4b00d8ecf9 JAMES-2586 Guice binding for PostgresTableManager
     new 38b02af197 JAMES-2586 PostgresTableManager should only create RLS 
column when general RLS configuration enabled
     new c580f1db22 JAMES-2586 Sample docker configuration for 
postgres.properties
     new 9466c7bce9 JAMES-2586 Fix review comments
     new 2b47ee79fd JAMES-2586 Guice binding for Postgres subscription module
     new 9644cdc76c JAMES-2586 Rename Postgres Subscription
     new a039fb8bc3 JAMES-2586 Rename mailbox postgres package
     new 0133b82993 JAMES-2586 postgres mailbox - drop 
JPAStreamingMailboxMessage, JPAEncryptedMailboxMessage, 
JPAMailboxMessageWithAttachmentStorage
     new 3b5bacec91 JAMES-2586 Use prepared statements by default
     new d57e96ce4e JAMES-2586 Polish code style: PostgresSubscriptionMapper
     new c177e241cf JAMES-2586 Merge PostgresSubscriptionTable and 
PostgresSubscriptionModule
     new e7e1353cc4 JAMES-2586 Drop Spring files for mailbox-postgres
     new 6b105a283f JAMES-2586 Drop reporting-site.xml
     new 702ada7633 JAMES-2586 Drop unused class: EncryptDecryptHelper
     new 8679270ad2 JAMES-2586 Drop unused class: JPASubscription
     new 60d852be6e JAMES-2586 Implement (failing) tests for Row Level Security 
applied on Subscriptions
     new 89900704c5 JAMES-2586 Document (link) varchar underlying maximum 
lengths
     new d2c1e40d5c JAMES-2586 PostgresExtension: favor factory methods to 
constructor
     new b2a40923c6 JAMES-2586 Small codestyle refactorings
     new 67f6794e56 JAMES-2586 Fix row-level security implementation
     new 85ecb2de61 JAMES-2586 implement dao for mailbox table (#1786)
     new 4783dc0802 JAMES-2586 implement postgres mailbox mapper (#1791)
     new 5d8e145e9b JAMES-2586 Postgres app performance test materials (#1794)
     new 57393a6e3c JAMES-2586 Introduce apache-james-mpt-imapmailbox-postgres
     new a73424bae8 JAMES-2586 mpt-imapmailbox-postgres: bindings and setup in 
PGHostSystem
     new 0620c26a0f JAMES-2586 SimpleJamesPostgresConnectionFactory – set empty 
attribute value when without domain
     new 0b49ce9c36 JAMES-2586 mpt-imapmailbox-postgres - update maven build, 
increase memory and disable reuseForks
     new 087574af07 JAMES-2586 Rename SimpleJamesPostgresConnectionFactory -> 
DomainImplPostgresConnectionFactory
     new 2447d7285b JAMES-2586 Introduce Single postgres connection factory 
when disable row level security
     new 0f3e353033 JAMES-2586 LOGGER when choice implementation of Postgresql 
connection factory
     new 8c6a055755 JAMES-2586 Clean-up the provision.sh file of postgres-app
     new 74c057aa30 JAMES-2586 Parameterize MailboxSession for 
getUidProvider/getModSeqProvider methods in MailboxSessionMapperFactory
     new a36130960d JAMES-2586 Implement PostgresUidProvider
     new ccbff67d12 JAMES-2586 Implement PostgresModSeqProvider
     new 6306fdef98 JAMES-2586 Implement PostgresExecutor Factory and Mailbox 
Aggregate Module
     new 80d8824f2c JAMES-2586 Implement MailboxACL support for 
PostgresMailboxMapper
     new 36a91ded62 JAMES-2586 Create hstore extension if needed upon James 
startup
     new 59c6016407 JAMES-2586 postgres users dao and repository (#1803)
     new 956dd732fe JAMES-2586 Implement PostgresQuotaCurrentValueDAO (#1813)
     new a9b79a1970 JAMES-2586 Implement PostgresQuotaLimitDAO
     new 5b0368c228 JAMES-2586 Clean Code – the using PostgresExecutor.Factory 
(#1816)
     new 3afbbe13ad JAMES-2586 Implement SieveQuotaRepository backed by Postgres
     new dae2214e96 JAMES-2586 Guice binding for SieveQuotaRepository backed by 
Postgres
     new d8e4a263b2 JAMES-2586 Implement PostgresMailboxMessageDAO (#1812)
     new b6e9be7844 JAMES-2586 Implement Postgres Current Quota manager
     new cd12569cf5 JAMES-2586 postgres mailbox annotation dao and mapper 
(#1822)
     new bf68d222d9 JAMES-2586 Remove unused method in PostgresExecutor
     new 88577b0a7c JAMES-2586 Implement PostgresDomainList
     new 9cc986a1f5 JAMES-2586 Guice bindings and package renaming for domain 
postgres implementation
     new d36f402283 JAMES-2586 DomainList Should throw when insert duplicate or 
delete not found domain
     new 63cf6b41e2 JAMES-2586 Fix Guice bindings between PostgresDomainList 
and PostgresTableManager
     new 781dc04e40 JAMES-2586 postgres-app should run tests against Postgresql 
container for both JPA and Postgres r2dbc
     new 7919fe0569 JAMES-2586 - MailboxMessage table - Remove FK key to 
mailbox table
     new a0a9be54f4 JAMES-2586 - Fixup PostgresMessageMapper findMailbox method 
- ensuring the message was sorted
     new cf3db9cd34 JAMES-2586 - Fixup PostgresMessageMapper updateFlags method 
- apply single new modSeq for all messages
     new d4178d1bec JAMES-2586 - Fixup PostgresMailboxMessageDAO
     new 54445aab14 JAMES-2586 - Postgres Mailbox DAO -  Fix rename deadlock
     new 5f002f91df JAMES-2586 - Postgres MailboxAnnotation DAO - Fix null 
pointer
     new fb512dc780 JAMES-2586 - Introduce 
PostgresMailboxSessionMapperFactoryTODO and using it to mpt imap test
     new a27db56f89 JAMES-2586 Guide binding Postgres Message/Mailbox mapper
     new 5bfb986f99 JAMES-2586 Fix Postgres Mailbox Annotation mpt imap test
     new 88c7c95d4f JAMES-2586 Rework ConnectionThreadSafetyTest -> 
PostgresExecutorThreadSafetyTest
     new 1d0734ae74 JAMES-2586 PostgresExecutor: Retry upon PreparedStatement 
conflicts
     new ac8629030d JAMES-2586 PostgresExecutor: Retry only upon 
PreparedStatement conflict exception
     new c88db1a3d1 JAMES-2586 Implement PostgresPerUserMaxQuotaManager (#1839)
     new 88ea870ab5 JAMES-2586 [PGSQL] Initialization to configure users 
repository
     new ad7118be26 JAMES-2586 Enable ACL support for PG
     new f76c03ee6c JAMES-2586 Remove unused class MessageUtils.java
     new 0d0ef9b3fe JAMES-2586 Remove unused method in MessageManager
     new e2f58e133e JAMES-2586 Enable UniqueID support for 
PostgresMailboxManager
     new dbf254034b JAMES-2586 Enable PostgresMailboxManager annotation tests
     new 0c70f75840 JAMES-2586 Fully drop JPA within mailbox-postgresql
     new 4752c9063a JAMES-2586 [PGSQL] Implement correctly FetchType
     new 462d4d3c30 JAMES-2586 [PGSQL] Optimize getMailboxCounter method
     new 30bb3f4822 JAMES-2586 [PGSQL] Improve 
PostresMessageManager::getMetadata method
     new bee56a7392 JAMES-2586 Fix missing guice binding for Postgres quota 
module
     new b5070d0e75 JAMES-2586 Fixup - Postgres app - Use junit 5 (replace to 
junit 4)
     new 7a12cd37fe JAMES-2586 Postgres app – Remove server test for 
authentication database sql validation
     new 6ff020d40c JAMES-2586 Rename JPAAttachmentContentLoader to 
PostgresAttachmentContentLoader
     new 95ce123a75 JAMES-2586 Add a unit test for recreate RLS column should 
not fail
     new 85cb680676 JAMES-2586 PostgresExecutor: better recognize prepared 
statement conflict
     new c73b5b9eaf JAMES-2586 PostgresTableManager - Check the existence of 
RLS column/policy before alter the table
     new 6c47b076ad JAMES-2586 PostgresTableManager - Cleanup
     new 540c68b026 JAMES-2586 PostgresRecipientRewriteTableDAO and 
PostgresRecipientRewriteTable
     new ddad6b5951 JAMES-2586 Fixup compile error after merge master

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (94635f6a2f)
            \
             N -- N -- N   refs/heads/postgresql (ddad6b5951)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 101 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 Jenkinsfile                                        |   5 +-
 backends-common/cassandra/pom.xml                  |   2 +-
 .../components/CassandraQuotaCurrentValueDao.java  |  64 +--
 .../components/CassandraQuotaLimitDao.java         |  78 +--
 .../init/configuration/CassandraConfiguration.java |  32 +-
 .../quota/CassandraQuotaCurrentValueDaoTest.java   |   8 +-
 .../quota/CassandraQuotaLimitDaoTest.java          |  17 +-
 .../opensearch/DockerOpenSearchExtension.java      |   4 +-
 backends-common/pom.xml                            |   1 +
 backends-common/postgres/pom.xml                   |   8 +-
 .../james/backends/postgres/PostgresCommons.java   |  69 +++
 .../backends/postgres/PostgresConfiguration.java   |  62 +--
 .../james/backends/postgres/PostgresTable.java     |  24 +-
 .../backends/postgres/PostgresTableManager.java    |  94 ++--
 .../quota/PostgresQuotaCurrentValueDAO.java        | 125 +++++
 .../postgres/quota/PostgresQuotaLimitDAO.java      | 100 ++++
 .../postgres/quota/PostgresQuotaModule.java        |  82 +++
 ...va => DomainImplPostgresConnectionFactory.java} |  23 +-
 .../backends/postgres/utils/PostgresExecutor.java  |  63 ++-
 .../backends/postgres/utils/PostgresUtils.java     |  17 +-
 .../utils/SinglePostgresConnectionFactory.java     |  25 +-
 .../backends/postgres/DockerPostgresSingleton.java |   2 +-
 ...> DomainImplPostgresConnectionFactoryTest.java} |  13 +-
 .../JamesPostgresConnectionFactoryTest.java        |   4 +-
 .../postgres/PostgresConfigurationTest.java        |   6 +-
 ....java => PostgresExecutorThreadSafetyTest.java} | 137 +++--
 .../james/backends/postgres/PostgresExtension.java | 134 +++--
 .../backends/postgres/PostgresExtensionTest.java   |   6 +-
 .../james/backends/postgres/PostgresFixture.java   |  70 ++-
 .../postgres/PostgresTableManagerTest.java         |  51 +-
 .../quota/PostgresQuotaCurrentValueDAOTest.java    | 147 ++++++
 .../postgres/quota/PostgresQuotaLimitDaoTest.java} |  39 +-
 .../james/backends/rabbitmq/QueueArguments.java    |   5 +
 .../backends/rabbitmq/RabbitMQConfiguration.java   |  33 +-
 .../rabbitmq/ReactorRabbitMQChannelPool.java       |   8 +
 .../rabbitmq/RabbitMQConfigurationTest.java        |  55 ++
 backends-common/redis/pom.xml                      |  73 +++
 .../james/backends/redis/RedisConfiguration.scala  |  16 +-
 .../james/backends}/redis/RedisHealthCheck.scala   |   4 +-
 .../apache/james/backends/redis}/DockerRedis.java  |   8 +-
 .../backends/redis/RedisConfigurationTest.scala    |  82 +++
 .../james/backends/redis}/RedisExtension.java      |   7 +-
 .../james/backends/redis}/RedisExtensionTest.java  |   7 +-
 .../backends/redis}/RedisHealthCheckTest.scala     |   5 +-
 code-coverage-report/pom.xml                       |   5 +
 .../apache/james/core/quota/QuotaCurrentValue.java |  53 ++
 .../org/apache/james/core/quota/QuotaLimit.java    |  59 +++
 .../org/apache/james/events/ListenerExecutor.java  |   9 +-
 .../events/RabbitEventBusConsumerHealthCheck.java  |  85 +++
 .../org/apache/james/mailbox/MessageManager.java   |   2 -
 .../java/org/apache/james/mailbox/MessageUid.java  |   4 +
 .../main/java/org/apache/james/mailbox/ModSeq.java |   4 +
 .../org/apache/james/mailbox}/quota/Limits.java    |   2 +-
 .../apache/james/mailbox}/quota/QuotaCodec.java    |   8 +-
 .../apache/james/mailbox/MailboxManagerTest.java   |   4 +-
 .../CassandraMailboxSessionMapperFactory.java      |   4 +-
 .../cassandra/mail/CassandraModSeqProvider.java    |   9 +-
 .../cassandra/mail/CassandraUidProvider.java       |   8 +-
 .../quota/CassandraCurrentQuotaManagerV2.java      |   9 +-
 .../quota/CassandraGlobalMaxQuotaDao.java          |   2 +
 .../quota/CassandraPerDomainMaxQuotaDao.java       |   2 +
 .../quota/CassandraPerUserMaxQuotaDao.java         |   2 +
 .../quota/CassandraPerUserMaxQuotaManagerV1.java   |   1 +
 .../quota/CassandraPerUserMaxQuotaManagerV2.java   |  19 +-
 .../mail/CassandraModSeqProviderTest.java          |  30 +-
 .../cassandra/mail/CassandraUidProviderTest.java   |  32 +-
 .../jpa/JPAMailboxSessionMapperFactory.java        |   4 +-
 .../search/LuceneMessageSearchIndexTest.java       |   7 +-
 .../InMemoryMailboxSessionMapperFactory.java       |   4 +-
 .../inmemory/mail/InMemoryMapperProvider.java      |   4 +-
 .../mailbox/opensearch/MailboxMappingFactory.java  |  21 +-
 .../DisabledListeningMessageSearchIndex.java       | 155 ++++++
 .../opensearch/query/CriterionConverter.java       |  11 +-
 .../mailbox/opensearch/query/SortConverter.java    |  49 +-
 .../opensearch/search/OpenSearchSearcher.java      |   2 +-
 .../opensearch/OpenSearchIntegrationTest.java      |  31 +-
 .../opensearch/search/OpenSearchSearcherTest.java  |  52 +-
 .../QuotaThresholdListenersTestSystem.java         |   2 +-
 .../subscribers/QuotaThresholdNoticeTest.java      |   3 +-
 mailbox/postgres/pom.xml                           |  73 +--
 .../mailbox/postgres/JPATransactionalMapper.java   |  96 ----
 ...r.java => PostgresAttachmentContentLoader.java} |   4 +-
 .../postgres/PostgresMailboxAggregateModule.java   |  26 +-
 ...e.java => PostgresMailboxAnnotationModule.java} |  45 +-
 .../{JPAId.java => PostgresMailboxId.java}         |  72 +--
 .../PostgresMailboxSessionMapperFactory.java       |  93 ++--
 .../james/mailbox/postgres/PostgresMessageId.java} |  79 +--
 .../mailbox/postgres/mail/JPAAnnotationMapper.java | 168 ------
 .../mailbox/postgres/mail/JPAAttachmentMapper.java | 118 -----
 .../mailbox/postgres/mail/JPAMailboxMapper.java    | 240 ---------
 .../mailbox/postgres/mail/JPAMessageMapper.java    | 510 ------------------
 .../mailbox/postgres/mail/JPAModSeqProvider.java   | 105 ----
 .../mailbox/postgres/mail/JPAUidProvider.java      |  99 ----
 .../james/mailbox/postgres/mail/MessageUtils.java  | 113 ----
 .../postgres/mail/PostgresAnnotationMapper.java    | 140 +++++
 .../PostgresMailbox.java}                          |  43 +-
 .../PostgresMailboxManager.java}                   |  46 +-
 .../postgres/mail/PostgresMailboxMapper.java}      |  66 ++-
 .../postgres/mail/PostgresMailboxModule.java       |  67 +++
 .../PostgresMessageManager.java}                   |  80 +--
 .../postgres/mail/PostgresMessageMapper.java       | 460 ++++++++++++++++
 .../postgres/mail/PostgresMessageModule.java       | 162 ++++++
 .../postgres/mail/PostgresModSeqProvider.java      |  92 ++++
 .../mailbox/postgres/mail/PostgresUidProvider.java | 106 ++++
 .../mail/dao/PostgresMailboxAnnotationDAO.java     | 145 ++++++
 .../postgres/mail/dao/PostgresMailboxDAO.java      | 265 ++++++++++
 .../mail/dao/PostgresMailboxMessageDAO.java        | 392 ++++++++++++++
 .../mail/dao/PostgresMailboxMessageDAOUtils.java   | 184 +++++++
 .../dao/PostgresMailboxMessageFetchStrategy.java   | 147 ++++++
 .../postgres/mail/dao/PostgresMessageDAO.java      |  91 ++++
 .../mailbox/postgres/mail/model/JPAAttachment.java | 193 -------
 .../mailbox/postgres/mail/model/JPAMailbox.java    | 205 --------
 .../postgres/mail/model/JPAMailboxAnnotation.java  |  99 ----
 .../mailbox/postgres/mail/model/JPAProperty.java   | 129 -----
 .../mailbox/postgres/mail/model/JPAUserFlag.java   | 120 -----
 .../model/openjpa/AbstractJPAMailboxMessage.java   | 579 ---------------------
 .../mail/model/openjpa/EncryptDecryptHelper.java   |  66 ---
 .../mail/model/openjpa/JPAMailboxMessage.java      | 126 -----
 .../postgres/openjpa/OpenJPAMessageFactory.java    |  56 --
 .../postgres/quota/JPAPerUserMaxQuotaDAO.java      | 238 ---------
 .../postgres/quota/JPAPerUserMaxQuotaManager.java  | 292 -----------
 .../postgres/quota/JpaCurrentQuotaManager.java     | 131 -----
 .../quota/PostgresCurrentQuotaManager.java}        |  66 ++-
 .../quota/PostgresPerUserMaxQuotaManager.java}     | 142 ++---
 .../postgres/quota/model/JpaCurrentQuota.java      |  69 ---
 .../quota/model/MaxGlobalMessageCount.java         |  54 --
 .../postgres/quota/model/MaxGlobalStorage.java     |  54 --
 .../postgres/quota/model/MaxUserMessageCount.java  |  52 --
 .../postgres/user/PostgresSubscriptionDAO.java     |   6 +-
 .../postgres/user/PostgresSubscriptionMapper.java  |   7 +-
 .../postgres/user/PostgresSubscriptionModule.java  |  21 +-
 .../postgres/user/model/JPASubscription.java       | 136 -----
 .../main/resources/META-INF/spring/mailbox-jpa.xml | 109 ----
 .../src/main/resources/james-database.properties   |  51 --
 mailbox/postgres/src/reporting-site/site.xml       |  29 --
 .../james/mailbox/postgres/JPAMailboxFixture.java  |  83 ---
 ...er.java => PostgresMailboxManagerProvider.java} |  51 +-
 ....java => PostgresMailboxManagerStressTest.java} |  24 +-
 ...erTest.java => PostgresMailboxManagerTest.java} |  43 +-
 .../postgres/PostgresSubscriptionManagerTest.java  |  31 +-
 .../postgres/mail/JPAAttachmentMapperTest.java     | 102 ----
 .../postgres/mail/JpaMailboxMapperTest.java        |  90 ----
 .../postgres/mail/JpaMessageMapperTest.java        | 156 ------
 .../mailbox/postgres/mail/MessageUtilsTest.java    | 106 ----
 ...Test.java => PostgresAnnotationMapperTest.java} |  35 +-
 .../mail/PostgresMailboxMapperACLTest.java         |  28 +-
 .../PostgresMailboxMapperRowLevelSecurityTest.java |  84 +++
 .../postgres/mail/PostgresMailboxMapperTest.java   |  85 +++
 ...erProvider.java => PostgresMapperProvider.java} | 103 ++--
 .../postgres/mail/PostgresMessageMapperTest.java   |  36 +-
 ...eMoveTest.java => PostgresMessageMoveTest.java} |  21 +-
 .../postgres/mail/PostgresModSeqProviderTest.java  | 104 ++++
 .../postgres/mail/PostgresUidProviderTest.java}    |  68 ++-
 .../mail/TransactionalAnnotationMapper.java        |  87 ----
 .../mail/TransactionalAttachmentMapper.java        |  79 ---
 .../postgres/mail/TransactionalMessageMapper.java  | 147 ------
 .../mail/model/openjpa/JPAMailboxMessageTest.java  |  57 --
 ...PostgresRecomputeCurrentQuotasServiceTest.java} |  75 +--
 ...t.java => PostgresCurrentQuotaManagerTest.java} |  29 +-
 ...ava => PostgresPerUserMaxQuotaManagerTest.java} |  22 +-
 ...gresSubscriptionMapperRowLevelSecurityTest.java |  79 +++
 .../user/PostgresSubscriptionMapperTest.java       |   5 +-
 .../postgres/src/test/resources/persistence.xml    |  53 --
 .../store/search/SimpleMessageSearchIndexTest.java |   7 +-
 .../mailbox/store/MailboxSessionMapperFactory.java |   4 +-
 .../james/mailbox/store/StoreMessageIdManager.java |   9 +-
 .../james/mailbox/store/StoreMessageManager.java   |   5 -
 .../store/mail/model/impl/MessageParser.java       |   3 +-
 .../store/mail/model/AnnotationMapperTest.java     |   7 +
 .../store/mail/model/MailboxMapperTest.java        |  15 +
 .../store/mail/model/MessageMapperTest.java        |   2 +-
 .../store/mail/model/impl/MessageParserTest.java   |   5 +-
 .../search/AbstractMessageSearchIndexTest.java     |  59 ++-
 mailet/api/pom.xml                                 |   5 +
 .../java/org/apache/mailet/LoopPrevention.java     | 109 ++++
 .../java/org/apache/mailet/LoopPreventionTest.java |  90 ++++
 .../apache/james/mpt/imapmailbox/suite/Fetch.java  |   7 +
 .../apache/james/imap/scripts/FetchPartial.test    |  69 +++
 .../org/apache/james/imap/scripts/Metadata.test    |   9 +-
 .../org/apache/james/imap/scripts/SearchAtoms.test |  24 +-
 mpt/impl/imap-mailbox/pom.xml                      |   7 +
 .../impl/imap-mailbox}/postgres/pom.xml            |  86 +--
 .../postgres/PostgresAuthenticatePlainTest.java    |  27 +-
 .../postgres/PostgresAuthenticatedStateTest.java   |  27 +-
 .../postgres/PostgresConcurrentSessionsTest.java   |  35 +-
 .../postgres/PostgresCondstoreTest.java            |  27 +-
 .../mpt/imapmailbox/postgres/PostgresCopyTest.java |  29 +-
 .../imapmailbox/postgres/PostgresEventsTest.java   |  27 +-
 .../imapmailbox/postgres/PostgresExpungeTest.java  |  27 +-
 .../postgres/PostgresFetchBodySectionTest.java     |  27 +-
 .../postgres/PostgresFetchBodyStructureTest.java   |  27 +-
 .../postgres/PostgresFetchHeadersTest.java         |  27 +-
 .../imapmailbox/postgres/PostgresFetchTest.java    |  25 +-
 .../imapmailbox/postgres/PostgresListingTest.java  |  27 +-
 .../postgres/PostgresMailboxAnnotationTest.java    |  28 +-
 .../PostgresMailboxWithLongNameErrorTest.java      |  27 +-
 .../mpt/imapmailbox/postgres/PostgresMoveTest.java |  27 +-
 .../PostgresNonAuthenticatedStateTest.java         |  27 +-
 .../postgres/PostgresPartialFetchTest.java         |  27 +-
 .../imapmailbox/postgres/PostgresQuotaTest.java    |  27 +-
 .../imapmailbox/postgres/PostgresRenameTest.java   |  27 +-
 .../imapmailbox/postgres/PostgresSearchTest.java   |  27 +-
 .../imapmailbox/postgres/PostgresSecurityTest.java |  27 +-
 .../imapmailbox/postgres/PostgresSelectTest.java   |  27 +-
 .../postgres/PostgresSelectedInboxTest.java        |  27 +-
 .../postgres/PostgresSelectedStateTest.java        |  53 +-
 .../postgres/PostgresUidSearchOnIndexTest.java     |  27 +-
 .../postgres/PostgresUidSearchTest.java            |  27 +-
 .../postgres/PostgresUserFlagsSupportTest.java     |  27 +-
 .../postgres/host/PostgresHostSystem.java          | 172 ++++++
 .../postgres/host/PostgresHostSystemExtension.java |  87 ++++
 pom.xml                                            |  41 +-
 .../apache/james/imap/api/message/FetchData.java   |  19 +-
 .../james/imap/api/message/PartialRange.java       |  74 +++
 .../imap/api/message/request/SearchOperation.java  |  13 +-
 .../api/message/request/SearchResultOption.java    |   7 +-
 .../james/imap/api/process/SelectedMailbox.java    |   3 +
 .../james/imap/decode/ImapRequestLineReader.java   |  28 +
 .../imap/decode/parser/FetchCommandParser.java     |   4 +
 .../imap/decode/parser/SearchCommandParser.java    |  25 +-
 .../james/imap/encode/ESearchResponseEncoder.java  |  13 +
 .../imap/encode/base/ImapResponseComposerImpl.java |   3 +
 .../imap/message/response/ESearchResponse.java     |  20 +-
 .../james/imap/processor/SearchProcessor.java      |  31 +-
 .../imap/processor/base/SelectedMailboxImpl.java   |   5 +
 .../james/imap/processor/base/UidMsnConverter.java |  13 +
 .../james/imap/processor/fetch/FetchProcessor.java |  56 +-
 .../parser/SearchCommandParserSearchKeyTest.java   |   2 +-
 .../james/imap/processor/SearchProcessorTest.java  |   2 +-
 .../james/protocols/smtp/SMTPConfiguration.java    |   7 +
 .../apache/james/protocols/smtp/SMTPSession.java   |   7 +
 .../protocols/smtp/core/esmtp/EhloCmdHandler.java  |   7 +-
 .../sample-configuration/cassandra.properties      |   6 +-
 .../sample-configuration/jvm.properties            |   2 +-
 .../org/apache/james/CassandraJamesServerMain.java |   4 +-
 .../james/CassandraWithOpenSearchDisabled.java     | 122 +++++
 .../org/apache/james/CassandraWithTikaTest.java    |   2 +-
 .../src/test/resources/usersrepository.xml         |   1 +
 .../distributed-app/docs/modules/ROOT/nav.adoc     |   1 +
 .../pages/architecture/implemented-standards.adoc  |   1 +
 .../modules/ROOT/pages/configure/blobstore.adoc    |   6 +
 .../modules/ROOT/pages/configure/cassandra.adoc    |   4 +
 .../docs/modules/ROOT/pages/configure/index.adoc   |   1 +
 .../modules/ROOT/pages/configure/rabbitmq.adoc     |  15 +
 .../docs/modules/ROOT/pages/configure/search.adoc  |  18 +
 .../docs/modules/ROOT/pages/configure/smtp.adoc    |   3 +
 .../ROOT/pages/operate/performanceChecklist.adoc   |   1 -
 .../docs/modules/ROOT/pages/operate/security.adoc  |   9 +-
 .../helm-chart/james/configs/blob.properties       |   4 -
 server/apps/distributed-app/pom.xml                |   4 +-
 .../sample-configuration/blob.properties           |   4 -
 .../sample-configuration/cassandra.properties      |   6 +-
 .../sample-configuration/jvm.properties            |   2 +-
 .../sample-configuration/rabbitmq.properties       |   7 +-
 server/apps/distributed-pop3-app/pom.xml           |   4 +-
 .../sample-configuration/blob.properties           |   4 -
 .../sample-configuration/jvm.properties            |   2 +-
 .../james/DistributedPOP3JamesServerMain.java      |   1 -
 .../jpa-app/sample-configuration/jvm.properties    |   2 +-
 .../sample-configuration/jvm.properties            |   2 +-
 .../memory-app/sample-configuration/jvm.properties |   2 +-
 server/apps/postgres-app/docker-compose.yml        |  16 +-
 .../imap-provision-conf/provisioning.properties    |  25 +
 server/apps/postgres-app/performance-test.md       |  11 +
 server/apps/postgres-app/pom.xml                   |   2 +-
 server/apps/postgres-app/provision.sh              |  40 ++
 .../sample-configuration/imapserver.xml            |   2 +-
 .../org/apache/james/PostgresJamesServerMain.java  |  18 +-
 .../src/main/resources/META-INF/persistence.xml    |  26 +-
 .../apache/james/JamesCapabilitiesServerTest.java  |   6 +-
 .../org/apache/james/PostgresJamesServerTest.java  |  10 +-
 .../james/PostgresWithLDAPJamesServerTest.java     |   6 +-
 .../src/test/resources/usersrepository.xml         |   0
 .../sample-configuration/blob.properties           |   4 -
 .../src/main/java/org/apache/james/Main.java       |   4 +-
 .../blob/api/ReadSaveBlobStoreDAOContract.java     |   7 +-
 .../cache/CassandraCacheConfiguration.java         |   2 -
 .../blob/cassandra/cache/CachedBlobStoreTest.java  |   4 +-
 .../blob/export/file/FileSystemExtension.java      |   5 +-
 server/blob/{blob-memory => blob-file}/pom.xml     |  14 +-
 .../apache/james/blob/file/FileBlobStoreDAO.java   | 189 +++++++
 .../james/blob/file/FileBlobStoreFactory.java      |  45 +-
 .../james/blob/file/FileBlobStoreDAOTest.java}     |  26 +-
 .../blob/file/FileBlobStoreGCAlgorithmTest.java}   |  26 +-
 .../blob/file/FileBlobStorePassThroughTest.java}   |  40 +-
 .../apache/james/blob/file/FileBlobStoreTest.java  |  61 +--
 server/blob/blob-memory/pom.xml                    |   2 +-
 server/blob/blob-s3/pom.xml                        |   2 +-
 .../objectstorage/aws/AwsS3AuthConfiguration.java  |  30 +-
 .../blob/objectstorage/aws/S3BlobStoreDAO.java     |  23 +
 server/blob/pom.xml                                |   1 +
 .../server/core/filesystem/FileSystemImpl.java     |  15 +
 .../org/apache/james/server/core/MailImplTest.java |   6 +-
 ...efaultBucketModule.java => S3BucketModule.java} |   2 +-
 .../aws/s3/AwsS3ConfigurationReader.java           |   2 +
 .../aws/s3/AwsS3ConfigurationReaderTest.java       |  79 +++
 ...aBucketModule.java => DefaultBucketModule.java} |   2 +-
 .../james/utils/FilteringManagementProbeImpl.java  |  10 +
 .../james/utils/MailRepositoryProbeImpl.java       |   6 +
 .../org/apache/james/JamesServerExtension.java     |  22 +-
 server/container/guice/distributed/pom.xml         |   4 +
 .../modules/DistributedTaskManagerModule.java      |   6 +
 .../modules/blobstore/BlobStoreConfiguration.java  |   5 +
 .../modules/blobstore/BlobStoreModulesChooser.java |  20 +-
 .../james/modules/event/JMAPEventBusModule.java    |   8 +
 .../modules/event/RabbitMQEventBusModule.java      |   7 +
 .../blobstore/BlobStoreConfigurationTest.java      |  25 +-
 .../org/apache/james/modules/server/JMXServer.java |   7 +-
 .../james/modules/server/JmxConfiguration.java     |   3 +-
 server/container/guice/mailbox-postgres/pom.xml    |   4 +
 .../james/modules/mailbox/JPAMailboxModule.java    | 152 ------
 .../modules/mailbox/PostgresMailboxModule.java     | 119 ++++-
 ...paQuotaModule.java => PostgresQuotaModule.java} |  20 +-
 .../java/org/apache/james/SearchConfiguration.java |  41 +-
 .../java/org/apache/james/SearchModuleChooser.java |   5 +
 .../modules/mailbox/OpenSearchDisabledModule.java} |  26 +-
 .../OpenSearchMailboxConfigurationModule.java      |  82 +++
 .../modules/mailbox/OpenSearchMailboxModule.java   |  66 +--
 .../mailbox/OpenSearchMailboxModuleTest.java       |   2 +-
 server/container/guice/pom.xml                     |   6 +
 server/container/guice/postgres-common/pom.xml     |  17 +-
 .../james/modules/data/PostgresCommonModule.java   |  51 +-
 ...{JPADataModule.java => PostgresDataModule.java} |   7 +-
 ...stModule.java => PostgresDomainListModule.java} |  19 +-
 ...va => PostgresRecipientRewriteTableModule.java} |  19 +-
 ...ule.java => PostgresUsersRepositoryModule.java} |  35 +-
 .../apache/james/TestJPAConfigurationModule.java   |  17 +-
 ...estJPAConfigurationModuleWithSqlValidation.java |  80 ++-
 .../queue/rabbitmq/RabbitMQMailQueueModule.java    |   4 +
 .../{postgres-common => sieve-postgres}/pom.xml    |  33 +-
 .../data/SievePostgresRepositoryModules.java}      |  16 +-
 .../apache/james/utils/ExtendedClassLoader.java    |  19 +-
 .../org/apache/james/utils/GuiceGenericLoader.java |   6 +-
 .../sieve/cassandra/CassandraSieveQuotaDAOV2.java  |  12 +-
 .../james/jmap/cassandra/filtering/RuleDTO.java    |  12 +-
 .../CassandraPushSubscriptionRepository.java       |   7 +-
 .../upload/CassandraUploadUsageRepository.java     |   7 +-
 .../src/test/resources/json/eventComplex.json      |  12 +-
 .../src/test/resources/json/increment.json         |   8 +-
 .../org/apache/james/jmap/api/filtering/Rule.java  |  40 +-
 .../MemoryPushSubscriptionRepository.java          |   7 +-
 .../james/jmap/api/filtering/RuleFixture.java      |   6 +-
 .../PushSubscriptionRepositoryContract.scala       |  34 +-
 .../apache/james/user/lib/UsersRepositoryImpl.java |   2 +
 server/data/data-postgres/pom.xml                  |  23 +-
 .../apache/james/domainlist/jpa/JPADomainList.java | 178 -------
 .../james/domainlist/jpa/model/JPADomain.java      |  69 ---
 .../domainlist/postgres/PostgresDomainList.java    |  88 ++++
 .../domainlist/postgres/PostgresDomainModule.java  |  22 +-
 .../james/rrt/jpa/JPARecipientRewriteTable.java    | 251 ---------
 .../james/rrt/jpa/model/JPARecipientRewrite.java   | 147 ------
 .../postgres/PostgresRecipientRewriteTable.java    |  88 ++++
 .../postgres/PostgresRecipientRewriteTableDAO.java |  89 ++++
 .../PostgresRecipientRewriteTableModule.java       |  48 +-
 .../james/sieve/jpa/model/JPASieveQuota.java       |  97 ----
 .../sieve/postgres/PostgresSieveQuotaDAO.java}     |  59 +--
 .../PostgresSieveRepository.java}                  | 134 ++---
 .../{jpa => postgres}/model/JPASieveScript.java    |   2 +-
 .../org/apache/james/user/jpa/JPAUsersDAO.java     | 267 ----------
 .../org/apache/james/user/jpa/model/JPAUser.java   | 193 -------
 .../james/user/postgres/PostgresUserModule.java    |  41 +-
 .../james/user/postgres/PostgresUsersDAO.java      | 144 +++++
 .../user/postgres/PostgresUsersRepository.java}    |  14 +-
 .../PostgresUsersRepositoryConfiguration.java}     |  57 +-
 .../james/domainlist/jpa/JPADomainListTest.java    |  71 ---
 .../postgres/PostgresDomainListTest.java}          |  39 +-
 .../PostgresRecipientRewriteTableTest.java}        |  32 +-
 .../PostgresStepdefs.java}                         |  36 +-
 .../rrt/{jpa => postgres}/RewriteTablesTest.java   |   4 +-
 .../sieve/postgres/PostgresSieveQuotaDAOTest.java  | 163 ++++++
 .../PostgresSieveRepositoryTest.java}              |  23 +-
 .../apache/james/user/jpa/model/JPAUserTest.java   |  73 ---
 .../PostgresUsersRepositoryTest.java}              |  41 +-
 .../src/test/resources/persistence.xml             |   6 +-
 server/mailet/dkim/pom.xml                         |   4 +
 .../org/apache/james/jdkim/mailets/DKIMSign.java   |  17 +-
 .../apache/james/jdkim/mailets/DKIMVerifier.java   |   3 +-
 .../org/apache/james/jdkim/mailets/DKIMVerify.java |   2 +-
 .../apache/james/jdkim/mailets/DKIMSignTest.java   |  27 +-
 .../apache/james/mailets/DKIMIntegrationTest.java  |  77 ++-
 .../mailets/FilterForwardIntegrationTest.java      |  87 +---
 .../james/mailets/ForwardIntegrationTest.java      |  12 +-
 .../james/mailets/ForwardLoopIntegrationTest.java  | 238 +++++++++
 .../mailets/RecipientRewriteTableProcessor.java    |  83 +--
 .../remote/delivery/MailDelivrerToHost.java        |   1 +
 server/mailet/rate-limiter-redis/pom.xml           |  10 +
 .../rate/limiter/redis/RedisRateLimiter.scala      |   9 +-
 .../james/rate/limiter/RedisRateLimiterTest.scala  |   9 +-
 .../methods/integration/SendMDNMethodTest.java     |  55 +-
 .../src/test/resources/usersrepository.xml         |   1 +
 .../james/jmap/mailet/filter/ActionApplier.java    | 145 ++++--
 .../pom.xml                                        |   4 +-
 .../rfc8621/contract/EmailGetMethodContract.scala  | 103 ++++
 .../rfc8621/contract/EmailSetMethodContract.scala  | 104 ++++
 .../src/test/resources/usersrepository.xml         |   1 +
 .../james/jmap/json/EmailSetSerializer.scala       |  54 +-
 .../org/apache/james/jmap/mail/EmailBodyPart.scala |   5 +-
 .../org/apache/james/jmap/mail/EmailSet.scala      |  54 +-
 .../james/jmap/pushsubscription/PushListener.scala |   6 +-
 .../jmap/pushsubscription/PushListenerTest.scala   |   2 +-
 server/protocols/protocols-imap4/pom.xml           |   4 +-
 .../james/imapserver/netty/IMAPServerTest.java     |   7 +-
 server/protocols/protocols-lmtp/pom.xml            |   9 +-
 .../hook/MailboxDeliverToRecipientHandler.java     |  15 +-
 .../apache/james/lmtpserver/LmtpServerTest.java    |  66 ++-
 .../mailbox/DistributedPop3ServerTest.java         |   7 +-
 server/protocols/protocols-pop3/pom.xml            |   4 +-
 .../apache/james/pop3server/POP3ServerTest.java    |   7 +-
 server/protocols/protocols-smtp/pom.xml            |   4 +-
 .../james/smtpserver/ExtendedSMTPSession.java      |   7 +
 .../apache/james/smtpserver/netty/SMTPServer.java  |  11 +
 .../apache/james/smtpserver/AuthAnnounceTest.java  | 180 +------
 .../java/org/apache/james/smtpserver/DSNTest.java  | 185 ++-----
 .../james/smtpserver/DisableFeatureTest.java       |  41 +-
 .../apache/james/smtpserver/FutureReleaseTest.java | 174 +------
 .../org/apache/james/smtpserver/SMTPSaslTest.java  | 187 ++-----
 .../apache/james/smtpserver/SMTPServerTest.java    | 355 ++++---------
 .../james/smtpserver/SMTPServerTestSystem.java     | 182 +++++++
 .../test/resources/smtpserver-disabled-feature.xml |  51 ++
 .../distributed-webadmin-integration-test/pom.xml  |   4 +-
 ...itMQWebAdminServerIntegrationImmutableTest.java |   3 +-
 .../memory-webadmin-integration-test/pom.xml       |   2 +-
 .../org/apache/james/webadmin/WebAdminServer.java  |  13 +-
 .../org/apache/james/webadmin/WebAdminUtils.java   |   4 +-
 .../apache/james/webadmin/WebAdminUtilsTest.java   |  29 +-
 server/protocols/webadmin/webadmin-mailbox/pom.xml |   4 +-
 .../james/queue/memory/MemoryMailQueueFactory.java |   8 +-
 .../org/apache/james/queue/rabbitmq/Dequeuer.java  |   6 +-
 .../RabbitMQMailQueueConsumerHealthCheck.java      |  87 ++++
 .../DistributedTaskManagerHealthCheck.java         |  77 +++
 .../distributed/RabbitMQWorkQueue.java             |  14 +-
 .../RabbitMQWorkQueueReconnectionHandler.java      |  29 +-
 .../distributed/RabbitMQWorkQueueTest.java         |  12 +-
 src/adr/0067-quota-for-jmap-uploads.md             |   2 +-
 .../0068-mutualize-cassandra-storge-for-quota.md   |   2 +-
 src/adr/0069-crowdsec-IP-filtering.md              |  57 ++
 src/adr/0070-postgresql-adoption.md                |  84 +++
 src/adr/img/adr-69-scenario-diagram.png            | Bin 0 -> 77049 bytes
 src/site/xdoc/protocols/imap4.xml                  |   1 +
 src/site/xdoc/server/config-blobstore.xml          |   6 +
 src/site/xdoc/server/config-cassandra.xml          |   3 +
 src/site/xdoc/server/config-rabbitmq.xml           |  15 +
 src/site/xdoc/server/config-redis.xml              |   4 +-
 src/site/xdoc/server/config-smtp-lmtp.xml          |   3 +
 testing/base/src/main/resources/logback-test.xml   |   3 +-
 third-party/crowdsec/README.md                     |  67 +++
 third-party/crowdsec/docker-compose.yml            |   4 +
 .../cassandra => third-party/crowdsec}/pom.xml     | 100 ++--
 .../sample-configuration/collections/james.yaml    |   3 +-
 .../sample-configuration/crowdsec.properties       |   2 +
 .../sample-configuration/extensions.properties     |   1 +
 .../sample-configuration/parsers/james-auth.yaml   |   6 +-
 .../parsers/james-dictionary-attack.yaml           |  25 +
 .../scenarios/james-dictionary-attack.yaml         |  14 +
 .../crowdsec/sample-configuration/smtpserver.xml   | 162 ++++++
 .../java/org/apache/james/CrowdsecEhloHook.java    |  73 +++
 .../james/model/CrowdsecClientConfiguration.java   |  48 +-
 .../org/apache/james/model/CrowdsecDecision.java   | 165 ++++++
 .../james/model/CrowdsecDecisionDeserializer.java  |  50 +-
 .../org/apache/james/model/CrowdsecHttpClient.java |  96 ++++
 .../org/apache/james/module/CrowdsecModule.java    |  24 +-
 .../james/CrowdsecDecisionDeserializerTest.java    |  38 +-
 .../org/apache/james/CrowdsecEhloHookTest.java     |  90 ++++
 .../java/org/apache/james/CrowdsecExtension.java   |  69 +++
 .../org/apache/james/CrowdsecHttpClientTest.java   | 128 +++++
 .../apache/james/DockerCrowdsecExtensionTest.java  |  75 +++
 third-party/pom.xml                                |   3 +-
 upgrade-instructions.md                            |  15 +
 468 files changed, 11816 insertions(+), 10809 deletions(-)
 create mode 100644 
backends-common/postgres/src/main/java/org/apache/james/backends/postgres/PostgresCommons.java
 create mode 100644 
backends-common/postgres/src/main/java/org/apache/james/backends/postgres/quota/PostgresQuotaCurrentValueDAO.java
 create mode 100644 
backends-common/postgres/src/main/java/org/apache/james/backends/postgres/quota/PostgresQuotaLimitDAO.java
 create mode 100644 
backends-common/postgres/src/main/java/org/apache/james/backends/postgres/quota/PostgresQuotaModule.java
 rename 
backends-common/postgres/src/main/java/org/apache/james/backends/postgres/utils/{SimpleJamesPostgresConnectionFactory.java
 => DomainImplPostgresConnectionFactory.java} (79%)
 copy 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/user/PostgresSubscriptionTable.java
 => 
backends-common/postgres/src/main/java/org/apache/james/backends/postgres/utils/PostgresUtils.java
 (70%)
 copy 
server/container/guice/cassandra/src/main/java/org/apache/james/modules/mailbox/CassandraBucketModule.java
 => 
backends-common/postgres/src/main/java/org/apache/james/backends/postgres/utils/SinglePostgresConnectionFactory.java
 (69%)
 rename 
backends-common/postgres/src/test/java/org/apache/james/backends/postgres/{SimpleJamesPostgresConnectionFactoryTest.java
 => DomainImplPostgresConnectionFactoryTest.java} (90%)
 rename 
backends-common/postgres/src/test/java/org/apache/james/backends/postgres/{ConnectionThreadSafetyTest.java
 => PostgresExecutorThreadSafetyTest.java} (54%)
 create mode 100644 
backends-common/postgres/src/test/java/org/apache/james/backends/postgres/quota/PostgresQuotaCurrentValueDAOTest.java
 copy 
backends-common/{cassandra/src/test/java/org/apache/james/backends/cassandra/quota/CassandraQuotaLimitDaoTest.java
 => 
postgres/src/test/java/org/apache/james/backends/postgres/quota/PostgresQuotaLimitDaoTest.java}
 (62%)
 create mode 100644 backends-common/redis/pom.xml
 rename 
server/mailet/rate-limiter-redis/src/main/scala/org/apache/james/rate/limiter/redis/RedisRateLimiterConfiguration.scala
 => 
backends-common/redis/src/main/java/org/apache/james/backends/redis/RedisConfiguration.scala
 (80%)
 rename 
{server/mailet/rate-limiter-redis/src/main/scala/org/apache/james/rate/limiter 
=> 
backends-common/redis/src/main/java/org/apache/james/backends}/redis/RedisHealthCheck.scala
 (95%)
 rename 
{server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter 
=> 
backends-common/redis/src/test/java/org/apache/james/backends/redis}/DockerRedis.java
 (94%)
 create mode 100644 
backends-common/redis/src/test/java/org/apache/james/backends/redis/RedisConfigurationTest.scala
 rename 
{server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter 
=> 
backends-common/redis/src/test/java/org/apache/james/backends/redis}/RedisExtension.java
 (90%)
 copy 
{server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter 
=> 
backends-common/redis/src/test/java/org/apache/james/backends/redis}/RedisExtensionTest.java
 (97%)
 rename 
{server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter 
=> 
backends-common/redis/src/test/java/org/apache/james/backends/redis}/RedisHealthCheckTest.scala
 (93%)
 create mode 100644 
event-bus/distributed/src/main/java/org/apache/james/events/RabbitEventBusConsumerHealthCheck.java
 copy mailbox/{cassandra/src/main/java/org/apache/james/mailbox/cassandra => 
api/src/main/java/org/apache/james/mailbox}/quota/Limits.java (97%)
 rename mailbox/{cassandra/src/main/java/org/apache/james/mailbox/cassandra => 
api/src/main/java/org/apache/james/mailbox}/quota/QuotaCodec.java (90%)
 create mode 100644 
mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/events/DisabledListeningMessageSearchIndex.java
 delete mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/JPATransactionalMapper.java
 rename 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/{JPAAttachmentContentLoader.java
 => PostgresAttachmentContentLoader.java} (88%)
 copy 
server/container/guice/mailbox-postgres/src/main/java/org/apache/james/modules/mailbox/PostgresMailboxModule.java
 => 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/PostgresMailboxAggregateModule.java
 (70%)
 copy 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/{user/PostgresSubscriptionModule.java
 => PostgresMailboxAnnotationModule.java} (50%)
 rename 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/{JPAId.java => 
PostgresMailboxId.java} (58%)
 copy mailbox/{api/src/main/java/org/apache/james/mailbox/ModSeq.java => 
postgres/src/main/java/org/apache/james/mailbox/postgres/PostgresMessageId.java}
 (56%)
 delete mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/JPAAnnotationMapper.java
 delete mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/JPAAttachmentMapper.java
 delete mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/JPAMailboxMapper.java
 delete mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/JPAMessageMapper.java
 delete mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/JPAModSeqProvider.java
 delete mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/JPAUidProvider.java
 delete mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/MessageUtils.java
 create mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/PostgresAnnotationMapper.java
 rename 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/{quota/model/MaxUserStorage.java
 => mail/PostgresMailbox.java} (60%)
 rename 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/{openjpa/OpenJPAMailboxManager.java
 => mail/PostgresMailboxManager.java} (70%)
 rename 
mailbox/postgres/src/{test/java/org/apache/james/mailbox/postgres/mail/TransactionalMailboxMapper.java
 => 
main/java/org/apache/james/mailbox/postgres/mail/PostgresMailboxMapper.java} 
(57%)
 create mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/PostgresMailboxModule.java
 rename 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/{openjpa/OpenJPAMessageManager.java
 => mail/PostgresMessageManager.java} (56%)
 create mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/PostgresMessageMapper.java
 create mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/PostgresMessageModule.java
 create mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/PostgresModSeqProvider.java
 create mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/PostgresUidProvider.java
 create mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/dao/PostgresMailboxAnnotationDAO.java
 create mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/dao/PostgresMailboxDAO.java
 create mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/dao/PostgresMailboxMessageDAO.java
 create mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/dao/PostgresMailboxMessageDAOUtils.java
 create mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/dao/PostgresMailboxMessageFetchStrategy.java
 create mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/dao/PostgresMessageDAO.java
 delete mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/model/JPAAttachment.java
 delete mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/model/JPAMailbox.java
 delete mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/model/JPAMailboxAnnotation.java
 delete mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/model/JPAProperty.java
 delete mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/model/JPAUserFlag.java
 delete mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/model/openjpa/AbstractJPAMailboxMessage.java
 delete mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/model/openjpa/EncryptDecryptHelper.java
 delete mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/model/openjpa/JPAMailboxMessage.java
 delete mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/openjpa/OpenJPAMessageFactory.java
 delete mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/quota/JPAPerUserMaxQuotaDAO.java
 delete mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/quota/JPAPerUserMaxQuotaManager.java
 delete mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/quota/JpaCurrentQuotaManager.java
 copy 
mailbox/{cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraCurrentQuotaManagerV2.java
 => 
postgres/src/main/java/org/apache/james/mailbox/postgres/quota/PostgresCurrentQuotaManager.java}
 (80%)
 copy 
mailbox/{cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManagerV2.java
 => 
postgres/src/main/java/org/apache/james/mailbox/postgres/quota/PostgresPerUserMaxQuotaManager.java}
 (67%)
 delete mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/quota/model/JpaCurrentQuota.java
 delete mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/quota/model/MaxGlobalMessageCount.java
 delete mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/quota/model/MaxGlobalStorage.java
 delete mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/quota/model/MaxUserMessageCount.java
 delete mode 100644 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/user/model/JPASubscription.java
 delete mode 100644 
mailbox/postgres/src/main/resources/META-INF/spring/mailbox-jpa.xml
 delete mode 100644 
mailbox/postgres/src/main/resources/james-database.properties
 delete mode 100644 mailbox/postgres/src/reporting-site/site.xml
 delete mode 100644 
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/JPAMailboxFixture.java
 rename 
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/{JpaMailboxManagerProvider.java
 => PostgresMailboxManagerProvider.java} (69%)
 rename 
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/{JpaMailboxManagerStressTest.java
 => PostgresMailboxManagerStressTest.java} (62%)
 rename 
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/{JPAMailboxManagerTest.java
 => PostgresMailboxManagerTest.java} (60%)
 delete mode 100644 
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/JPAAttachmentMapperTest.java
 delete mode 100644 
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/JpaMailboxMapperTest.java
 delete mode 100644 
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/JpaMessageMapperTest.java
 delete mode 100644 
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/MessageUtilsTest.java
 copy 
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/{JpaAnnotationMapperTest.java
 => PostgresAnnotationMapperTest.java} (54%)
 copy 
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
 => 
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/PostgresMailboxMapperACLTest.java
 (65%)
 create mode 100644 
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/PostgresMailboxMapperRowLevelSecurityTest.java
 create mode 100644 
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/PostgresMailboxMapperTest.java
 rename 
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/{JPAMapperProvider.java
 => PostgresMapperProvider.java} (53%)
 rename 
server/apps/postgres-app/src/test/java/org/apache/james/PostgresJamesServerWithNoDatabaseAuthenticaticationSqlValidationTest.java
 => 
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/PostgresMessageMapperTest.java
 (59%)
 rename 
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/{JpaMessageMoveTest.java
 => PostgresMessageMoveTest.java} (74%)
 create mode 100644 
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/PostgresModSeqProviderTest.java
 copy 
mailbox/{cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUidProviderTest.java
 => 
postgres/src/test/java/org/apache/james/mailbox/postgres/mail/PostgresUidProviderTest.java}
 (62%)
 delete mode 100644 
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/TransactionalAnnotationMapper.java
 delete mode 100644 
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/TransactionalAttachmentMapper.java
 delete mode 100644 
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/TransactionalMessageMapper.java
 delete mode 100644 
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/model/openjpa/JPAMailboxMessageTest.java
 rename 
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/task/{JPARecomputeCurrentQuotasServiceTest.java
 => PostgresRecomputeCurrentQuotasServiceTest.java} (59%)
 rename 
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/quota/{JPACurrentQuotaManagerTest.java
 => PostgresCurrentQuotaManagerTest.java} (64%)
 rename 
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/quota/{JPAPerUserMaxQuotaTest.java
 => PostgresPerUserMaxQuotaManagerTest.java} (65%)
 create mode 100644 
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/user/PostgresSubscriptionMapperRowLevelSecurityTest.java
 delete mode 100644 mailbox/postgres/src/test/resources/persistence.xml
 create mode 100644 
mailet/api/src/main/java/org/apache/mailet/LoopPrevention.java
 create mode 100644 
mailet/api/src/test/java/org/apache/mailet/LoopPreventionTest.java
 create mode 100644 
mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchPartial.test
 copy {mailbox => mpt/impl/imap-mailbox}/postgres/pom.xml (61%)
 copy 
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
 => 
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresAuthenticatePlainTest.java
 (69%)
 copy 
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
 => 
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresAuthenticatedStateTest.java
 (69%)
 copy 
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
 => 
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresConcurrentSessionsTest.java
 (62%)
 copy 
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
 => 
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresCondstoreTest.java
 (69%)
 copy 
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
 => 
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresCopyTest.java
 (69%)
 copy 
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
 => 
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresEventsTest.java
 (69%)
 copy 
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
 => 
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresExpungeTest.java
 (69%)
 copy 
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
 => 
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresFetchBodySectionTest.java
 (69%)
 copy 
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
 => 
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresFetchBodyStructureTest.java
 (69%)
 copy 
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
 => 
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresFetchHeadersTest.java
 (69%)
 copy 
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
 => 
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresFetchTest.java
 (71%)
 copy 
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
 => 
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresListingTest.java
 (69%)
 copy 
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
 => 
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresMailboxAnnotationTest.java
 (68%)
 copy 
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
 => 
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresMailboxWithLongNameErrorTest.java
 (69%)
 copy 
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
 => 
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresMoveTest.java
 (69%)
 copy 
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
 => 
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresNonAuthenticatedStateTest.java
 (69%)
 copy 
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
 => 
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresPartialFetchTest.java
 (69%)
 copy 
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
 => 
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresQuotaTest.java
 (69%)
 copy 
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
 => 
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresRenameTest.java
 (69%)
 copy 
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
 => 
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresSearchTest.java
 (69%)
 copy 
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
 => 
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresSecurityTest.java
 (69%)
 copy 
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
 => 
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresSelectTest.java
 (69%)
 copy 
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
 => 
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresSelectedInboxTest.java
 (69%)
 copy 
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/user/PostgresSubscriptionMapperTest.java
 => 
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresSelectedStateTest.java
 (56%)
 copy 
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
 => 
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresUidSearchOnIndexTest.java
 (69%)
 copy 
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
 => 
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresUidSearchTest.java
 (69%)
 rename 
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
 => 
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresUserFlagsSupportTest.java
 (69%)
 create mode 100644 
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/host/PostgresHostSystem.java
 create mode 100644 
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/host/PostgresHostSystemExtension.java
 create mode 100644 
protocols/imap/src/main/java/org/apache/james/imap/api/message/PartialRange.java
 create mode 100644 
server/apps/cassandra-app/src/test/java/org/apache/james/CassandraWithOpenSearchDisabled.java
 copy 
server/{protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests
 => apps/cli-integration-tests}/src/test/resources/usersrepository.xml (97%)
 create mode 100644 
server/apps/distributed-app/docs/modules/ROOT/pages/configure/search.adoc
 create mode 100644 
server/apps/postgres-app/imap-provision-conf/provisioning.properties
 create mode 100644 server/apps/postgres-app/performance-test.md
 create mode 100755 server/apps/postgres-app/provision.sh
 copy {examples/custom-imap => 
server/apps/postgres-app}/src/test/resources/usersrepository.xml (100%)
 copy server/blob/{blob-memory => blob-file}/pom.xml (89%)
 create mode 100644 
server/blob/blob-file/src/main/java/org/apache/james/blob/file/FileBlobStoreDAO.java
 rename 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/quota/model/MaxDomainMessageCount.java
 => 
server/blob/blob-file/src/main/java/org/apache/james/blob/file/FileBlobStoreFactory.java
 (60%)
 copy 
server/{apps/postgres-app/src/test/java/org/apache/james/PostgresJamesServerWithSqlValidationTest.java
 => 
blob/blob-file/src/test/java/org/apache/james/blob/file/FileBlobStoreDAOTest.java}
 (63%)
 copy 
server/{container/guice/cassandra/src/main/java/org/apache/james/modules/mailbox/CassandraBucketModule.java
 => 
blob/blob-file/src/test/java/org/apache/james/blob/file/FileBlobStoreGCAlgorithmTest.java}
 (64%)
 copy 
server/{data/data-postgres/src/test/java/org/apache/james/sieve/jpa/JpaSieveRepositoryTest.java
 => 
blob/blob-file/src/test/java/org/apache/james/blob/file/FileBlobStorePassThroughTest.java}
 (54%)
 rename 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/model/JPAMailboxAnnotationId.java
 => 
server/blob/blob-file/src/test/java/org/apache/james/blob/file/FileBlobStoreTest.java
 (52%)
 copy 
server/container/guice/blob/s3/src/main/java/org/apache/james/modules/objectstorage/{DefaultBucketModule.java
 => S3BucketModule.java} (96%)
 rename 
server/container/guice/cassandra/src/main/java/org/apache/james/modules/mailbox/{CassandraBucketModule.java
 => DefaultBucketModule.java} (96%)
 delete mode 100644 
server/container/guice/mailbox-postgres/src/main/java/org/apache/james/modules/mailbox/JPAMailboxModule.java
 rename 
server/container/guice/mailbox-postgres/src/main/java/org/apache/james/modules/mailbox/{JpaQuotaModule.java
 => PostgresQuotaModule.java} (74%)
 copy 
server/container/guice/{mailbox-postgres/src/main/java/org/apache/james/modules/mailbox/PostgresMailboxModule.java
 => 
opensearch/src/main/java/org/apache/james/modules/mailbox/OpenSearchDisabledModule.java}
 (61%)
 create mode 100644 
server/container/guice/opensearch/src/main/java/org/apache/james/modules/mailbox/OpenSearchMailboxConfigurationModule.java
 copy 
server/container/guice/postgres-common/src/main/java/org/apache/james/modules/data/{JPADataModule.java
 => PostgresDataModule.java} (89%)
 rename 
server/container/guice/postgres-common/src/main/java/org/apache/james/modules/data/{JPADomainListModule.java
 => PostgresDomainListModule.java} (71%)
 rename 
server/container/guice/postgres-common/src/main/java/org/apache/james/modules/data/{JPARecipientRewriteTableModule.java
 => PostgresRecipientRewriteTableModule.java} (71%)
 rename 
server/container/guice/postgres-common/src/main/java/org/apache/james/modules/data/{JPAUsersRepositoryModule.java
 => PostgresUsersRepositoryModule.java} (53%)
 copy server/container/guice/{postgres-common => sieve-postgres}/pom.xml (62%)
 rename 
server/container/guice/{postgres-common/src/main/java/org/apache/james/modules/data/JPADataModule.java
 => 
sieve-postgres/src/main/java/org/apache/james/modules/data/SievePostgresRepositoryModules.java}
 (72%)
 delete mode 100644 
server/data/data-postgres/src/main/java/org/apache/james/domainlist/jpa/JPADomainList.java
 delete mode 100644 
server/data/data-postgres/src/main/java/org/apache/james/domainlist/jpa/model/JPADomain.java
 create mode 100644 
server/data/data-postgres/src/main/java/org/apache/james/domainlist/postgres/PostgresDomainList.java
 rename 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/user/PostgresSubscriptionTable.java
 => 
server/data/data-postgres/src/main/java/org/apache/james/domainlist/postgres/PostgresDomainModule.java
 (63%)
 delete mode 100644 
server/data/data-postgres/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java
 delete mode 100644 
server/data/data-postgres/src/main/java/org/apache/james/rrt/jpa/model/JPARecipientRewrite.java
 create mode 100644 
server/data/data-postgres/src/main/java/org/apache/james/rrt/postgres/PostgresRecipientRewriteTable.java
 create mode 100644 
server/data/data-postgres/src/main/java/org/apache/james/rrt/postgres/PostgresRecipientRewriteTableDAO.java
 copy 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/user/PostgresSubscriptionModule.java
 => 
server/data/data-postgres/src/main/java/org/apache/james/rrt/postgres/PostgresRecipientRewriteTableModule.java
 (50%)
 delete mode 100644 
server/data/data-postgres/src/main/java/org/apache/james/sieve/jpa/model/JPASieveQuota.java
 copy 
server/data/{data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveQuotaDAOV2.java
 => 
data-postgres/src/main/java/org/apache/james/sieve/postgres/PostgresSieveQuotaDAO.java}
 (66%)
 rename 
server/data/data-postgres/src/main/java/org/apache/james/sieve/{jpa/JPASieveRepository.java
 => postgres/PostgresSieveRepository.java} (73%)
 rename server/data/data-postgres/src/main/java/org/apache/james/sieve/{jpa => 
postgres}/model/JPASieveScript.java (99%)
 delete mode 100644 
server/data/data-postgres/src/main/java/org/apache/james/user/jpa/JPAUsersDAO.java
 delete mode 100644 
server/data/data-postgres/src/main/java/org/apache/james/user/jpa/model/JPAUser.java
 copy 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/user/PostgresSubscriptionModule.java
 => 
server/data/data-postgres/src/main/java/org/apache/james/user/postgres/PostgresUserModule.java
 (59%)
 create mode 100644 
server/data/data-postgres/src/main/java/org/apache/james/user/postgres/PostgresUsersDAO.java
 rename 
server/{apps/postgres-app/src/test/java/org/apache/james/PostgresJamesServerWithSqlValidationTest.java
 => 
data/data-postgres/src/main/java/org/apache/james/user/postgres/PostgresUsersRepository.java}
 (75%)
 rename 
server/data/data-postgres/src/main/java/org/apache/james/user/{jpa/JPAUsersRepository.java
 => postgres/PostgresUsersRepositoryConfiguration.java} (50%)
 delete mode 100644 
server/data/data-postgres/src/test/java/org/apache/james/domainlist/jpa/JPADomainListTest.java
 rename 
server/{apps/postgres-app/src/test/java/org/apache/james/PostgresJamesServerWithAuthenticatedDatabaseSqlValidationTest.java
 => 
data/data-postgres/src/test/java/org/apache/james/domainlist/postgres/PostgresDomainListTest.java}
 (59%)
 rename 
server/data/data-postgres/src/test/java/org/apache/james/rrt/{jpa/JPARecipientRewriteTableTest.java
 => postgres/PostgresRecipientRewriteTableTest.java} (55%)
 rename 
server/data/data-postgres/src/test/java/org/apache/james/rrt/{jpa/JPAStepdefs.java
 => postgres/PostgresStepdefs.java} (54%)
 rename server/data/data-postgres/src/test/java/org/apache/james/rrt/{jpa => 
postgres}/RewriteTablesTest.java (96%)
 create mode 100644 
server/data/data-postgres/src/test/java/org/apache/james/sieve/postgres/PostgresSieveQuotaDAOTest.java
 rename 
server/data/data-postgres/src/test/java/org/apache/james/sieve/{jpa/JpaSieveRepositoryTest.java
 => postgres/PostgresSieveRepositoryTest.java} (60%)
 delete mode 100644 
server/data/data-postgres/src/test/java/org/apache/james/user/jpa/model/JPAUserTest.java
 rename 
server/data/data-postgres/src/test/java/org/apache/james/user/{jpa/JpaUsersRepositoryTest.java
 => postgres/PostgresUsersRepositoryTest.java} (74%)
 create mode 100644 
server/mailet/integration-testing/src/test/java/org/apache/james/mailets/ForwardLoopIntegrationTest.java
 copy 
server/protocols/{jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests
 => 
jmap-draft-integration-testing/memory-jmap-draft-integration-testing}/src/test/resources/usersrepository.xml
 (97%)
 rename 
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/JpaAnnotationMapperTest.java
 => 
server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/DisableFeatureTest.java
 (55%)
 create mode 100644 
server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTestSystem.java
 create mode 100644 
server/protocols/protocols-smtp/src/test/resources/smtpserver-disabled-feature.xml
 create mode 100644 
server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueConsumerHealthCheck.java
 create mode 100644 
server/task/task-distributed/src/main/java/org/apache/james/task/eventsourcing/distributed/DistributedTaskManagerHealthCheck.java
 create mode 100644 src/adr/0069-crowdsec-IP-filtering.md
 create mode 100644 src/adr/0070-postgresql-adoption.md
 create mode 100644 src/adr/img/adr-69-scenario-diagram.png
 create mode 100644 third-party/crowdsec/README.md
 copy {backends-common/cassandra => third-party/crowdsec}/pom.xml (56%)
 create mode 100644 
third-party/crowdsec/sample-configuration/crowdsec.properties
 create mode 100644 
third-party/crowdsec/sample-configuration/extensions.properties
 create mode 100644 
third-party/crowdsec/sample-configuration/parsers/james-dictionary-attack.yaml
 create mode 100644 
third-party/crowdsec/sample-configuration/scenarios/james-dictionary-attack.yaml
 create mode 100644 third-party/crowdsec/sample-configuration/smtpserver.xml
 create mode 100644 
third-party/crowdsec/src/main/java/org/apache/james/CrowdsecEhloHook.java
 rename 
mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/Limits.java
 => 
third-party/crowdsec/src/main/java/org/apache/james/model/CrowdsecClientConfiguration.java
 (50%)
 create mode 100644 
third-party/crowdsec/src/main/java/org/apache/james/model/CrowdsecDecision.java
 rename 
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/quota/model/MaxDomainStorage.java
 => 
third-party/crowdsec/src/main/java/org/apache/james/model/CrowdsecDecisionDeserializer.java
 (51%)
 create mode 100644 
third-party/crowdsec/src/main/java/org/apache/james/model/CrowdsecHttpClient.java
 rename 
server/container/guice/blob/s3/src/main/java/org/apache/james/modules/objectstorage/DefaultBucketModule.java
 => 
third-party/crowdsec/src/main/java/org/apache/james/module/CrowdsecModule.java 
(62%)
 copy 
server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/WebAdminUtilsTest.java
 => 
third-party/crowdsec/src/test/java/org/apache/james/CrowdsecDecisionDeserializerTest.java
 (50%)
 create mode 100644 
third-party/crowdsec/src/test/java/org/apache/james/CrowdsecEhloHookTest.java
 create mode 100644 
third-party/crowdsec/src/test/java/org/apache/james/CrowdsecExtension.java
 create mode 100644 
third-party/crowdsec/src/test/java/org/apache/james/CrowdsecHttpClientTest.java
 create mode 100644 
third-party/crowdsec/src/test/java/org/apache/james/DockerCrowdsecExtensionTest.java


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

Reply via email to