You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by rc...@apache.org on 2025/02/12 03:11:18 UTC

(james-project) branch master updated (52bad9af3a -> 61bd374868)

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

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


    from 52bad9af3a JAMES-3788 Allow configuring if Proxy or SSL frames should be handled… (#2634)
     new 9c6bf65269 JAMES-2586 - Postgres - Init backend common module for postgres
     new 969bb8ab3d JAMES-2586 - Postgres - Init postgres mailbox module
     new 22e6741a78 JAMES-2586 - Postgres - Init postgres app server
     new abd6700399 JAMES-2586 - Postgres - Init james-server-data-postgres
     new 82d93bc9c1 JAMES-2586 - Postgres - Init james-server-postgres-common-guice
     new ea33a284ab JAMES-2586 - Postgres - Init james-serrver-guice-mailbox-postgres
     new 6123517abf JAMES-2586 - Implement PostgresTableManager
     new 77ce168a38 JAMES-2586 PostgresTableManager support create table when enable row level security
     new e55ac24bce [CI] Maven runs test on only postgres modules (postgresql branch)
     new b1f60104ad JAMES-2586 Introduce PostgresExtension
     new b8bca41989 JAMES-2586 Postgres Subscription mapper (#1775)
     new f60ce125b9 JAMES-2586 implement pg connection factory (#1774)
     new 3064f33b5e JAMES-2586 Introduce PostgresConfiguration
     new d9b3a5f144 JAMES-2586 Rename postgres-app tests' name: JPA -> Postgres
     new 6f37efb534 JAMES-2586 Guice binding for PostgresConfiguration
     new 3c20512e01 JAMES-2586 Guice binding for JamesPostgresConnectionFactory
     new f2c878a63e JAMES-2586 Guice binding for PostgresTableManager
     new de93ec4f67 JAMES-2586 PostgresTableManager should only create RLS column when general RLS configuration enabled
     new c2e12db080 JAMES-2586 Sample docker configuration for postgres.properties
     new 2cd210cbac JAMES-2586 Fix review comments
     new c26af7f8dd JAMES-2586 Guice binding for Postgres subscription module
     new 62f3096d30 JAMES-2586 Rename Postgres Subscription
     new dc4a27d0c2 JAMES-2586 Rename mailbox postgres package
     new 6ff13752aa JAMES-2586 postgres mailbox - drop JPAStreamingMailboxMessage, JPAEncryptedMailboxMessage, JPAMailboxMessageWithAttachmentStorage
     new 1bbe579c87 JAMES-2586 Use prepared statements by default
     new e52e6a963e JAMES-2586 Polish code style: PostgresSubscriptionMapper
     new 1a8e2c9115 JAMES-2586 Merge PostgresSubscriptionTable and PostgresSubscriptionModule
     new fea1db8d2d JAMES-2586 Drop Spring files for mailbox-postgres
     new 17e0355398 JAMES-2586 Drop reporting-site.xml
     new b5cea5fa9b JAMES-2586 Drop unused class: EncryptDecryptHelper
     new f53ffb55d5 JAMES-2586 Drop unused class: JPASubscription
     new db5431e05b JAMES-2586 Implement (failing) tests for Row Level Security applied on Subscriptions
     new a8769c4615 JAMES-2586 Document (link) varchar underlying maximum lengths
     new 7d675a142c JAMES-2586 PostgresExtension: favor factory methods to constructor
     new 1f5db9e396 JAMES-2586 Small codestyle refactorings
     new 8a56a0dd0d JAMES-2586 Fix row-level security implementation
     new f51456c520 JAMES-2586 implement dao for mailbox table (#1786)
     new cff7e0a18e JAMES-2586 implement postgres mailbox mapper (#1791)
     new d178438b35 JAMES-2586 Postgres app performance test materials (#1794)
     new 6becbde9dd JAMES-2586 Introduce apache-james-mpt-imapmailbox-postgres
     new 07bc6458c1 JAMES-2586 mpt-imapmailbox-postgres: bindings and setup in PGHostSystem
     new c556549b38 JAMES-2586 SimpleJamesPostgresConnectionFactory – set empty attribute value when without domain
     new 92da95705a JAMES-2586 mpt-imapmailbox-postgres - update maven build, increase memory and disable reuseForks
     new d1afb7365b JAMES-2586 Rename SimpleJamesPostgresConnectionFactory -> DomainImplPostgresConnectionFactory
     new 0957a22333 JAMES-2586 Introduce Single postgres connection factory when disable row level security
     new 06f18d54e9 JAMES-2586 LOGGER when choice implementation of Postgresql connection factory
     new a05404e066 JAMES-2586 Clean-up the provision.sh file of postgres-app
     new cf98ea8c61 JAMES-2586 Parameterize MailboxSession for getUidProvider/getModSeqProvider methods in MailboxSessionMapperFactory
     new 470ad4ece6 JAMES-2586 Implement PostgresUidProvider
     new fa58d51894 JAMES-2586 Implement PostgresModSeqProvider
     new a0191d7d51 JAMES-2586 Implement PostgresExecutor Factory and Mailbox Aggregate Module
     new 07b9028483 JAMES-2586 Implement MailboxACL support for PostgresMailboxMapper
     new 50d2660beb JAMES-2586 Create hstore extension if needed upon James startup
     new ec092a7603 JAMES-2586 postgres users dao and repository (#1803)
     new 4e9f04d710 JAMES-2586 Implement PostgresQuotaCurrentValueDAO (#1813)
     new 32b95eb67a JAMES-2586 Implement PostgresQuotaLimitDAO
     new 6226449ddb JAMES-2586 Clean Code – the using PostgresExecutor.Factory (#1816)
     new effbb5b377 JAMES-2586 Implement SieveQuotaRepository backed by Postgres
     new 29ab201f84 JAMES-2586 Guice binding for SieveQuotaRepository backed by Postgres
     new 308599d9c8 JAMES-2586 Implement PostgresMailboxMessageDAO (#1812)
     new 3b99622211 JAMES-2586 Implement Postgres Current Quota manager
     new bc7a8fc9d1 JAMES-2586 postgres mailbox annotation dao and mapper (#1822)
     new 7833212468 JAMES-2586 Remove unused method in PostgresExecutor
     new 4810744f6e JAMES-2586 Implement PostgresDomainList
     new 6a0a3a9d40 JAMES-2586 Guice bindings and package renaming for domain postgres implementation
     new 75949c4b89 JAMES-2586 DomainList Should throw when insert duplicate or delete not found domain
     new f141e93136 JAMES-2586 Fix Guice bindings between PostgresDomainList and PostgresTableManager
     new f8e9a52bc4 JAMES-2586 postgres-app should run tests against Postgresql container for both JPA and Postgres r2dbc
     new 4f231b62e6 JAMES-2586 - MailboxMessage table - Remove FK key to mailbox table
     new 46a1a11184 JAMES-2586 - Fixup PostgresMessageMapper findMailbox method - ensuring the message was sorted
     new dc974eb39e JAMES-2586 - Fixup PostgresMessageMapper updateFlags method - apply single new modSeq for all messages
     new 8ddfbe92cf JAMES-2586 - Fixup PostgresMailboxMessageDAO
     new 256b34c7d0 JAMES-2586 - Postgres Mailbox DAO -  Fix rename deadlock
     new 2f7728ff1a JAMES-2586 - Postgres MailboxAnnotation DAO - Fix null pointer
     new 07a26d2138 JAMES-2586 - Introduce PostgresMailboxSessionMapperFactoryTODO and using it to mpt imap test
     new 483d29beb3 JAMES-2586 Guide binding Postgres Message/Mailbox mapper
     new e76bd5e92b JAMES-2586 Fix Postgres Mailbox Annotation mpt imap test
     new f8c54e2893 JAMES-2586 Rework ConnectionThreadSafetyTest -> PostgresExecutorThreadSafetyTest
     new 219767788c JAMES-2586 PostgresExecutor: Retry upon PreparedStatement conflicts
     new 0b1dc95b49 JAMES-2586 PostgresExecutor: Retry only upon PreparedStatement conflict exception
     new 0f349d5bb7 JAMES-2586 Implement PostgresPerUserMaxQuotaManager (#1839)
     new 15a2e9cbe4 JAMES-2586 [PGSQL] Initialization to configure users repository
     new 5b42141957 JAMES-2586 Enable ACL support for PG
     new d89fa33151 JAMES-2586 Remove unused class MessageUtils.java
     new 410721149f JAMES-2586 Remove unused method in MessageManager
     new 4c2dc18c87 JAMES-2586 Enable UniqueID support for PostgresMailboxManager
     new b3ed869f56 JAMES-2586 Enable PostgresMailboxManager annotation tests
     new 13db815427 JAMES-2586 Fully drop JPA within mailbox-postgresql
     new 5760013e70 JAMES-2586 [PGSQL] Implement correctly FetchType
     new 2ce017d029 JAMES-2586 [PGSQL] Optimize getMailboxCounter method
     new f89d525948 JAMES-2586 [PGSQL] Improve PostresMessageManager::getMetadata method
     new c62b83dd6a JAMES-2586 Fix missing guice binding for Postgres quota module
     new e2498510e5 JAMES-2586 Fixup - Postgres app - Use junit 5 (replace to junit 4)
     new 387fd8cab6 JAMES-2586 Postgres app – Remove server test for authentication database sql validation
     new d1a7addfd6 JAMES-2586 Rename JPAAttachmentContentLoader to PostgresAttachmentContentLoader
     new f18a0d0f43 JAMES-2586 Add a unit test for recreate RLS column should not fail
     new f91662e71d JAMES-2586 PostgresExecutor: better recognize prepared statement conflict
     new 9d8d64573f JAMES-2586 PostgresTableManager - Check the existence of RLS column/policy before alter the table
     new b68d9c34bf JAMES-2586 PostgresTableManager - Cleanup
     new 2e83b0eefe JAMES-2586 PostgresRecipientRewriteTableDAO and PostgresRecipientRewriteTable
     new c96a196c82 JAMES-2586 Fixup compile error after merge master
     new 3b736d3533 JAMES-2586 PostgresDelegationStore (#1851)
     new c84eae2100 JAMES-2586 Remove JPAHealthCheck.java
     new 1a4ace4bec JAMES-2586 Implement PostgresMailRepositoryUrlStore
     new 669b2151ae JAMES-2586 Remove JPAMailRepositoryUrlStore.java
     new 33bc421e81 JAMES-2586 Implement and bind PostgresHealthCheck
     new 554f659751 JAMES-3967 Store mails when relay is exceeded
     new d6701a949c JAMES-2586 ADR for Posgres mailbox tables structure (#1857)
     new bc0e15b3f0 JAMES-2586 Implement PostgresSieveScriptDAO + PostgresSieveRepository
     new 0abea42969 JAMES-2586 Delete JPASieveScript.java
     new 2695a9c8ec JAMES-2586 Guice binding for PostgresSieveScriptDAO
     new 816978a78c JAMES-2586 Implement PostgresMailRepository
     new 1c7222633c JAMES-2586 Guice binding for PostgresMailRepository + remove related JPA code
     new 0574efe870 JAMES-2586 Documentation for PostgresMailRepository
     new 6949eca938 JAMES-2586 Updating postgres-app default configuration to PostgresMailRepository
     new f9d3315af0 JAMES-2586 Finally remove the rest of JPA in postgres-app
     new 25b4c0797c JAMES-2586 Add an `addAdditionalAlterQueries` option when declaring Postgres table
     new 33f1201794 JAMES-2586 Fix compilation errors
     new daa03a4831 JAMES-2586 Fix repositoryPath in postgres-app mailetcontainer.xml
     new 257f9ed1c4 JAMES-2586 add missing RLS tests
     new 26f59268a8 JAMES-2586 Add an Id for SieveScript (#1863)
     new 2dd5c8ae9e JAMES-2586 Fix [PGSQL] Concurrency control for flags updates (#1858)
     new ce1811a7e2 [PGSQL] ADR on PGSQL flags update concurrency control mechanism (#1867)
     new 432c43f0fd JAMES-2586 Add search module chooser for Postgres app
     new fdb5541bf6 JAMES-2586 Add docker compose distributed with OpenSearch for postgres app
     new 3f40fc63a4 JAMES-2586 Rework README for Postgres-app and rework the docker compose with only Postgresql after adding search module chooser
     new c445fac9dc JAMES-2586 Module chooser: S3, file blobStore
     new 24fb302216 JAMES-2586 Message body deduplication (#1873)
     new 2d374a4c50 JAMES-2586 Remove james-server-cassandra-app direct dependency (#1875)
     new 2aeeaf987f JAMES-2586 Implement AllSearchOverride for Postgresql
     new 4585346036 JAMES-2586 Implement DeletedSearchOverride for Postgresql
     new ec97c9ae4c JAMES-2586 Implement DeletedWithRangeSearchOverride for Postgresql
     new 95e07ccf5f JAMES-2586 Implement NotDeletedWithRangeSearchOverride for Postgresql
     new 6fd5f146bb JAMES-2586 Implement UidSearchOverride for Postgresql
     new 5fc10d3c2c JAMES-2586 Implement UnseenSearchOverrideTest for Postgresql
     new 281a8c63c8 JAMES-2586 Correct search overrides documentation in opensearch.properties
     new bcc18d5d37 JAMES-2586 Refactor search overrides tests for postgresql
     new 92092bc4c9 JAMES-2586 Unnecessary join on deleted uid search queries in postgresql
     new 7af5965725 JAMES-2586 Moving RabbitMQExtension from distributed-app to queue-rabbitmq-guice
     new 370c27de2b JAMES-2586 Plug RabbitMQ EventBus into Postgres-app
     new 2a2952ac92 JAMES-2586 Implement DeleteMessageListener for postgres (#1869)
     new 27eb1da641 JAMES-2586 Fixup search overrides - Using Postgres Factory Executor replace to invoke DAO directly (#1880)
     new 16d0054fae JAMES-2586 Implement PostgresEventDeadLetters
     new 3c35e0bf1f JAMES-2586 Fix flaky test DistributedPostgresJamesServerTest.guiceServerShouldUpdateQuota
     new 5fbb535370 JAMES-2586 Add missing license
     new f14b5a3d34 JAMES-2586 Add a health check integration test
     new ba391a2d92 JAMES-2586 Implement PostgresBlobStoreDAO
     new 510581fb3d JAMES-2586 Disable concurrent test of PostgresBlobStoreDAO
     new 773b5e9128 JAMES-2586 [PGSQL] Guice binding Postgres BlobStore & Adapt to BlobStoreModulesChooser
     new 909acd0090 JAMES-2586 Adopt Postgres 16.1 (#1897)
     new 57a7ae0742 JAMES-2586 Bump jOOQ to 3.16.23
     new 161d103616 JAMES-2586 Bump r2dbc-postgresql to 1.0.3.RELEASE
     new 4bdf8faf91 JAMES-2586 - Update test cases for Delete message listener - when enabling Row level security
     new 5eec8927bd JAMES-2586 - Fix BUG - DeleteMessageListener - not work correctly when enabling RLS
     new 1fa1f2ebf6 Guice InitializationOperation support priority when init module
     new 9616a5e430 JAMES-2586 Refactor the way initPostgres of PostgresTableManager
     new efcce225bc JAMES-2586 Implement PostgresDeletedMessageMetadataVault
     new 4d1122af70 JAMES-2586 Guice binding + module chooser + sample config for Postgres DeletedMessageVault
     new f9610f5da4 JAMES-2586 Plug DeletedMessageVaultDeletionCallback into DeleteMessageListener
     new 2c6f7d56c8 JAMES-2586 PostgresDeletedMessageVaultIntegrationTest
     new ff6eb673a1 JAMES-2586 Plug PreDeletionHooks
     new ef98c36e68 JAMES-2586 - Set blobStorage implementation is postgres by default
     new d030379e77 JAMES-2586 Implement BlobReferenceSource(s) for postgres-app
     new b19a3ed443 JAMES-2586 add mailbox para for generateMessageUid method in MapperProvider
     new 52158a5ff3 JAMES-2586 Implement PostgresMessageIdMapper
     new 4f6cbf5a44 JAMES-2586 Introduce data-jmap-postgres module
     new 021591a31a JAMES-2586 DeleteMessageListener: better concurrency control upon mailbox deletion
     new 5edb781ddd JAMES-2586 Jenkinsfile: run tests for `server/data/data-jmap-postgres` module
     new d7b76974b9 JAMES-2586 - CLEAN CODE -  Guice binding for Postgres User Repository modules
     new 3913cfc2eb JAMES-2586 Implement PostgresMessageFastViewProjection
     new 68da8d654c JAMES-2586 Moving Managers out of the mail package
     new 462af49811 JAMES-2586 Wire StoreMessageIdManager on top of the PostgresMessageIdMapper + tests
     new 0d59c71276 JAMES-2586 Little refactoring around DeleteMessageListener binding in posgres mailbox tests
     new 2618c8b1f3 JAMES-2586 JMAP Guice bindings modules to pg-app
     new 38d4af93f2 fixup! JAMES-2586 JMAP Guice bindings modules to pg-app
     new fa4f3d2324 fixup! JAMES-2586 JMAP Guice bindings modules to pg-app
     new 65f167a57e JAMES-2586 Implement PostgresAttachmentMapper, DAO and binding
     new 468398ecf7 JAMES-2586 Implement Postgres Attachment Blob reference source
     new 9c04260fc3 JAMES-2586 - Delete attachment in DeleteMessageListener
     new 2511ece3a0 JAMES-2586 Webadmin integration tests for postgres
     new 3c6fd918e3 JAMES-2586 Implement PostgresEmailChangeRepository
     new 489d6494c6 JAMES-2586 - Delete Message Listener - add test case when delete mailbox has a lot of messages
     new 5a340c59be JAMES-2586 - Fixbug - Delete Message Listener - Fix hanging issue
     new 98b70ed80b JAMES-2586 - Fixbug hanging issue when Jooq execute delete and return list
     new 8785944def JAMES-2586 Implement PostgresEmailChangeRepository - Fixup Guice binding
     new 9835f11748 JAMES-2586 Implement Postgres upload repository
     new 5d688fe6be JAMES-2586 Implement Postgres upload usage repository
     new 6306421f89 JAMES-2586 Guice binding for Postgres upload
     new 4f001378ba JAMES-2586: The UploadRepositoryCleanupTask should rely on the UploadRepository interface
     new 33ca6f30f0 JAMES-2586: Guice binding JmapUploadCleanupModule for Postgres webadmin
     new d45c29e019 JAMES-2586 Disable row-level security by default in postgres.properties
     new fb24ebe3e1 JAMES-2586 Implement Postgres Push subscription
     new f3a5a92da0 JAMES-2586 Introduce sql script to clean up PGSL data
     new dd3b3dd35c JAMES-2586 Implement PostgresThreadIdGuessingAlgorithm (#1941)
     new 1289e4dbb3 JAMES-2586 Implement PostgresMailboxChangeRepository
     new c752f7aad3 JAMES-2586 Guice binding PostgresMailboxChangeRepository
     new 00b7fcbc1c JAMES-2586 Implement PostgresFilteringProjection
     new 07ea1806d1 JAMES-2586 Implement PostgresCustomIdentityDAO
     new 6e8257898e JAMES-2586 Handle case when Postgres index/constraint already exists
     new a9e763b8f5 JAMES-2586 More flexible on comparing Vacation's ZonedDateTime
     new a2032e4974 JAMES-2586 Implement PostgresVacationRepository
     new 43005b0199 JAMES-2586 Guice binding PostgresVacationRepository
     new 2806a1b2d8 JAMES-2586 Improve PostgresVacationRepository
     new 2afedd934b JAMES-2586 Temporarily disable a flaky PostgresUploadService test
     new 023abf8a39 JAMES-2586 Optimize query increase/decrease for Quota Current Value
     new 0e07859b0d JAMES-2586 Add Index for Postgres Mailbox table
     new bcf50b66b0 JAMES-2586 Implement PostgresNotificationRegistry
     new d5673fd288 JAMES-2586 SQL script to clean outdated vacation notifications
     new fde85c547d JAMES-2586 Guice binding for PostgresNotificationRegistry
     new 7e3052b681 JAMES-2586 Fix contract test NotificationRegistryContract::registerShouldNotPersistWhenExpiryDateIsPresent
     new 36465a2ea4 JAMES-2586 [Documentation] Using pg_stat_statements extension for track the stats of the SQL statement execution
     new 6d3f73978c JAMES-2586 Avoid Using COUNT() in SQL When You Could Use EXISTS()
     new 9105dd763c JAMES-2586 Implement PostgresEventStore
     new 999adabaab JAMES-2586 Implement PostgresEmailQueryView (#2007)
     new c4a0e9f547 JAMES-2586 - Postgres push subscription - expires value should be stored Offset time
     new 8755ba1225 JAMES-2586 Integration tests for JMAP postgres
     new f727db8442 JAMES-2586 Disable some tests in Integration tests JMAP postgres
     new 8aef7d85cc JAMES-2586 Fix PostgresAuthenticationTest
     new dd1ad343c7 JAMES 2586 PostgresPushSubscriptionRepository: rely on Postgres unique constraint for deviceClientId (#2094)
     new c67a8ac442 JAMES-2586 [Postgres] FIXUP when query with IN - should pre-check collection size (#2103)
     new 26eabf4b83 [Build] Use tmpfs for Postgres db test container
     new 59410696ea JAMES-2586 Fix PostgresPushSubscriptionSetMethodTest, PostgresThreadGetTest
     new a1bff96c05 JAMES-2586 Replace drop by truncate in PostgresMessageFastViewProjection
     new 9b296ea015 JAMES 2586 Increase timeout to 1 hour for postgres-jmap-integration-test module
     new c16e455a5e JAMES 2586 Try forkCount=2 to see if the tests are faster
     new 9e8684ae32 Add sslMode to require in PostgresqlConnectionConfiguration (#2109)
     new 8b91e268c0 JAMES-2586 Reduce repeat count for some JMAP integration tests
     new d5bb8c0ec1 JAMES-2586 Add PostgresAttachmentMapper to PostgresMessageIdMapper
     new 019f1264a7 JAMES-2586 Bind PostgresMessageFastViewProjection
     new 808f0c276b JAMES-2586 Optimize AttachmentLoader
     new bb5ae94a3c JAMES-2586 Fix PostgresEmailGetMethodTest
     new c975b1b79a JAMES-2586 Fix PostgresEmailQueryMethodTest
     new 2c72d537f9 JAMES-2586 Fix PostgresMailboxSetMethodTest
     new b2923b86f2 JAMES-2586 remove redundant import in PostgresPushSubscriptionSetMethodTest
     new 11bfe39272 JAMES-2586 Remove opensearch in PostgresWebPushTest
     new fe581c8761 JAMES-3925 - JMAP Upload - Method delete of Upload Repository should return Boolean value when applied
     new 3a20155f96 JAMES-2586 - JMAP Upload - Fix unstable UploadService test
     new 506114e204 JAMES-2586 Fix Postgres build after rebase on master
     new 99e707fa48 JAMES-2586 JMAP Upload - fix precision of uploadDate field
     new ab71b062e5 JAMES-2586 Refactor the handle way duplicate value on constraint index to avoid noise log (Mailbox and User table)
     new 7793479708 JAMES-2586 [REFACTORING] - PostgresTableManager - fix incorrect log
     new 310f6953ae JAMES-2586 Avoid sorting PG messages
     new 50b6673d9a JAMES-2586 [REFACTORING] - Extract dedicated class for retrieving Postgres Message
     new baeabd0a39 JAMES-2586 Fix MailboxSetMethodContract
     new b8fe56ce3a JAMES-2586 Avoid declare jooq and r2dbc-postgresql version in multiple places
     new c5dfe2d30f JAMES-2586 Bump jOOQ to 3.19.6
     new 822e7d11ed JAMES-2586 Bump r2dbc-postgresql to 1.0.4
     new 76c792bcb8 JAMES-2586 Adapt jooq 3.19.6 change
     new 580dcf1244 JAMES-2586 Postgres RewriteTablesTest should not fail unstable test phase
     new f830762355 JAMES-2586 Create AttachmentIdFactory
     new 708d7eaacd JAMES-2586 Add UuidBackedAttachmentIdFactory
     new d95d82ef43 JAMES-2586 Update Guice binding Postgres (#2154)
     new 92f4b9c5c0 Duplicated the QuotaDTO event and related classes from quota-mailing-cassandra to quota-mailing module
     new 41ebff5d10 Refactor cassandra-quota-mailing: using the QuotaDTO event and related classes from quota-mailing module
     new 213dc03092 JAMES-2586 Postgres - Binding QuotaMailing module for postgres app Tung Tran 10 minutes ago
     new 091a44b279 JAMES-2586 Postgres - Guice binding EventDTO for DLP Configuration
     new 9ef50ee7ac JAMES-2586 Postgres - Guice binding EventDTO for FilteringRuleSetDefine
     new 737bcb4822 JAMES-2586 - [Revert] Optimize query increase/decrease for Quota Current Value
     new 8b6cd8a23d Revert "Provision Current Quota when MailboxAdded event"
     new 9a1b048d44 JAMES-2586 Introduce module task-postgres
     new 9c2b4b2954 JAMES-2586 Implement PostgresTaskExecutionDetailsProjection
     new e2d548857d JAMES-2586 Relax TaskExecutionDetailsProjectionContract: can compare ZonedDateTime(s) with different timezones
     new 7c22c04239 JAMES-2586 Guice binding Distributed TaskManager for postgres-app
     new f469a0037e JAMES-2586 Disable DistributedTaskSerializationModule
     new 6e80ecc178 JAMES-2586 Add missing cleanup task webadmin routes
     new 8762e6ff9a JAMES-2586 Do not use ActiveMQ mail queue when distributed mode
     new eed6cee645 JAMES-2586 Add binding for DKIMMailetModule
     new 1d6ecc72a0 JAMES-2586 - Postgres - Bind DistributedTaskSerializationModule into postgres-app
     new f3a2822ea2 JAMES-2586 - Postgres - Binding ACLUpdated Event DTO
     new 667f89afff JAMES-2586 PopulateEmailQueryViewTask should not hang for postgres-app (#2179)
     new 85c064c0bc JAMES-2586 Fix flaky tests in EmailQueryMethodTest
     new f325f7eaef JAMES-2586 Enable flaky tests in PostgresEmailQueryMethodTest
     new 4d3d48843f JAMES-2586 Apply reactor timeout for jOOQ
     new d224607440 JAMES-2586 Mitigate fix for https://github.com/jOOQ/jOOQ/issues/16556
     new 8100e37638 JAMES-2586 Create metrics for PostgresExecutor
     new 722289d87c JAMES-2586 Update postgresql guice binding - adapt after rebase master (remove Jmap draft)
     new 06d57c9f82 JAMES-2586 [UPDATE] [PGSQL] more javax APIs migrated to jakarta
     new e635f61727 [BUILD] Jenkinsfile - add module server/blob/blob-postgres
     new a63799f985 JAMES-2586 Disable some unstable tests of PostgresBlobStoreDAOTest
     new 0ddf924f0c JAMES-2586 Implement PoolBackedPostgresConnectionFactory
     new 9c0c500233 JAMES-2586 Update PostgresCommonModule to use PoolBackedPostgresConnectionFactory
     new 55545fce33 JAMES-2586 Add connection pool config to PostgresConfiguration
     new 7aa99f9ce2 JAMES-2586 Close postgres connections when the app shutdown
     new c6e24d9e9c JAMES-2586 Fix some disabled tests in PostgresBlobStoreDAOTest by using connection pool
     new 2affa88d0f JAMES-2586 Create rls-bypass instance for PoolBackedPostgresConnectionFactory
     new af27f4ea9c JAMES-2586 Update PoolBackedPostgresConnectionFactory to avoid running set-domain command in case of empty domain
     new b4c0a50955 JAMES-2586 Fix sequential issue with updating flags in the reactive pipeline
     new a086689752 JAMES-2586 Postgres app should use Java 21 base image (#2277)
     new 838e481e83 JAMES-2586 - Rename class DeletedMessageVaultDeletionCallback -> PostgresDeletedMessageVaultDeletionCallback (#2280)
     new 609421e872 [BUILD] Increase jOOQ reactive timeout for testing (#2301)
     new b45798e34b JAMES-3946 Add a DropLists postgresql backend (#2290)
     new 368ca12f0a JAMES-2586 Clean/Refactor PostgresExtension
     new 690f41af11 JAMES-2586 Drop SinglePostgresConnectionFactory
     new 5c08657351 JAMES-2586 Drop DomainImplPostgresConnectionFactory
     new dee1628027 JAMES-2586 Refactor JamesPostgresConnectionFactory: distinctly getConnection api
     new 3adaa36565 JAMES-2586 Re naming "non-rls" to "by-pass-rls"
     new d5fa5b4252 JAMES-2586 [UPGRADE] jooq 3.19.6 -> 3.19.9
     new 0be0693939 JAMES-2586 [UPGRADE] r2dbc.postgresql.version 1.0.4.RELEASE => 1.0.5.RELEASE
     new 4b99ae1a8c JAMES-2586 [UPGRADE] org.testcontainers:postgresql 1.19.1 -> 1.19.8
     new 20f4df5f1e JAMES-2586 [UPGRADE] Postgres docker image 16.1 -> 16.3
     new c79a09b5d8 JAMES-2586 - Update primaryKey constraint for Postgres mailbox_change and email_change
     new 1ca3453243 JAMES-2586 (RLS) Optimize findNonPersonalMailboxes method in PostgresMailboxMapper -create new table MailboxMember (username, mailbox_id) -create dao for new table -create RLSSupportPostgresMailboxMapper to use MailboxMember -update bindings to use RLSSupportPostgresMailboxMapper in case rls is enabled
     new ec66eb3a3a JAMES-2586 (NON_RLS) Optimize findNonPersonalMailboxes method in PostgresMailboxMapper - create index for mailbox_acl column in case rls is disabled - update findNonPersonalMailboxes method in PostgresMailboxMapper and PostgresMailboxDAO
     new 8b9b490a25 JAMES-2586 Refactor code after optimizing findNonPersonalMailboxes method - Update AdditionalAlterQuery in PostgresTable - check if upsertACL actually successful - replace batch method - remove duplicated code in PostgresMailboxMapper and RLSSupportPostgresMailboxMapper
     new 6ffd95d225 JAMES-2586 Change boolean rlsEnabled to enum RowLevelSecurity
     new 5f4867915a JAMES-2586 [PGSQL] Fix checkstyle & adapt code after rebase master
     new 78bfcfdf67 JAMES-2586 Fix sequential issue with updating flags in the reactive pipeline - Update: disabled for cassandra weakWrite
     new cf282d7f4d JAMES-2586 Fix BlobStoreConfigurationTest
     new 3139262116 [ENHANCEMENT] Better reactify Identity methods - update for Postgres
     new 6071258b90 JAMES-2586 Fixup PostgresPushSubscriptionSetMethodTest - add ClockMQExtension
     new 5988031280 Disable test: JamesWithNonCompatibleElasticSearchServerTest
     new c600531b7f Fixup - add missing dependencies in apache-james-mpt-smtp-cassandra-rabbitmq-object-storage
     new b36490fa28 [Antora] [PGSQL] Setup postgresql James server documentation section
     new 0238293663 [Antora] [PGSQL] Objectives and motivation page for postgres doc
     new ca3016254a [Antora] Make partial for server configure section & clean format
     new b72af62f8e [Antora] [PGSQL] Add Configuration section to postgresql doc
     new 7646238000 [Antora] [PGSQL] Add Performance benchmarks section to postgresql doc
     new 172dc546fc [Antora] Make partial for server Architecture section
     new 168c9e5886 [Antora] [PGSQL] Architecture section for postgres doc
     new 25367e5174 [Antora] [PGSQL] Add Operate section to postgresql doc
     new 94e300e4f3 [Antora] Add run section to postgresql documentation
     new 97d6dea7f0 [Antora] Add missing link in run with docker page to james cli commands documentation page
     new a38b4ea3e9 [Antora] [PGSQL] Add Extending to postgresql doc
     new dee0062eeb JAMES-4054 Remove X-SMIME-Status header in mailetcontainer.xml
     new 85112a8f44 Postgres-app: unset JAVA_TOOL_OPTIONS env variable when running james-cli
     new 350bd0e708 Bump jOOQ to 3.19.13
     new 1ff9df5908 Bump r2dbc-postgresql to 1.0.7.RELEASE
     new 682442ff38 [PGSQL] Adapt from new master code - BlobId.Factory
     new 2f11b494f4 [PGSQL] Adapt from new master code - TypeStateFactory
     new e505c940d5 [PGSQL] Adapt from new master code - SearchQuery
     new 6b929977e0 [PGSQL] Disable PostgresAuthenticatedStateTest.rightsCommandsShouldBeSupported
     new f95863ca0d JAMES-2586 - Fixup InMemoryUploadRepository.deleteByUploadDateBefore
     new fb80293371 Bind MailboxCounterCorrector to DEFAULT in PostgresMailboxModule
     new 58aeed9db6 JAMES-2586 - Bump Jooq 3.19.13 -> 3.19.15
     new f1dfef4277 JAMES-2586 - Update correct PostgresExtension mode (Disable RLS) for some test class
     new f9e5c37958 JAMES-2586 - Postgres mailbox messages support batch/pagination for some methods & introduce eager fetch mode
     new 103eecceb9 JAMES-2586 - PostgresBlobStoreDAO.listBlobs support batch/pagination query
     new bc237ff6a4 JAMES-2586 - Optimize `PostgresUsersDAO.listReactive` method
     new d4489b6704 JAMES-2586 Add index for thread table
     new 8a9915a427 Revert "JAMES-2586 Add index for thread table" (#2537)
     new 1b30f8a56c JAMES-2586 Fix postgres mailbox acl concurrency issue (#2551)
     new f0a5ada3a4 JAMES-2586 Remove logback-json and logback-json-classic
     new 4a585e2980 JAMES-2586 isAdministrator should take into account multiple administrators if configured
     new 8cbac321f6 JAMES-2586 Jenkinsfile: Full build with master branch
     new 6aea652d7e JAMES-4094 Adapt QuotaChangeNotifier for postgres-app
     new 4f559f19bd JAMES-2586 Add a jmap.properties file into the sample-conf of Postgres app build
     new 8605ced71d JAMES-2586 Clean up left jpa mentions in postgres app
     new 7309b750ce JAMES-2586 Align testcontainers version for postgresql artifact
     new e7299688f7 JAMES-2586 MessageParser => MessageParserImpl & JMAPModule refactoring
     new 61bd374868 JAMES-2586 Add missing mailets in Postgresql sample conf with jmap enabled

The 350 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:
 .../components/CassandraQuotaCurrentValueDao.java  |   64 +-
 .../components/CassandraQuotaLimitDao.java         |   72 +-
 .../quota/CassandraQuotaCurrentValueDaoTest.java   |    7 +-
 .../quota/CassandraQuotaLimitDaoTest.java          |   10 +-
 backends-common/pom.xml                            |    1 +
 .../postgres}/pom.xml                              |   86 +-
 .../james/backends/postgres/PostgresCommons.java   |   96 ++
 .../backends/postgres/PostgresConfiguration.java   |  404 +++++++
 .../james/backends/postgres/PostgresIndex.java     |   64 ++
 .../james/backends/postgres/PostgresModule.java    |  130 +++
 .../james/backends/postgres/PostgresTable.java     |  172 +++
 .../backends/postgres/PostgresTableManager.java    |  216 ++++
 .../james/backends/postgres/RowLevelSecurity.java  |   22 +-
 .../quota/PostgresQuotaCurrentValueDAO.java        |  158 +++
 .../postgres/quota/PostgresQuotaLimitDAO.java      |  100 ++
 .../postgres/quota/PostgresQuotaModule.java        |   84 ++
 .../utils/JamesPostgresConnectionFactory.java      |   27 +-
 .../utils/PoolBackedPostgresConnectionFactory.java |   85 ++
 .../postgres/utils/PostgresConnectionClosure.java  |   42 +-
 .../backends/postgres/utils/PostgresExecutor.java  |  245 +++++
 .../postgres/utils/PostgresHealthCheck.java        |   41 +-
 .../backends/postgres/utils/PostgresUtils.java     |   38 +-
 .../backends/postgres/DockerPostgresSingleton.java |   36 +-
 .../JamesPostgresConnectionFactoryTest.java        |   78 ++
 .../PoolBackedPostgresConnectionFactoryTest.java   |   18 +-
 .../postgres/PostgresConfigurationTest.java        |  125 +++
 .../postgres/PostgresExecutorThreadSafetyTest.java |  202 ++++
 .../james/backends/postgres/PostgresExtension.java |  292 +++++
 .../backends/postgres/PostgresExtensionTest.java   |  104 ++
 .../james/backends/postgres/PostgresFixture.java   |  100 ++
 .../postgres/PostgresTableManagerTest.java         |  492 +++++++++
 .../quota/PostgresQuotaCurrentValueDAOTest.java    |  147 +++
 .../postgres/quota/PostgresQuotaLimitDaoTest.java} |   44 +-
 .../postgres/utils/PostgresHealthCheckTest.java    |   61 ++
 .../apache/james/core/quota/QuotaCurrentValue.java |   53 +
 .../org/apache/james/core/quota/QuotaLimit.java    |   59 +
 .../james-imap-base-performance-postgres.png       |  Bin 0 -> 376870 bytes
 .../assets/images/postgres_pg_stat_statements.png  |  Bin 0 -> 208175 bytes
 .../images/specialized-instances-postgres.png      |  Bin 0 -> 369508 bytes
 .../assets/images/storage_james_postgres.png       |  Bin 0 -> 215597 bytes
 .../assets/images/storage_james_postgres.svg       |    1 +
 docs/modules/servers/nav.adoc                      |   52 +
 docs/modules/servers/pages/index.adoc              |    9 +
 .../postgres/architecture/consistency-model.adoc   |   11 +
 ...consistency_model_data_replication_extend.adoc} |    0
 .../architecture/implemented-standards.adoc        |    6 +
 .../servers/pages/postgres/architecture/index.adoc |   13 +
 .../architecture/mailqueue_combined_extend.adoc    |    1 +
 .../architecture/specialized-instances.adoc        |    7 +
 .../postgres/benchmark/benchmark_prepare.adoc      |   40 +
 .../pages/postgres/benchmark/db-benchmark.adoc     |    8 +
 .../servers/pages/postgres/benchmark/index.adoc    |    7 +
 .../pages/postgres/benchmark/james-benchmark.adoc  |   10 +
 .../pages/postgres/configure/batchsizes.adoc       |    5 +
 .../pages/postgres/configure/blobstore.adoc        |   51 +
 .../postgres/configure/collecting-contacts.adoc    |    4 +
 .../postgres/configure/collecting-events.adoc      |    4 +
 .../servers/pages/postgres/configure/dns.adoc      |    5 +
 .../pages/postgres/configure/domainlist.adoc       |    5 +
 .../pages/postgres/configure/droplists.adoc        |    6 +
 .../servers/pages/postgres/configure/dsn.adoc      |    7 +
 .../pages/postgres/configure/extensions.adoc       |    6 +
 .../pages/postgres/configure/healthcheck.adoc      |    5 +
 .../servers/pages/postgres/configure/imap.adoc     |    6 +
 .../servers/pages/postgres/configure/index.adoc    |   24 +
 .../servers/pages/postgres/configure/jmap.adoc     |    7 +
 .../servers/pages/postgres/configure/jmx.adoc      |    5 +
 .../servers/pages/postgres/configure/jvm.adoc      |    5 +
 .../pages/postgres/configure/listeners.adoc        |    6 +
 .../pages/postgres/configure/mailetcontainer.adoc  |    6 +
 .../servers/pages/postgres/configure/mailets.adoc  |    6 +
 .../postgres/configure/mailrepositorystore.adoc    |    9 +
 .../servers/pages/postgres/configure/matchers.adoc |    7 +
 .../pages/postgres/configure/opensearch.adoc       |    8 +
 .../servers/pages/postgres/configure/pop3.adoc     |    7 +
 .../servers/pages/postgres/configure/queue.adoc    |    5 +
 .../servers/pages/postgres/configure/rabbitmq.adoc |    5 +
 .../postgres/configure/recipientrewritetable.adoc  |    7 +
 .../servers/pages/postgres/configure/redis.adoc    |    5 +
 .../configure/remote-delivery-error-handling.adoc  |    8 +
 .../servers/pages/postgres/configure/search.adoc   |    5 +
 .../servers/pages/postgres/configure/sieve.adoc    |    7 +
 .../pages/postgres/configure/smtp-hooks.adoc       |    7 +
 .../servers/pages/postgres/configure/smtp.adoc     |    7 +
 .../servers/pages/postgres/configure/spam.adoc     |    8 +
 .../servers/pages/postgres/configure/ssl.adoc      |    7 +
 .../servers/pages/postgres/configure/tika.adoc     |    5 +
 .../pages/postgres/configure/usersrepository.adoc  |    5 +
 .../servers/pages/postgres/configure/vault.adoc    |    8 +
 .../servers/pages/postgres/configure/webadmin.adoc |    7 +
 docs/modules/servers/pages/postgres/extending.adoc |    4 +
 .../servers/pages/postgres/extending/index.adoc    |    2 +
 docs/modules/servers/pages/postgres/index.adoc     |   15 +
 .../modules/servers/pages/postgres/objectives.adoc |   22 +
 .../servers/pages/postgres/operate/cli.adoc        |    6 +
 .../servers/pages/postgres/operate/guide.adoc      |    9 +
 .../servers/pages/postgres/operate/index.adoc      |    7 +
 .../servers/pages/postgres/operate/logging.adoc    |    9 +
 .../operate/logging/docker-compose-block.adoc      |   81 ++
 .../servers/pages/postgres/operate/metrics.adoc    |    7 +
 .../servers/pages/postgres/operate/migrating.adoc  |    6 +
 .../postgres/operate/performanceChecklist.adoc     |    6 +
 .../servers/pages/postgres/operate/security.adoc   |    6 +
 .../servers/pages/postgres/operate/webadmin.adoc   |   10 +
 .../operate/webadmin/admin-mail-queues-extend.adoc |    1 +
 .../operate/webadmin/admin-mailboxes-extend.adoc   |    1 +
 .../operate/webadmin/admin-messages-extend.adoc    |    1 +
 docs/modules/servers/pages/postgres/run/index.adoc |   14 +
 .../servers/pages/postgres/run/run-docker.adoc     |  145 +++
 .../servers/pages/postgres/run/run-java.adoc       |  108 ++
 .../architecture/implemented-standards.adoc        |    1 +
 .../partials/configure/collecting-events.adoc      |    1 +
 .../servers/partials/configure/matchers.adoc       |    2 +
 event-bus/pom.xml                                  |    1 +
 .../queue/rabbitmq => event-bus/postgres}/pom.xml  |   40 +-
 .../james/events/PostgresEventDeadLetters.java     |  118 ++
 .../events/PostgresEventDeadLettersModule.java     |   59 +
 .../james/events/PostgresEventDeadLettersTest.java |   19 +-
 .../event-store-postgres}/pom.xml                  |   55 +-
 .../eventstore/postgres/PostgresEventStore.java    |   81 ++
 .../eventstore/postgres/PostgresEventStoreDAO.java |  124 +++
 .../postgres/PostgresEventStoreModule.java         |   63 ++
 .../postgres/PostgresEventSourcingSystemTest.java  |   18 +-
 .../postgres/PostgresEventStoreExtension.java      |   72 ++
 .../PostgresEventStoreExtensionForTestEvents.java  |   18 +-
 .../postgres/PostgresEventStoreTest.java           |   65 ++
 event-sourcing/pom.xml                             |    1 +
 .../org/apache/james/mailbox/MessageManager.java   |    2 -
 .../mailbox/UuidBackedAttachmentIdFactory.java     |   21 +-
 .../mailbox/model/UuidBackedAttachmentId.java      |   58 +-
 .../org/apache/james/mailbox}/quota/Limits.java    |    2 +-
 .../apache/james/mailbox}/quota/QuotaCodec.java    |    8 +-
 .../apache/james/mailbox/MailboxManagerTest.java   |    4 +-
 .../CassandraMailboxSessionMapperFactory.java      |    4 +-
 .../quota/CassandraCurrentQuotaManagerV2.java      |    9 +-
 .../quota/CassandraGlobalMaxQuotaDao.java          |    2 +
 .../quota/CassandraPerDomainMaxQuotaDao.java       |    2 +
 .../quota/CassandraPerUserMaxQuotaDao.java         |    2 +
 .../quota/CassandraPerUserMaxQuotaManagerV1.java   |    1 +
 .../quota/CassandraPerUserMaxQuotaManagerV2.java   |   19 +-
 .../CassandraThreadIdGuessingAlgorithmTest.java    |    8 +-
 .../cassandra/mail/CassandraMapperProvider.java    |   14 +-
 .../mail/CassandraMessageIdMapperTest.java         |   12 +-
 ...ssandraMessageMapperRelaxedConsistencyTest.java |   15 +
 .../jpa/JPAMailboxSessionMapperFactory.java        |    4 +-
 .../james/mailbox/jpa/mail/JPAMapperProvider.java  |    2 +-
 .../InMemoryMailboxSessionMapperFactory.java       |    4 +-
 .../inmemory/mail/InMemoryMapperProvider.java      |    6 +-
 .../deleted-messages-vault-postgres}/pom.xml       |   41 +-
 .../PostgresDeletedMessageMetadataModule.java      |   65 ++
 .../PostgresDeletedMessageMetadataVault.java       |  115 ++
 ...ostgresDeletedMessageVaultDeletionCallback.java |  123 +++
 .../PostgresDeletedMessageMetadataVaultTest.java   |   47 +
 .../james/vault/metadata/MetadataSerializer.java   |    0
 .../james/mailbox/quota/cassandra/dto/DTOTest.java |    5 +-
 ...sandraQuotaMailingListenersIntegrationTest.java |    2 +-
 .../quota/mailing/events}/HistoryEvolutionDTO.java |   48 +-
 .../mailbox/quota/mailing/events}/QuotaDTO.java    |   28 +-
 .../mailing/events}/QuotaEventDTOModules.java      |    4 +-
 .../events}/QuotaThresholdChangedEventDTO.java     |   77 +-
 mailbox/pom.xml                                    |    3 +
 mailbox/postgres/pom.xml                           |  185 ++++
 .../mailbox/postgres/DeleteMessageListener.java    |  175 +++
 .../postgres/PostgresMailboxAggregateModule.java}  |   28 +-
 .../postgres/PostgresMailboxAnnotationModule.java  |   57 +
 .../james/mailbox/postgres/PostgresMailboxId.java  |   86 ++
 .../mailbox/postgres/PostgresMailboxManager.java   |  102 ++
 .../PostgresMailboxSessionMapperFactory.java       |  152 +++
 .../james/mailbox/postgres/PostgresMessageId.java  |   89 ++
 .../mailbox/postgres/PostgresMessageManager.java   |  124 +++
 .../PostgresThreadIdGuessingAlgorithm.java         |   91 ++
 .../postgres/UnsupportAttachmentContentLoader.java |   21 +-
 .../mail/MailboxDeleteDuringUpdateException.java   |   16 +-
 .../postgres/mail/MessageRepresentation.java       |  179 +++
 .../postgres/mail/PostgresACLUpsertException.java  |   17 +-
 .../postgres/mail/PostgresAnnotationMapper.java    |  140 +++
 .../PostgresAttachmentBlobReferenceSource.java     |   42 +-
 .../postgres/mail/PostgresAttachmentMapper.java    |  125 +++
 .../postgres/mail/PostgresAttachmentModule.java    |   64 ++
 .../mailbox/postgres/mail/PostgresMailbox.java     |   37 +-
 .../postgres/mail/PostgresMailboxMapper.java       |  118 ++
 .../postgres/mail/PostgresMailboxMemberDAO.java    |   65 ++
 .../postgres/mail/PostgresMailboxMemberModule.java |   57 +
 .../postgres/mail/PostgresMailboxModule.java       |   79 ++
 .../mail/PostgresMessageBlobReferenceSource.java   |   33 +-
 .../postgres/mail/PostgresMessageIdMapper.java     |  257 +++++
 .../postgres/mail/PostgresMessageMapper.java       |  446 ++++++++
 .../postgres/mail/PostgresMessageModule.java       |  189 ++++
 .../postgres/mail/PostgresMessageRetriever.java    |  142 +++
 .../postgres/mail/PostgresModSeqProvider.java      |   92 ++
 .../mailbox/postgres/mail/PostgresUidProvider.java |  106 ++
 .../mail/RLSSupportPostgresMailboxMapper.java      |   85 ++
 .../postgres/mail/dao/PostgresAttachmentDAO.java   |  127 +++
 .../mail/dao/PostgresMailboxAnnotationDAO.java     |  145 +++
 .../postgres/mail/dao/PostgresMailboxDAO.java      |  307 ++++++
 .../mail/dao/PostgresMailboxMessageDAO.java        |  676 ++++++++++++
 .../mail/dao/PostgresMailboxMessageDAOUtils.java   |  184 ++++
 .../dao/PostgresMailboxMessageFetchStrategy.java   |  148 +++
 .../postgres/mail/dao/PostgresMessageDAO.java      |  160 +++
 .../postgres/mail/dao/PostgresThreadDAO.java       |  123 +++
 .../postgres/mail/dao/PostgresThreadModule.java    |   72 ++
 .../mailbox/postgres/mail/dto/AttachmentsDTO.java  |  141 +++
 .../mail/eventsourcing/acl/ACLModule.java}         |   29 +-
 .../quota/PostgresCurrentQuotaManager.java}        |   66 +-
 .../quota/PostgresPerUserMaxQuotaManager.java}     |  142 +--
 .../mailbox/postgres/search/AllSearchOverride.java |   73 ++
 .../postgres/search/DeletedSearchOverride.java     |   57 +
 .../search/DeletedWithRangeSearchOverride.java     |   71 ++
 .../search/NotDeletedWithRangeSearchOverride.java  |   83 ++
 .../mailbox/postgres/search/UidSearchOverride.java |   68 ++
 .../postgres/search/UnseenSearchOverride.java      |   97 ++
 .../postgres/user/PostgresSubscriptionDAO.java     |   57 +
 .../postgres/user/PostgresSubscriptionMapper.java  |   69 ++
 .../postgres/user/PostgresSubscriptionModule.java  |   55 +
 .../postgres/DeleteMessageListenerContract.java    |  321 ++++++
 .../postgres/DeleteMessageListenerTest.java        |  123 +++
 .../postgres/DeleteMessageListenerWithRLSTest.java |  134 +++
 .../postgres/PostgresCombinationManagerTest.java}  |   26 +-
 .../PostgresCombinationManagerTestSystem.java      |   66 ++
 .../PostgresMailboxManagerAttachmentTest.java      |  154 +++
 .../postgres/PostgresMailboxManagerProvider.java   |  105 ++
 .../postgres/PostgresMailboxManagerStressTest.java |   43 +-
 .../postgres/PostgresMailboxManagerTest.java       |   98 ++
 .../PostgresMessageIdManagerQuotaTest.java         |   58 +
 .../PostgresMessageIdManagerSideEffectTest.java}   |   24 +-
 .../PostgresMessageIdManagerStorageTest.java       |   43 +
 .../PostgresMessageIdManagerTestSystem.java        |   60 ++
 .../postgres/PostgresSubscriptionManagerTest.java  |   54 +
 .../postgres/PostgresTestSystemFixture.java        |  116 ++
 .../PostgresThreadIdGuessingAlgorithmTest.java     |  166 +++
 ...stgresAnnotationMapperRowLevelSecurityTest.java |   98 ++
 .../mail/PostgresAnnotationMapperTest.java         |   53 +
 .../PostgresAttachmentBlobReferenceSourceTest.java |  112 ++
 .../mail/PostgresAttachmentMapperTest.java         |   35 +-
 .../mail/PostgresMailboxMapperACLTest.java         |   81 ++
 .../PostgresMailboxMapperRowLevelSecurityTest.java |   83 ++
 .../postgres/mail/PostgresMailboxMapperTest.java   |   85 ++
 .../postgres/mail/PostgresMapperProvider.java      |  161 +++
 .../PostgresMessageBlobReferenceSourceTest.java    |  100 ++
 .../mail/PostgresMessageIdMapperTest.java}         |   29 +-
 .../PostgresMessageMapperRowLevelSecurityTest.java |  111 ++
 .../postgres/mail/PostgresMessageMapperTest.java}  |   31 +-
 .../postgres/mail/PostgresMessageMoveTest.java}    |   21 +-
 .../postgres/mail/PostgresModSeqProviderTest.java  |  104 ++
 .../postgres/mail/PostgresUidProviderTest.java     |  140 +++
 .../RLSSupportPostgresMailboxMapperACLTest.java}   |   23 +-
 .../mail/dao/PostgresMailboxMessageDAOTest.java    |  215 ++++
 .../PostgresRecomputeCurrentQuotasServiceTest.java |  128 +++
 .../quota/PostgresCurrentQuotaManagerTest.java     |   33 +-
 .../quota/PostgresPerUserMaxQuotaManagerTest.java} |   22 +-
 .../postgres/search/AllSearchOverrideTest.java     |  132 +++
 .../postgres/search/DeletedSearchOverrideTest.java |  112 ++
 .../search/DeletedWithRangeSearchOverrideTest.java |  131 +++
 .../NotDeletedWithRangeSearchOverrideTest.java     |  136 +++
 .../postgres/search/SearchOverrideFixture.java     |   71 ++
 .../postgres/search/UidSearchOverrideTest.java     |  120 +++
 .../postgres/search/UnseenSearchOverrideTest.java  |  190 ++++
 ...gresSubscriptionMapperRowLevelSecurityTest.java |   78 ++
 .../user/PostgresSubscriptionMapperTest.java}      |   21 +-
 .../SearchThreadIdGuessingAlgorithmTest.java       |    5 +-
 .../james/mailbox/store/FlagsUpdateCalculator.java |    7 +
 .../mailbox/store/MailboxSessionMapperFactory.java |    4 +-
 .../james/mailbox/store/StoreMessageIdManager.java |    9 +-
 .../james/mailbox/store/StoreMessageManager.java   |    5 -
 .../store/quota/ListeningCurrentQuotaUpdater.java  |   22 +-
 .../store/ThreadIdGuessingAlgorithmContract.java   |   14 +-
 .../store/mail/model/AnnotationMapperTest.java     |    7 +
 .../store/mail/model/MailboxMapperACLTest.java     |    2 +-
 .../store/mail/model/MailboxMapperTest.java        |   15 +
 .../mailbox/store/mail/model/MapperProvider.java   |    2 +-
 .../store/mail/model/MessageIdMapperTest.java      |  134 +--
 .../store/mail/model/MessageMapperTest.java        |  117 +-
 .../quota/ListeningCurrentQuotaUpdaterTest.java    |   38 -
 .../org/apache/james/imap/scripts/Metadata.test    |    9 +-
 mpt/impl/imap-mailbox/pom.xml                      |    7 +
 .../postgres}/pom.xml                              |   71 +-
 .../postgres/PostgresAuthenticatePlainTest.java    |   31 +-
 .../postgres/PostgresAuthenticatedStateTest.java   |   25 +-
 .../postgres/PostgresConcurrentSessionsTest.java   |   31 +-
 .../postgres/PostgresCondstoreTest.java            |   22 +-
 .../mpt/imapmailbox/postgres/PostgresCopyTest.java |   32 +-
 .../imapmailbox/postgres/PostgresEventsTest.java   |   22 +-
 .../imapmailbox/postgres/PostgresExpungeTest.java  |   22 +-
 .../postgres/PostgresFetchBodySectionTest.java     |   22 +-
 .../postgres/PostgresFetchBodyStructureTest.java   |   22 +-
 .../postgres/PostgresFetchHeadersTest.java         |   22 +-
 .../imapmailbox/postgres/PostgresFetchTest.java    |   23 +-
 .../imapmailbox/postgres/PostgresListingTest.java  |   22 +-
 .../postgres/PostgresMailboxAnnotationTest.java    |   31 +-
 .../PostgresMailboxWithLongNameErrorTest.java      |   22 +-
 .../mpt/imapmailbox/postgres/PostgresMoveTest.java |   22 +-
 .../PostgresNonAuthenticatedStateTest.java         |   22 +-
 .../postgres/PostgresPartialFetchTest.java         |   22 +-
 .../imapmailbox/postgres/PostgresQuotaTest.java    |   22 +-
 .../imapmailbox/postgres/PostgresRenameTest.java   |   22 +-
 .../imapmailbox/postgres/PostgresSearchTest.java   |   22 +-
 .../imapmailbox/postgres/PostgresSecurityTest.java |   22 +-
 .../imapmailbox/postgres/PostgresSelectTest.java   |   22 +-
 .../postgres/PostgresSelectedInboxTest.java        |   22 +-
 .../postgres/PostgresSelectedStateTest.java        |   49 +-
 .../postgres/PostgresUidSearchOnIndexTest.java     |   22 +-
 .../postgres/PostgresUidSearchTest.java            |   22 +-
 .../postgres/PostgresUserFlagsSupportTest.java     |   22 +-
 .../postgres/host/PostgresHostSystem.java          |  178 +++
 .../postgres/host/PostgresHostSystemExtension.java |   87 ++
 .../smtp/cassandra-rabbitmq-object-storage/pom.xml |   14 +
 mpt/impl/smtp/cassandra/pom.xml                    |    7 +
 pom.xml                                            |   91 ++
 server/apps/cassandra-app/pom.xml                  |    6 +
 ...esWithNonCompatibleElasticSearchServerTest.java |    2 +
 server/apps/distributed-app/pom.xml                |   12 +
 server/apps/distributed-pop3-app/pom.xml           |   12 +
 server/apps/postgres-app/README.adoc               |  157 +++
 server/apps/postgres-app/clean_up.sql              |   26 +
 .../postgres-app/docker-compose-distributed.yml    |   83 ++
 server/apps/postgres-app/docker-compose.yml        |   33 +
 .../docker-configuration/webadmin.properties       |    0
 .../imap-provision-conf/provisioning.properties    |   25 +
 server/apps/postgres-app/performance-test.md       |   11 +
 .../apps/{distributed-app => postgres-app}/pom.xml |  155 +--
 server/apps/postgres-app/provision.sh              |   40 +
 .../blob.properties                                |  104 ++
 .../opensearch.properties                          |  101 ++
 .../rabbitmq.properties                            |   95 ++
 .../sample-configuration-single/search.properties  |    2 +
 .../sample-configuration/blob.properties           |   66 ++
 .../deletedMessageVault.properties                 |    7 +
 .../sample-configuration/dnsservice.xml            |    0
 .../sample-configuration/domainlist.xml            |    0
 .../sample-configuration/droplists.properties      |    0
 .../sample-configuration/extensions.properties     |    0
 .../sample-configuration/healthcheck.properties    |    0
 .../sample-configuration/imapserver.xml            |   83 ++
 .../sample-configuration/jmap.properties           |    0
 .../sample-configuration/jmx.properties            |    0
 .../sample-configuration/jvm.properties            |   55 +
 .../sample-configuration}/jwt_publickey            |    0
 .../sample-configuration/listeners.xml             |    0
 .../sample-configuration/lmtpserver.xml            |    0
 .../sample-configuration/logback.xml               |    0
 .../sample-configuration/mailetcontainer.xml       |  158 +++
 .../sample-configuration/mailrepositorystore.xml   |   35 +
 .../sample-configuration/managesieveserver.xml     |    0
 .../sample-configuration/pop3server.xml            |    0
 .../sample-configuration/postgres.properties       |   45 +
 .../sample-configuration/recipientrewritetable.xml |    0
 .../sample-configuration/smtpserver.xml            |    0
 .../sample-configuration}/usersrepository.xml      |    0
 .../sample-configuration/webadmin.properties       |    0
 server/apps/postgres-app/src/assemble/app.xml      |   86 ++
 .../src/assemble/extensions-jars.txt               |    0
 .../src/assemble/license-for-binary.txt            | 1139 ++++++++++++++++++++
 .../src/main/extensions-jars/README.md             |    0
 .../src/main/glowroot/admin.json                   |    0
 .../src/main/glowroot/plugins/imap.json            |    0
 .../src/main/glowroot/plugins/jmap.json            |   19 +
 .../src/main/glowroot/plugins/mailboxListener.json |    0
 .../src/main/glowroot/plugins/pop3.json            |    0
 .../src/main/glowroot/plugins/smtp.json            |    0
 .../src/main/glowroot/plugins/spooler.json         |    0
 .../src/main/glowroot/plugins/task.json            |    0
 .../apache/james/PostgresJamesConfiguration.java   |  320 ++++++
 .../org/apache/james/PostgresJamesServerMain.java  |  274 +++++
 .../java/org/apache/james/PostgresJmapModule.java  |   84 ++
 .../src/main/resources/defaultMailetContainer.xml  |    0
 .../src/main/scripts/james-cli                     |    0
 .../james/BodyDeduplicationIntegrationTest.java    |  134 +++
 .../james/DistributedPostgresJamesServerTest.java  |  135 +++
 .../apache/james/JamesCapabilitiesServerTest.java  |   64 ++
 .../apache/james/JamesServerConcreteContract.java  |    0
 .../james/PostgresBlobStoreIntegrationTest.java    |   59 +
 .../org/apache/james/PostgresJamesServerTest.java  |  106 ++
 .../apache/james/PostgresJmapJamesServerTest.java  |   32 +-
 .../james/PostgresWithLDAPJamesServerTest.java     |   64 ++
 .../james/PostgresWithOpenSearchDisabledTest.java  |  142 +++
 .../org/apache/james/PostgresWithTikaTest.java     |   30 +-
 .../james/WithScanningSearchImmutableTest.java     |   28 +-
 .../james/WithScanningSearchMutableTest.java       |   56 +
 .../src/test/resources/dnsservice.xml              |    0
 .../src/test/resources/domainlist.xml              |    0
 .../src/test/resources/eml/htmlMail.eml            |    0
 .../src/test/resources/fakemailrepositorystore.xml |    0
 .../src/test/resources/imapserver.xml              |    0
 .../apps/postgres-app}/src/test/resources/keystore |  Bin
 .../src/test/resources/lmtpserver.xml              |    0
 .../src/test/resources/mailetcontainer.xml         |  132 +++
 .../src/test/resources/mailrepositorystore.xml     |   31 +
 .../src/test/resources/managesieveserver.xml       |    0
 .../src/test/resources/pop3server.xml              |    0
 .../src/test/resources/smtpserver.xml              |    0
 .../src/test/resources/usersrepository.xml         |    0
 .../src/test/resources/webadmin.properties         |    0
 .../blob-postgres}/pom.xml                         |   98 +-
 .../blob/postgres/PostgresBlobStorageModule.java   |   62 ++
 .../james/blob/postgres/PostgresBlobStoreDAO.java  |  180 ++++
 .../blob/postgres/PostgresBlobStoreDAOTest.java    |   96 ++
 .../postgres/PostgresBlobStoreGCAlgorithmTest.java |  103 ++
 server/blob/pom.xml                                |    1 +
 .../guice/blob/postgres}/pom.xml                   |   37 +-
 .../src/main/java/modules/BlobPostgresModule.java} |   22 +-
 .../james/modules/AwsS3BlobStoreExtension.java     |    0
 .../james/modules/data/CassandraJmapModule.java    |    4 +
 .../mailbox/CassandraQuotaMailingModule.java       |    2 +-
 .../java/org/apache/james/GuiceJamesServer.java    |    2 +-
 .../james/utils/InitializationOperations.java      |    1 +
 .../org/apache/james/JamesServerExtension.java     |    2 +-
 .../james/utils/InitializationOperation.java       |    7 +
 .../james/utils/InitilizationOperationBuilder.java |   18 +-
 server/container/guice/distributed/pom.xml         |    4 +
 .../blobstore/BlobStoreCacheModulesChooser.java    |    2 +-
 .../modules/blobstore/BlobStoreConfiguration.java  |   17 +-
 .../modules/blobstore/BlobStoreModulesChooser.java |   16 +
 .../james/modules/plugins/QuotaMailingModule.java} |   11 +-
 .../blobstore/BlobStoreConfigurationTest.java      |   29 +-
 .../guice/{opensearch => mailbox-postgres}/pom.xml |   33 +-
 .../PostgresDeletedMessageVaultModule.java}        |   29 +-
 .../modules/mailbox/PostgresMailboxModule.java     |  195 ++++
 .../james/modules/mailbox/PostgresQuotaModule.java |   76 ++
 .../mailbox/RLSSupportPostgresMailboxModule.java}  |   15 +-
 .../james/modules/data/MemoryDataJmapModule.java   |    4 +
 server/container/guice/opensearch/pom.xml          |   18 +
 .../apache/james/DockerOpenSearchExtension.java    |    0
 .../org/apache/james/DockerOpenSearchRule.java     |    2 +-
 .../test/java/org/apache/james/TikaExtension.java  |    0
 .../org/apache/james/modules/TestTikaModule.java   |    0
 .../mailbox}/TestDockerOpenSearchModule.java       |    2 +-
 server/container/guice/pom.xml                     |   37 +
 .../guice/{opensearch => postgres-common}/pom.xml  |   47 +-
 .../james/modules/data/PostgresCommonModule.java   |  180 ++++
 .../data/PostgresDLPConfigurationStoreModule.java} |   19 +-
 .../modules/data/PostgresDataJmapModule.java}      |   38 +-
 .../james/modules/data/PostgresDataModule.java}    |   21 +-
 .../data/PostgresDelegationStoreModule.java}       |   22 +-
 .../modules/data/PostgresDomainListModule.java}    |   54 +-
 .../modules/data/PostgresDropListsModule.java}     |   20 +-
 .../modules/data/PostgresEventStoreModule.java}    |   18 +-
 .../modules/data/PostgresMailRepositoryModule.java |   62 ++
 .../data/PostgresRecipientRewriteTableModule.java  |   59 +
 .../data/PostgresUsersRepositoryModule.java        |   71 ++
 .../james/modules/data/PostgresVacationModule.java |   56 +
 .../modules/events/PostgresDeadLetterModule.java}  |   28 +-
 .../modules/task/DistributedTaskManagerModule.java |  109 ++
 ...TaskExecutionDetailsProjectionGuiceModule.java} |   21 +-
 .../modules/server/JmapUploadCleanupModule.java    |    6 +-
 server/container/guice/queue/rabbitmq/pom.xml      |   17 +
 .../apache/james/modules/DockerRabbitMQRule.java   |    0
 .../apache/james/modules/RabbitMQExtension.java    |    2 +-
 .../apache/james/modules/TestRabbitMQModule.java   |    3 +-
 .../container/guice/sieve-postgres}/pom.xml        |   35 +-
 .../data/SievePostgresRepositoryModules.java}      |   27 +-
 .../org/apache/james/vacation/api/Vacation.java    |   11 +-
 .../vacation/api/NotificationRegistryContract.java |    2 +-
 .../sieve/cassandra/CassandraSieveQuotaDAOV2.java  |   12 +-
 .../cassandra/CassandraNotificationRegistry.java   |    2 +-
 .../upload/CassandraUploadRepository.java          |    9 +-
 .../upload/CassandraUploadUsageRepository.java     |    7 +-
 .../upload/CassandraUploadRepositoryTest.java      |    9 +-
 .../data/data-jmap-postgres}/pom.xml               |   84 +-
 .../postgres/PostgresDataJMapAggregateModule.java  |   42 +
 .../postgres/change/PostgresEmailChangeDAO.java    |  118 ++
 .../postgres/change/PostgresEmailChangeModule.java |   71 ++
 .../change/PostgresEmailChangeRepository.java      |  115 ++
 .../postgres/change/PostgresMailboxChangeDAO.java  |  126 +++
 .../change/PostgresMailboxChangeModule.java        |   73 ++
 .../change/PostgresMailboxChangeRepository.java    |  115 ++
 .../postgres/change/PostgresStateFactory.java}     |   18 +-
 .../filtering/PostgresFilteringProjection.java     |   65 ++
 .../filtering/PostgresFilteringProjectionDAO.java  |  109 ++
 .../PostgresFilteringProjectionModule.java         |   54 +
 .../identity/PostgresCustomIdentityDAO.java        |  231 ++++
 .../identity/PostgresCustomIdentityModule.java     |   77 ++
 .../projections/PostgresEmailQueryView.java        |   88 ++
 .../projections/PostgresEmailQueryViewDAO.java     |  143 +++
 .../PostgresEmailQueryViewManager.java}            |   29 +-
 .../projections/PostgresEmailQueryViewModule.java  |   81 ++
 .../PostgresMessageFastViewProjection.java         |  105 ++
 .../PostgresMessageFastViewProjectionModule.java   |   56 +
 .../PostgresPushSubscriptionDAO.java               |  172 +++
 .../PostgresPushSubscriptionModule.java            |   82 ++
 .../PostgresPushSubscriptionRepository.java        |  142 +++
 .../jmap/postgres/upload/PostgresUploadDAO.java    |  126 +++
 .../jmap/postgres/upload/PostgresUploadModule.java |   78 ++
 .../postgres/upload/PostgresUploadRepository.java} |   63 +-
 .../upload/PostgresUploadUsageRepository.java}     |   28 +-
 .../change/PostgresEmailChangeRepositoryTest.java  |   58 +
 .../PostgresMailboxChangeRepositoryTest.java       |   58 +
 ...ourcingFilteringManagementNoProjectionTest.java |   46 +
 ...stgresEventSourcingFilteringManagementTest.java |   46 +
 .../identity/PostgresCustomIdentityDAOTest.java    |   19 +-
 .../PostgresEmailQueryViewManagerRLSTest.java      |   73 ++
 .../projections/PostgresEmailQueryViewTest.java    |   71 ++
 .../PostgresMessageFastViewProjectionTest.java     |   62 ++
 .../PostgresPushSubscriptionRepositoryTest.java    |   62 ++
 .../upload/PostgresUploadRepositoryTest.java}      |   26 +-
 .../postgres/upload/PostgresUploadServiceTest.java |   79 ++
 .../upload/PostgresUploadUsageRepositoryTest.java} |   36 +-
 .../FilteringIncrementalRuleChangeDTO.java         |    2 +
 .../api/filtering/FilteringRuleSetDefinedDTO.java  |    1 +
 .../projections/DefaultEmailQueryViewManager.java} |   25 +-
 .../api/projections/EmailQueryViewManager.java}    |   17 +-
 .../api/projections/MessageFastViewProjection.java |    2 +
 .../james/jmap/api/upload/UploadRepository.java    |    3 +
 .../memory/upload/InMemoryUploadRepository.java    |   12 +
 .../api/projections/EmailQueryViewContract.java    |    2 +-
 .../jmap/api/upload/UploadRepositoryContract.scala |   17 +
 .../upload/InMemoryUploadRepositoryTest.java       |   10 +-
 .../PushSubscriptionRepositoryContract.scala       |   19 +
 .../jmap/api/upload/UploadServiceContract.scala    |    5 +
 .../apache/james/user/lib/UsersRepositoryImpl.java |    2 +
 .../lib/SieveRepositoryContract.java               |   11 +
 .../memory/MemoryNotificationRegistry.java         |    2 +-
 server/data/data-postgres/pom.xml                  |  154 +++
 .../domainlist/postgres/PostgresDomainList.java    |   88 ++
 .../domainlist/postgres/PostgresDomainModule.java} |   56 +-
 .../james/droplists/postgres/PostgresDropList.java |  127 +++
 .../droplists/postgres/PostgresDropListModule.java |   68 ++
 .../postgres/PostgresMailRepository.java           |   85 ++
 ...PostgresMailRepositoryBlobReferenceSource.java} |   32 +-
 .../postgres/PostgresMailRepositoryContentDAO.java |  354 ++++++
 .../postgres/PostgresMailRepositoryFactory.java    |   52 +
 .../postgres/PostgresMailRepositoryModule.java     |   91 ++
 .../postgres/PostgresMailRepositoryUrlStore.java   |   66 ++
 .../postgres/PostgresRecipientRewriteTable.java    |   96 ++
 .../postgres/PostgresRecipientRewriteTableDAO.java |   89 ++
 .../PostgresRecipientRewriteTableModule.java       |   60 ++
 .../james/sieve/postgres/PostgresSieveModule.java  |   70 ++
 .../sieve/postgres/PostgresSieveQuotaDAO.java}     |   59 +-
 .../sieve/postgres/PostgresSieveRepository.java    |  268 +++++
 .../sieve/postgres/PostgresSieveScriptDAO.java     |  155 +++
 .../sieve/postgres/model/PostgresSieveScript.java  |  162 +++
 .../postgres/model/PostgresSieveScriptId.java}     |   25 +-
 .../user/postgres/PostgresDelegationStore.java     |   89 ++
 .../james/user/postgres/PostgresUserModule.java    |   58 +
 .../james/user/postgres/PostgresUsersDAO.java      |  251 +++++
 .../user/postgres/PostgresUsersRepository.java}    |   19 +-
 .../PostgresUsersRepositoryConfiguration.java      |   57 +
 .../postgres/PostgresNotificationRegistry.java}    |   49 +-
 .../postgres/PostgresNotificationRegistryDAO.java  |   71 ++
 .../vacation/postgres/PostgresVacationModule.java  |   91 ++
 .../postgres/PostgresVacationRepository.java       |   64 ++
 .../postgres/PostgresVacationResponseDAO.java      |  156 +++
 .../data-postgres}/src/reporting-site/site.xml     |    0
 .../postgres/PostgresDomainListTest.java}          |   35 +-
 .../droplists/postgres/PostgresDropListsTest.java  |   29 +-
 ...tgresMailRepositoryBlobReferenceSourceTest.java |   94 ++
 .../postgres/PostgresMailRepositoryTest.java       |   63 ++
 .../PostgresMailRepositoryUrlStoreExtension.java}  |   42 +-
 .../PostgresMailRepositoryUrlStoreTest.java}       |   17 +-
 .../PostgresRecipientRewriteTableTest.java         |   62 ++
 .../james/rrt/postgres/PostgresStepdefs.java       |   66 ++
 .../james/rrt/postgres/RewriteTablesTest.java}     |   24 +-
 .../sieve/postgres/PostgresSieveQuotaDAOTest.java  |  163 +++
 .../postgres/PostgresSieveRepositoryTest.java}     |   34 +-
 .../user/postgres/PostgresDelegationStoreTest.java |   67 ++
 .../user/postgres/PostgresUsersRepositoryTest.java |  149 +++
 .../PostgresNotificationRegistryTest.java}         |   48 +-
 .../postgres/PostgresVacationRepositoryTest.java}  |   29 +-
 .../src/test/resources/log4j.properties            |    0
 server/pom.xml                                     |    4 +
 .../methods/integration/SetMessagesMethodTest.java |    0
 .../pom.xml                                        |    0
 .../james/jmap/draft/methods/BlobManagerImpl.java  |    0
 .../jmap/draft/methods/GetMessageListMethod.java   |    0
 .../org/apache/james/jmap/draft/model/BlobId.java  |    0
 .../jmap/draft/methods/BlobManagerImplTest.java    |    0
 .../draft/methods/MIMEMessageConverterTest.java    |    0
 .../message/view/MessageFastViewFactoryTest.java   |    0
 .../message/view/MessageFullViewFactoryTest.java   |    0
 .../message/view/MessageHeaderViewFactoryTest.java |    0
 .../view/MessageMetadataViewFactoryTest.java       |    0
 .../pom.xml                                        |   25 +
 .../contract/EmailQueryMethodContract.scala        |   32 +-
 .../contract/MailboxSetMethodContract.scala        |   15 +-
 .../PushSubscriptionSetMethodContract.scala        |    4 +
 .../rfc8621/contract/QuotaGetMethodContract.scala  |  134 +--
 .../jmap/rfc8621/contract/UploadContract.scala     |    2 +-
 .../james/jmap/rfc8621/contract/package.scala      |   24 +-
 .../jmap-rfc-8621-integration-tests/pom.xml        |    1 +
 .../pom.xml                                        |   75 +-
 .../postgres/PostgresAuthenticationTest.java       |   57 +
 .../james/jmap/rfc8621/postgres/PostgresBase.java  |   59 +
 .../rfc8621/postgres/PostgresCustomMethodTest.java |   58 +
 .../postgres/PostgresCustomNamespaceTest.java      |   58 +
 .../PostgresDelegatedAccountGetMethodTest.java}    |   16 +-
 .../postgres/PostgresDelegatedAccountSetTest.java} |   16 +-
 .../rfc8621/postgres/PostgresDownloadTest.java}    |   20 +-
 .../rfc8621/postgres/PostgresEchoMethodTest.java}  |   16 +-
 .../postgres/PostgresEmailChangesMethodTest.java   |   69 ++
 .../postgres/PostgresEmailGetMethodTest.java}      |   20 +-
 .../postgres/PostgresEmailQueryMethodTest.java     |   62 ++
 .../postgres/PostgresEmailSetMethodTest.java}      |   42 +-
 ...sEmailSubmissionSetMethodFutureReleaseTest.java |   95 ++
 .../PostgresEmailSubmissionSetMethodTest.java}     |   20 +-
 .../rfc8621/postgres/PostgresIdentityGetTest.java} |   16 +-
 .../rfc8621/postgres/PostgresIdentitySetTest.java} |   16 +-
 .../postgres/PostgresMDNParseMethodTest.java}      |   20 +-
 .../postgres/PostgresMDNSendMethodTest.java}       |   20 +-
 .../postgres/PostgresMailboxChangesMethodTest.java |   76 ++
 .../postgres/PostgresMailboxGetMethodTest.java}    |   20 +-
 .../postgres/PostgresMailboxQueryChangesTest.java} |   16 +-
 .../postgres/PostgresMailboxQueryMethodTest.java}  |   16 +-
 .../postgres/PostgresMailboxSetMethodTest.java}    |   42 +-
 .../postgres/PostgresProvisioningTest.java}        |   16 +-
 .../PostgresPushSubscriptionSetMethodTest.java     |   66 ++
 .../postgres/PostgresQuotaChangesMethodTest.java}  |   16 +-
 .../postgres/PostgresQuotaGetMethodTest.java}      |   16 +-
 .../postgres/PostgresQuotaQueryMethodTest.java}    |   16 +-
 .../postgres/PostgresSessionRoutesTest.java}       |   16 +-
 .../rfc8621/postgres/PostgresThreadGetTest.java    |   70 ++
 .../jmap/rfc8621/postgres/PostgresUploadTest.java} |   16 +-
 .../PostgresVacationResponseGetMethodTest.java}    |   16 +-
 .../PostgresVacationResponseSetMethodTest.java}    |   16 +-
 .../jmap/rfc8621/postgres/PostgresWebPushTest.java |   66 ++
 .../rfc8621/postgres/PostgresWebSocketTest.java}   |   16 +-
 .../src/test/resources/dnsservice.xml              |    0
 .../src/test/resources/domainlist.xml              |    0
 .../src/test/resources/imapserver.xml              |   24 +
 .../src/test/resources/jmap.properties             |    0
 .../src/test/resources/keystore                    |  Bin
 .../src/test/resources/listeners.xml               |   26 +
 .../src/test/resources/mailetcontainer.xml         |   98 ++
 .../src/test/resources/mailrepositorystore.xml     |   30 +
 .../src/test}/resources/managesieveserver.xml      |    0
 .../src/test}/resources/pop3server.xml             |    0
 .../src/test/resources/rabbitmq.properties         |    0
 .../src/test/resources/smtpserver.xml              |    0
 .../src/test/resources/usersrepository.xml         |   25 +
 .../jmap/event/PopulateEmailQueryViewListener.java |   23 +-
 .../james/jmap/method/EmailQueryMethod.scala       |   19 +-
 .../event/PopulateEmailQueryViewListenerTest.java  |   24 +-
 .../distributed-webadmin-integration-test/pom.xml  |   27 +-
 server/protocols/webadmin-integration-test/pom.xml |    1 +
 .../pom.xml                                        |   67 +-
 .../postgres/PostgresAuthorizedEndpointsTest.java  |   49 +
 ...stViewProjectionHealthCheckIntegrationTest.java |   48 +
 .../postgres/PostgresForwardIntegrationTest.java   |   48 +
 .../postgres/PostgresJwtFilterIntegrationTest.java |   57 +
 ...sPopulateEmailQueryViewTaskIntegrationTest.java |  155 +++
 .../PostgresQuotaSearchIntegrationTest.java        |   51 +
 .../PostgresUnauthorizedEndpointsTest.java         |   51 +
 ...ostgresWebAdminServerBlobGCIntegrationTest.java |  280 +++++
 ...gresWebAdminServerIntegrationImmutableTest.java |   48 +
 .../PostgresWebAdminServerIntegrationTest.java     |   71 ++
 ...PostgresDeletedMessageVaultIntegrationTest.java |  130 +++
 .../src/test/resources/dnsservice.xml              |    0
 .../src/test/resources/domainlist.xml              |    0
 .../test/resources/eml/emailWithOnlyAttachment.eml |    0
 .../src/test}/resources/imapserver.xml             |    0
 .../src/test/resources/jwt_publickey               |    0
 .../src/test/resources/keystore                    |  Bin
 .../src/test/resources/listeners.xml               |   49 +
 .../src/test}/resources/lmtpserver.xml             |    0
 .../src/test/resources/mailetcontainer.xml         |  128 +++
 .../src/test/resources/mailrepositorystore.xml     |   31 +
 .../src/test}/resources/managesieveserver.xml      |    0
 .../src/test}/resources/pop3server.xml             |    0
 .../src/test/resources/smtpserver.xml              |    0
 .../src/test/resources/webadmin.properties         |    0
 .../james/webadmin/data/jmap/JmapUploadRoutes.java |    6 +-
 .../webadmin/data/jmap/UploadCleanupTaskDTO.java   |    4 +-
 .../data/jmap/UploadRepositoryCleanupTask.java     |   10 +-
 .../TaskExecutionDetailsProjectionContract.java    |   36 +-
 .../task/task-postgres}/pom.xml                    |  112 +-
 .../PostgresTaskExecutionDetailsProjection.scala   |   54 +
 ...PostgresTaskExecutionDetailsProjectionDAO.scala |  112 ++
 ...tgresTaskExecutionDetailsProjectionModule.scala |   72 ++
 ...tgresTaskExecutionDetailsProjectionDAOTest.java |  202 ++++
 ...PostgresTaskExecutionDetailsProjectionTest.java |   52 +
 src/adr/0070-postgresql-adoption.md                |    2 +-
 .../0071-postgresql-mailbox-tables-structure.md    |   58 +
 ...-postgresql-flags-update-concurrency-control.md |   57 +
 src/adr/img/adr-71-mailbox-tables-diagram.png      |  Bin 0 -> 146780 bytes
 .../xdoc/server/config-mailrepositorystore.xml     |    6 +
 673 files changed, 32986 insertions(+), 2938 deletions(-)
 copy {mpt/impl/smtp/cassandra-rabbitmq-object-storage => backends-common/postgres}/pom.xml (56%)
 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/PostgresConfiguration.java
 create mode 100644 backends-common/postgres/src/main/java/org/apache/james/backends/postgres/PostgresIndex.java
 create mode 100644 backends-common/postgres/src/main/java/org/apache/james/backends/postgres/PostgresModule.java
 create mode 100644 backends-common/postgres/src/main/java/org/apache/james/backends/postgres/PostgresTable.java
 create mode 100644 backends-common/postgres/src/main/java/org/apache/james/backends/postgres/PostgresTableManager.java
 copy server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => backends-common/postgres/src/main/java/org/apache/james/backends/postgres/RowLevelSecurity.java (73%)
 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
 copy server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => backends-common/postgres/src/main/java/org/apache/james/backends/postgres/utils/JamesPostgresConnectionFactory.java (71%)
 create mode 100644 backends-common/postgres/src/main/java/org/apache/james/backends/postgres/utils/PoolBackedPostgresConnectionFactory.java
 copy server/apps/cassandra-app/src/test/java/org/apache/james/modules/TestTikaModule.java => backends-common/postgres/src/main/java/org/apache/james/backends/postgres/utils/PostgresConnectionClosure.java (59%)
 create mode 100644 backends-common/postgres/src/main/java/org/apache/james/backends/postgres/utils/PostgresExecutor.java
 copy server/apps/distributed-app/src/test/java/org/apache/james/modules/AwsS3BlobStoreExtension.java => backends-common/postgres/src/main/java/org/apache/james/backends/postgres/utils/PostgresHealthCheck.java (52%)
 copy mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/Limits.java => backends-common/postgres/src/main/java/org/apache/james/backends/postgres/utils/PostgresUtils.java (55%)
 copy server/apps/cassandra-app/src/test/java/org/apache/james/TikaExtension.java => backends-common/postgres/src/test/java/org/apache/james/backends/postgres/DockerPostgresSingleton.java (63%)
 create mode 100644 backends-common/postgres/src/test/java/org/apache/james/backends/postgres/JamesPostgresConnectionFactoryTest.java
 copy mailbox/plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/listeners/CassandraQuotaMailingListenersIntegrationTest.java => backends-common/postgres/src/test/java/org/apache/james/backends/postgres/PoolBackedPostgresConnectionFactoryTest.java (64%)
 create mode 100644 backends-common/postgres/src/test/java/org/apache/james/backends/postgres/PostgresConfigurationTest.java
 create mode 100644 backends-common/postgres/src/test/java/org/apache/james/backends/postgres/PostgresExecutorThreadSafetyTest.java
 create mode 100644 backends-common/postgres/src/test/java/org/apache/james/backends/postgres/PostgresExtension.java
 create mode 100644 backends-common/postgres/src/test/java/org/apache/james/backends/postgres/PostgresExtensionTest.java
 create mode 100644 backends-common/postgres/src/test/java/org/apache/james/backends/postgres/PostgresFixture.java
 create mode 100644 backends-common/postgres/src/test/java/org/apache/james/backends/postgres/PostgresTableManagerTest.java
 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} (55%)
 create mode 100644 backends-common/postgres/src/test/java/org/apache/james/backends/postgres/utils/PostgresHealthCheckTest.java
 create mode 100644 docs/modules/servers/assets/images/james-imap-base-performance-postgres.png
 create mode 100644 docs/modules/servers/assets/images/postgres_pg_stat_statements.png
 create mode 100644 docs/modules/servers/assets/images/specialized-instances-postgres.png
 create mode 100644 docs/modules/servers/assets/images/storage_james_postgres.png
 create mode 100644 docs/modules/servers/assets/images/storage_james_postgres.svg
 create mode 100644 docs/modules/servers/pages/postgres/architecture/consistency-model.adoc
 copy docs/modules/servers/pages/{distributed/benchmark/benchmark_prepare.adoc => postgres/architecture/consistency_model_data_replication_extend.adoc} (100%)
 create mode 100644 docs/modules/servers/pages/postgres/architecture/implemented-standards.adoc
 create mode 100644 docs/modules/servers/pages/postgres/architecture/index.adoc
 create mode 100644 docs/modules/servers/pages/postgres/architecture/mailqueue_combined_extend.adoc
 create mode 100644 docs/modules/servers/pages/postgres/architecture/specialized-instances.adoc
 create mode 100644 docs/modules/servers/pages/postgres/benchmark/benchmark_prepare.adoc
 create mode 100644 docs/modules/servers/pages/postgres/benchmark/db-benchmark.adoc
 create mode 100644 docs/modules/servers/pages/postgres/benchmark/index.adoc
 create mode 100644 docs/modules/servers/pages/postgres/benchmark/james-benchmark.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/batchsizes.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/blobstore.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/collecting-contacts.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/collecting-events.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/dns.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/domainlist.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/droplists.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/dsn.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/extensions.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/healthcheck.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/imap.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/index.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/jmap.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/jmx.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/jvm.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/listeners.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/mailetcontainer.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/mailets.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/mailrepositorystore.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/matchers.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/opensearch.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/pop3.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/queue.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/rabbitmq.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/recipientrewritetable.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/redis.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/remote-delivery-error-handling.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/search.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/sieve.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/smtp-hooks.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/smtp.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/spam.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/ssl.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/tika.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/usersrepository.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/vault.adoc
 create mode 100644 docs/modules/servers/pages/postgres/configure/webadmin.adoc
 create mode 100644 docs/modules/servers/pages/postgres/extending.adoc
 create mode 100644 docs/modules/servers/pages/postgres/extending/index.adoc
 create mode 100644 docs/modules/servers/pages/postgres/index.adoc
 create mode 100644 docs/modules/servers/pages/postgres/objectives.adoc
 create mode 100644 docs/modules/servers/pages/postgres/operate/cli.adoc
 create mode 100644 docs/modules/servers/pages/postgres/operate/guide.adoc
 create mode 100644 docs/modules/servers/pages/postgres/operate/index.adoc
 create mode 100644 docs/modules/servers/pages/postgres/operate/logging.adoc
 create mode 100644 docs/modules/servers/pages/postgres/operate/logging/docker-compose-block.adoc
 create mode 100644 docs/modules/servers/pages/postgres/operate/metrics.adoc
 create mode 100644 docs/modules/servers/pages/postgres/operate/migrating.adoc
 create mode 100644 docs/modules/servers/pages/postgres/operate/performanceChecklist.adoc
 create mode 100644 docs/modules/servers/pages/postgres/operate/security.adoc
 create mode 100644 docs/modules/servers/pages/postgres/operate/webadmin.adoc
 create mode 100644 docs/modules/servers/pages/postgres/operate/webadmin/admin-mail-queues-extend.adoc
 create mode 100644 docs/modules/servers/pages/postgres/operate/webadmin/admin-mailboxes-extend.adoc
 create mode 100644 docs/modules/servers/pages/postgres/operate/webadmin/admin-messages-extend.adoc
 create mode 100644 docs/modules/servers/pages/postgres/run/index.adoc
 create mode 100644 docs/modules/servers/pages/postgres/run/run-docker.adoc
 create mode 100644 docs/modules/servers/pages/postgres/run/run-java.adoc
 copy {server/container/guice/queue/rabbitmq => event-bus/postgres}/pom.xml (65%)
 create mode 100644 event-bus/postgres/src/main/java/org/apache/james/events/PostgresEventDeadLetters.java
 create mode 100644 event-bus/postgres/src/main/java/org/apache/james/events/PostgresEventDeadLettersModule.java
 copy mailbox/plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/listeners/CassandraQuotaMailingListenersIntegrationTest.java => event-bus/postgres/src/test/java/org/apache/james/events/PostgresEventDeadLettersTest.java (64%)
 copy {mpt/impl/smtp/cassandra => event-sourcing/event-store-postgres}/pom.xml (62%)
 create mode 100644 event-sourcing/event-store-postgres/src/main/java/org/apache/james/eventsourcing/eventstore/postgres/PostgresEventStore.java
 create mode 100644 event-sourcing/event-store-postgres/src/main/java/org/apache/james/eventsourcing/eventstore/postgres/PostgresEventStoreDAO.java
 create mode 100644 event-sourcing/event-store-postgres/src/main/java/org/apache/james/eventsourcing/eventstore/postgres/PostgresEventStoreModule.java
 copy server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => event-sourcing/event-store-postgres/src/test/java/org/apache/james/eventsourcing/eventstore/postgres/PostgresEventSourcingSystemTest.java (73%)
 create mode 100644 event-sourcing/event-store-postgres/src/test/java/org/apache/james/eventsourcing/eventstore/postgres/PostgresEventStoreExtension.java
 copy server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => event-sourcing/event-store-postgres/src/test/java/org/apache/james/eventsourcing/eventstore/postgres/PostgresEventStoreExtensionForTestEvents.java (71%)
 create mode 100644 event-sourcing/event-store-postgres/src/test/java/org/apache/james/eventsourcing/eventstore/postgres/PostgresEventStoreTest.java
 copy server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => mailbox/api/src/main/java/org/apache/james/mailbox/UuidBackedAttachmentIdFactory.java (73%)
 copy server/apps/distributed-app/src/test/java/org/apache/james/modules/RabbitMQExtension.java => mailbox/api/src/main/java/org/apache/james/mailbox/model/UuidBackedAttachmentId.java (50%)
 rename 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%)
 copy {mpt/impl/smtp/cassandra => mailbox/plugin/deleted-messages-vault-postgres}/pom.xml (72%)
 create mode 100644 mailbox/plugin/deleted-messages-vault-postgres/src/main/java/org/apache/james/vault/metadata/PostgresDeletedMessageMetadataModule.java
 create mode 100644 mailbox/plugin/deleted-messages-vault-postgres/src/main/java/org/apache/james/vault/metadata/PostgresDeletedMessageMetadataVault.java
 create mode 100644 mailbox/plugin/deleted-messages-vault-postgres/src/main/java/org/apache/james/vault/metadata/PostgresDeletedMessageVaultDeletionCallback.java
 create mode 100644 mailbox/plugin/deleted-messages-vault-postgres/src/test/java/org/apache/james/vault/metadata/PostgresDeletedMessageMetadataVaultTest.java
 rename mailbox/plugin/{deleted-messages-vault-cassandra => deleted-messages-vault}/src/main/java/org/apache/james/vault/metadata/MetadataSerializer.java (100%)
 rename mailbox/plugin/{quota-mailing-cassandra/src/main/java/org/apache/james/mailbox/quota/cassandra/dto => quota-mailing/src/main/java/org/apache/james/mailbox/quota/mailing/events}/HistoryEvolutionDTO.java (66%)
 rename mailbox/plugin/{quota-mailing-cassandra/src/main/java/org/apache/james/mailbox/quota/cassandra/dto => quota-mailing/src/main/java/org/apache/james/mailbox/quota/mailing/events}/QuotaDTO.java (82%)
 copy mailbox/plugin/{quota-mailing-cassandra/src/main/java/org/apache/james/mailbox/quota/cassandra/dto => quota-mailing/src/main/java/org/apache/james/mailbox/quota/mailing/events}/QuotaEventDTOModules.java (92%)
 rename mailbox/plugin/{quota-mailing-cassandra/src/main/java/org/apache/james/mailbox/quota/cassandra/dto => quota-mailing/src/main/java/org/apache/james/mailbox/quota/mailing/events}/QuotaThresholdChangedEventDTO.java (57%)
 create mode 100644 mailbox/postgres/pom.xml
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/DeleteMessageListener.java
 copy mailbox/{plugin/quota-mailing-cassandra/src/main/java/org/apache/james/mailbox/quota/cassandra/dto/QuotaEventDTOModules.java => postgres/src/main/java/org/apache/james/mailbox/postgres/PostgresMailboxAggregateModule.java} (59%)
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/PostgresMailboxAnnotationModule.java
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/PostgresMailboxId.java
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/PostgresMailboxManager.java
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/PostgresMailboxSessionMapperFactory.java
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/PostgresMessageId.java
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/PostgresMessageManager.java
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/PostgresThreadIdGuessingAlgorithm.java
 copy server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/UnsupportAttachmentContentLoader.java (66%)
 copy server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/MailboxDeleteDuringUpdateException.java (73%)
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/MessageRepresentation.java
 copy server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/PostgresACLUpsertException.java (73%)
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/PostgresAnnotationMapper.java
 copy server/apps/cassandra-app/src/test/java/org/apache/james/modules/TestTikaModule.java => mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/PostgresAttachmentBlobReferenceSource.java (54%)
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/PostgresAttachmentMapper.java
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/PostgresAttachmentModule.java
 copy server/apps/cassandra-app/src/test/java/org/apache/james/TikaExtension.java => mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/PostgresMailbox.java (61%)
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/PostgresMailboxMapper.java
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/PostgresMailboxMemberDAO.java
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/PostgresMailboxMemberModule.java
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/PostgresMailboxModule.java
 copy server/apps/cassandra-app/src/test/java/org/apache/james/TikaExtension.java => mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/PostgresMessageBlobReferenceSource.java (65%)
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/PostgresMessageIdMapper.java
 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/PostgresMessageRetriever.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/RLSSupportPostgresMailboxMapper.java
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/dao/PostgresAttachmentDAO.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
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/dao/PostgresThreadDAO.java
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/dao/PostgresThreadModule.java
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/dto/AttachmentsDTO.java
 rename mailbox/{plugin/quota-mailing-cassandra/src/main/java/org/apache/james/mailbox/quota/cassandra/dto/QuotaEventDTOModules.java => postgres/src/main/java/org/apache/james/mailbox/postgres/mail/eventsourcing/acl/ACLModule.java} (62%)
 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} (69%)
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/search/AllSearchOverride.java
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/search/DeletedSearchOverride.java
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/search/DeletedWithRangeSearchOverride.java
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/search/NotDeletedWithRangeSearchOverride.java
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/search/UidSearchOverride.java
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/search/UnseenSearchOverride.java
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/user/PostgresSubscriptionDAO.java
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/user/PostgresSubscriptionMapper.java
 create mode 100644 mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/user/PostgresSubscriptionModule.java
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/DeleteMessageListenerContract.java
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/DeleteMessageListenerTest.java
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/DeleteMessageListenerWithRLSTest.java
 copy mailbox/{plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/listeners/CassandraQuotaMailingListenersIntegrationTest.java => postgres/src/test/java/org/apache/james/mailbox/postgres/PostgresCombinationManagerTest.java} (51%)
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/PostgresCombinationManagerTestSystem.java
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/PostgresMailboxManagerAttachmentTest.java
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/PostgresMailboxManagerProvider.java
 copy server/data/data-jmap/src/test/java/org/apache/james/jmap/memory/upload/InMemoryUploadRepositoryTest.java => mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/PostgresMailboxManagerStressTest.java (54%)
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/PostgresMailboxManagerTest.java
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/PostgresMessageIdManagerQuotaTest.java
 copy mailbox/{plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/listeners/CassandraQuotaMailingListenersIntegrationTest.java => postgres/src/test/java/org/apache/james/mailbox/postgres/PostgresMessageIdManagerSideEffectTest.java} (57%)
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/PostgresMessageIdManagerStorageTest.java
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/PostgresMessageIdManagerTestSystem.java
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/PostgresSubscriptionManagerTest.java
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/PostgresTestSystemFixture.java
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/PostgresThreadIdGuessingAlgorithmTest.java
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/PostgresAnnotationMapperRowLevelSecurityTest.java
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/PostgresAnnotationMapperTest.java
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/PostgresAttachmentBlobReferenceSourceTest.java
 copy server/data/data-jmap/src/test/java/org/apache/james/jmap/memory/upload/InMemoryUploadRepositoryTest.java => mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/PostgresAttachmentMapperTest.java (55%)
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/PostgresMailboxMapperACLTest.java
 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
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/PostgresMapperProvider.java
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/PostgresMessageBlobReferenceSourceTest.java
 copy mailbox/{plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/listeners/CassandraQuotaMailingListenersIntegrationTest.java => postgres/src/test/java/org/apache/james/mailbox/postgres/mail/PostgresMessageIdMapperTest.java} (56%)
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/PostgresMessageMapperRowLevelSecurityTest.java
 copy mailbox/{plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/listeners/CassandraQuotaMailingListenersIntegrationTest.java => postgres/src/test/java/org/apache/james/mailbox/postgres/mail/PostgresMessageMapperTest.java} (56%)
 copy mailbox/{plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/listeners/CassandraQuotaMailingListenersIntegrationTest.java => postgres/src/test/java/org/apache/james/mailbox/postgres/mail/PostgresMessageMoveTest.java} (64%)
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/PostgresModSeqProviderTest.java
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/PostgresUidProviderTest.java
 copy mailbox/{plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/listeners/CassandraQuotaMailingListenersIntegrationTest.java => postgres/src/test/java/org/apache/james/mailbox/postgres/mail/RLSSupportPostgresMailboxMapperACLTest.java} (57%)
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/dao/PostgresMailboxMessageDAOTest.java
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/task/PostgresRecomputeCurrentQuotasServiceTest.java
 copy server/data/data-jmap/src/test/java/org/apache/james/jmap/memory/upload/InMemoryUploadRepositoryTest.java => mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/quota/PostgresCurrentQuotaManagerTest.java (56%)
 copy mailbox/{plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/listeners/CassandraQuotaMailingListenersIntegrationTest.java => postgres/src/test/java/org/apache/james/mailbox/postgres/quota/PostgresPerUserMaxQuotaManagerTest.java} (59%)
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/search/AllSearchOverrideTest.java
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/search/DeletedSearchOverrideTest.java
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/search/DeletedWithRangeSearchOverrideTest.java
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/search/NotDeletedWithRangeSearchOverrideTest.java
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/search/SearchOverrideFixture.java
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/search/UidSearchOverrideTest.java
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/search/UnseenSearchOverrideTest.java
 create mode 100644 mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/user/PostgresSubscriptionMapperRowLevelSecurityTest.java
 copy mailbox/{plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/listeners/CassandraQuotaMailingListenersIntegrationTest.java => postgres/src/test/java/org/apache/james/mailbox/postgres/user/PostgresSubscriptionMapperTest.java} (64%)
 copy mpt/impl/{smtp/cassandra-rabbitmq-object-storage => imap-mailbox/postgres}/pom.xml (63%)
 copy server/container/guice/configuration/src/main/java/org/apache/james/utils/InitializationOperation.java => mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresAuthenticatePlainTest.java (65%)
 copy mailbox/plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/listeners/CassandraQuotaMailingListenersIntegrationTest.java => mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresAuthenticatedStateTest.java (63%)
 copy mailbox/plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/listeners/CassandraQuotaMailingListenersIntegrationTest.java => mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresConcurrentSessionsTest.java (62%)
 copy server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresCondstoreTest.java (66%)
 copy server/apps/cassandra-app/src/test/java/org/apache/james/TikaExtension.java => mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresCopyTest.java (65%)
 copy server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresEventsTest.java (67%)
 copy server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresExpungeTest.java (66%)
 copy server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresFetchBodySectionTest.java (65%)
 copy server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresFetchBodyStructureTest.java (65%)
 copy server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresFetchHeadersTest.java (66%)
 copy server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresFetchTest.java (67%)
 copy server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresListingTest.java (66%)
 copy server/container/guice/configuration/src/main/java/org/apache/james/utils/InitializationOperation.java => mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresMailboxAnnotationTest.java (65%)
 copy server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresMailboxWithLongNameErrorTest.java (65%)
 copy server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresMoveTest.java (67%)
 copy server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresNonAuthenticatedStateTest.java (65%)
 copy server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresPartialFetchTest.java (66%)
 copy server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresQuotaTest.java (66%)
 copy server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresRenameTest.java (67%)
 copy server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresSearchTest.java (67%)
 copy server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresSecurityTest.java (66%)
 copy server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresSelectTest.java (67%)
 copy server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresSelectedInboxTest.java (66%)
 copy mailbox/plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/listeners/CassandraQuotaMailingListenersIntegrationTest.java => mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresSelectedStateTest.java (55%)
 copy server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresUidSearchOnIndexTest.java (65%)
 copy server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresUidSearchTest.java (66%)
 copy server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresUserFlagsSupportTest.java (65%)
 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 server/apps/postgres-app/README.adoc
 create mode 100644 server/apps/postgres-app/clean_up.sql
 create mode 100644 server/apps/postgres-app/docker-compose-distributed.yml
 create mode 100644 server/apps/postgres-app/docker-compose.yml
 copy server/apps/{cassandra-app => postgres-app}/docker-configuration/webadmin.properties (100%)
 create mode 100644 server/apps/postgres-app/imap-provision-conf/provisioning.properties
 create mode 100644 server/apps/postgres-app/performance-test.md
 copy server/apps/{distributed-app => postgres-app}/pom.xml (84%)
 create mode 100755 server/apps/postgres-app/provision.sh
 create mode 100644 server/apps/postgres-app/sample-configuration-distributed/blob.properties
 create mode 100644 server/apps/postgres-app/sample-configuration-distributed/opensearch.properties
 create mode 100644 server/apps/postgres-app/sample-configuration-distributed/rabbitmq.properties
 create mode 100644 server/apps/postgres-app/sample-configuration-single/search.properties
 create mode 100644 server/apps/postgres-app/sample-configuration/blob.properties
 create mode 100644 server/apps/postgres-app/sample-configuration/deletedMessageVault.properties
 copy server/apps/{jpa-app => postgres-app}/sample-configuration/dnsservice.xml (100%)
 copy server/apps/{cassandra-app => postgres-app}/sample-configuration/domainlist.xml (100%)
 copy server/apps/{distributed-app => postgres-app}/sample-configuration/droplists.properties (100%)
 copy server/apps/{cassandra-app => postgres-app}/sample-configuration/extensions.properties (100%)
 copy server/apps/{distributed-pop3-app => postgres-app}/sample-configuration/healthcheck.properties (100%)
 create mode 100644 server/apps/postgres-app/sample-configuration/imapserver.xml
 copy server/apps/{distributed-app => postgres-app}/sample-configuration/jmap.properties (100%)
 copy server/apps/{cassandra-app => postgres-app}/sample-configuration/jmx.properties (100%)
 create mode 100644 server/apps/postgres-app/sample-configuration/jvm.properties
 copy server/apps/{cli-integration-tests/src/test/resources => postgres-app/sample-configuration}/jwt_publickey (100%)
 copy server/apps/{jpa-app => postgres-app}/sample-configuration/listeners.xml (100%)
 copy server/apps/{cassandra-app => postgres-app}/sample-configuration/lmtpserver.xml (100%)
 copy server/apps/{jpa-app => postgres-app}/sample-configuration/logback.xml (100%)
 create mode 100644 server/apps/postgres-app/sample-configuration/mailetcontainer.xml
 create mode 100644 server/apps/postgres-app/sample-configuration/mailrepositorystore.xml
 copy server/apps/{cassandra-app => postgres-app}/sample-configuration/managesieveserver.xml (100%)
 copy server/apps/{cassandra-app => postgres-app}/sample-configuration/pop3server.xml (100%)
 create mode 100644 server/apps/postgres-app/sample-configuration/postgres.properties
 copy server/apps/{cassandra-app => postgres-app}/sample-configuration/recipientrewritetable.xml (100%)
 copy server/apps/{jpa-app => postgres-app}/sample-configuration/smtpserver.xml (100%)
 copy {examples/custom-imap/src/test/resources => server/apps/postgres-app/sample-configuration}/usersrepository.xml (100%)
 copy server/apps/{jpa-app => postgres-app}/sample-configuration/webadmin.properties (100%)
 create mode 100644 server/apps/postgres-app/src/assemble/app.xml
 copy server/apps/{cassandra-app => postgres-app}/src/assemble/extensions-jars.txt (100%)
 create mode 100644 server/apps/postgres-app/src/assemble/license-for-binary.txt
 copy server/apps/{cassandra-app => postgres-app}/src/main/extensions-jars/README.md (100%)
 copy server/apps/{cassandra-app => postgres-app}/src/main/glowroot/admin.json (100%)
 copy server/apps/{cassandra-app => postgres-app}/src/main/glowroot/plugins/imap.json (100%)
 create mode 100644 server/apps/postgres-app/src/main/glowroot/plugins/jmap.json
 copy server/apps/{cassandra-app => postgres-app}/src/main/glowroot/plugins/mailboxListener.json (100%)
 copy server/apps/{cassandra-app => postgres-app}/src/main/glowroot/plugins/pop3.json (100%)
 copy server/apps/{cassandra-app => postgres-app}/src/main/glowroot/plugins/smtp.json (100%)
 copy server/apps/{jpa-app => postgres-app}/src/main/glowroot/plugins/spooler.json (100%)
 copy server/apps/{cassandra-app => postgres-app}/src/main/glowroot/plugins/task.json (100%)
 create mode 100644 server/apps/postgres-app/src/main/java/org/apache/james/PostgresJamesConfiguration.java
 create mode 100644 server/apps/postgres-app/src/main/java/org/apache/james/PostgresJamesServerMain.java
 create mode 100644 server/apps/postgres-app/src/main/java/org/apache/james/PostgresJmapModule.java
 copy server/apps/{jpa-app => postgres-app}/src/main/resources/defaultMailetContainer.xml (100%)
 copy server/apps/{cassandra-app => postgres-app}/src/main/scripts/james-cli (100%)
 create mode 100644 server/apps/postgres-app/src/test/java/org/apache/james/BodyDeduplicationIntegrationTest.java
 create mode 100644 server/apps/postgres-app/src/test/java/org/apache/james/DistributedPostgresJamesServerTest.java
 create mode 100644 server/apps/postgres-app/src/test/java/org/apache/james/JamesCapabilitiesServerTest.java
 copy server/apps/{cassandra-app => postgres-app}/src/test/java/org/apache/james/JamesServerConcreteContract.java (100%)
 create mode 100644 server/apps/postgres-app/src/test/java/org/apache/james/PostgresBlobStoreIntegrationTest.java
 create mode 100644 server/apps/postgres-app/src/test/java/org/apache/james/PostgresJamesServerTest.java
 copy mailbox/plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/listeners/CassandraQuotaMailingListenersIntegrationTest.java => server/apps/postgres-app/src/test/java/org/apache/james/PostgresJmapJamesServerTest.java (50%)
 create mode 100644 server/apps/postgres-app/src/test/java/org/apache/james/PostgresWithLDAPJamesServerTest.java
 create mode 100644 server/apps/postgres-app/src/test/java/org/apache/james/PostgresWithOpenSearchDisabledTest.java
 copy mailbox/plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/listeners/CassandraQuotaMailingListenersIntegrationTest.java => server/apps/postgres-app/src/test/java/org/apache/james/PostgresWithTikaTest.java (54%)
 copy mailbox/plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/listeners/CassandraQuotaMailingListenersIntegrationTest.java => server/apps/postgres-app/src/test/java/org/apache/james/WithScanningSearchImmutableTest.java (56%)
 create mode 100644 server/apps/postgres-app/src/test/java/org/apache/james/WithScanningSearchMutableTest.java
 copy {examples/custom-imap => server/apps/postgres-app}/src/test/resources/dnsservice.xml (100%)
 copy {examples/custom-imap => server/apps/postgres-app}/src/test/resources/domainlist.xml (100%)
 copy server/apps/{cassandra-app => postgres-app}/src/test/resources/eml/htmlMail.eml (100%)
 copy server/apps/{cassandra-app => postgres-app}/src/test/resources/fakemailrepositorystore.xml (100%)
 copy server/apps/{cassandra-app => postgres-app}/src/test/resources/imapserver.xml (100%)
 copy {examples/custom-imap => server/apps/postgres-app}/src/test/resources/keystore (100%)
 copy server/apps/{cli-integration-tests => postgres-app}/src/test/resources/lmtpserver.xml (100%)
 create mode 100644 server/apps/postgres-app/src/test/resources/mailetcontainer.xml
 create mode 100644 server/apps/postgres-app/src/test/resources/mailrepositorystore.xml
 copy {examples/custom-imap => server/apps/postgres-app}/src/test/resources/managesieveserver.xml (100%)
 copy {examples/custom-imap => server/apps/postgres-app}/src/test/resources/pop3server.xml (100%)
 copy server/apps/{distributed-pop3-app => postgres-app}/src/test/resources/smtpserver.xml (100%)
 copy {examples/custom-imap => server/apps/postgres-app}/src/test/resources/usersrepository.xml (100%)
 copy server/apps/{webadmin-cli => postgres-app}/src/test/resources/webadmin.properties (100%)
 copy server/{protocols/webadmin-integration-test/distributed-webadmin-integration-test => blob/blob-postgres}/pom.xml (60%)
 create mode 100644 server/blob/blob-postgres/src/main/java/org/apache/james/blob/postgres/PostgresBlobStorageModule.java
 create mode 100644 server/blob/blob-postgres/src/main/java/org/apache/james/blob/postgres/PostgresBlobStoreDAO.java
 create mode 100644 server/blob/blob-postgres/src/test/java/org/apache/james/blob/postgres/PostgresBlobStoreDAOTest.java
 create mode 100644 server/blob/blob-postgres/src/test/java/org/apache/james/blob/postgres/PostgresBlobStoreGCAlgorithmTest.java
 copy server/{protocols/webadmin-integration-test => container/guice/blob/postgres}/pom.xml (52%)
 copy server/{protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => container/guice/blob/postgres/src/main/java/modules/BlobPostgresModule.java} (68%)
 rename server/{apps/distributed-app => container/guice/blob/s3}/src/test/java/org/apache/james/modules/AwsS3BlobStoreExtension.java (100%)
 copy server/container/guice/{cassandra/src/main/java/org/apache/james/modules/mailbox/CassandraQuotaMailingModule.java => distributed/src/main/java/org/apache/james/modules/plugins/QuotaMailingModule.java} (87%)
 copy server/container/guice/{opensearch => mailbox-postgres}/pom.xml (72%)
 copy server/container/guice/{cassandra/src/main/java/org/apache/james/modules/mailbox/CassandraQuotaMailingModule.java => mailbox-postgres/src/main/java/org/apache/james/modules/mailbox/PostgresDeletedMessageVaultModule.java} (52%)
 create mode 100644 server/container/guice/mailbox-postgres/src/main/java/org/apache/james/modules/mailbox/PostgresMailboxModule.java
 create mode 100644 server/container/guice/mailbox-postgres/src/main/java/org/apache/james/modules/mailbox/PostgresQuotaModule.java
 copy server/container/guice/{cassandra/src/main/java/org/apache/james/modules/mailbox/CassandraQuotaMailingModule.java => mailbox-postgres/src/main/java/org/apache/james/modules/mailbox/RLSSupportPostgresMailboxModule.java} (67%)
 rename server/{apps/cassandra-app => container/guice/opensearch}/src/test/java/org/apache/james/DockerOpenSearchExtension.java (100%)
 copy server/{apps/cassandra-app => container/guice/opensearch}/src/test/java/org/apache/james/DockerOpenSearchRule.java (96%)
 copy server/{apps/cassandra-app => container/guice/opensearch}/src/test/java/org/apache/james/TikaExtension.java (100%)
 copy server/{apps/cassandra-app => container/guice/opensearch}/src/test/java/org/apache/james/modules/TestTikaModule.java (100%)
 copy server/{apps/cassandra-app/src/test/java/org/apache/james/modules => container/guice/opensearch/src/test/java/org/apache/james/modules/mailbox}/TestDockerOpenSearchModule.java (98%)
 copy server/container/guice/{opensearch => postgres-common}/pom.xml (66%)
 create mode 100644 server/container/guice/postgres-common/src/main/java/org/apache/james/modules/data/PostgresCommonModule.java
 copy server/container/guice/{cassandra/src/main/java/org/apache/james/modules/mailbox/CassandraQuotaMailingModule.java => postgres-common/src/main/java/org/apache/james/modules/data/PostgresDLPConfigurationStoreModule.java} (69%)
 copy server/container/guice/{memory/src/main/java/org/apache/james/modules/data/MemoryDataJmapModule.java => postgres-common/src/main/java/org/apache/james/modules/data/PostgresDataJmapModule.java} (71%)
 copy server/{protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => container/guice/postgres-common/src/main/java/org/apache/james/modules/data/PostgresDataModule.java} (73%)
 copy server/container/guice/{cassandra/src/main/java/org/apache/james/modules/mailbox/CassandraQuotaMailingModule.java => postgres-common/src/main/java/org/apache/james/modules/data/PostgresDelegationStoreModule.java} (63%)
 rename server/{apps/cassandra-app/src/test/java/org/apache/james/modules/TestDockerOpenSearchModule.java => container/guice/postgres-common/src/main/java/org/apache/james/modules/data/PostgresDomainListModule.java} (52%)
 copy server/{protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => container/guice/postgres-common/src/main/java/org/apache/james/modules/data/PostgresDropListsModule.java} (73%)
 copy server/container/guice/{cassandra/src/main/java/org/apache/james/modules/mailbox/CassandraQuotaMailingModule.java => postgres-common/src/main/java/org/apache/james/modules/data/PostgresEventStoreModule.java} (65%)
 create mode 100644 server/container/guice/postgres-common/src/main/java/org/apache/james/modules/data/PostgresMailRepositoryModule.java
 create mode 100644 server/container/guice/postgres-common/src/main/java/org/apache/james/modules/data/PostgresRecipientRewriteTableModule.java
 create mode 100644 server/container/guice/postgres-common/src/main/java/org/apache/james/modules/data/PostgresUsersRepositoryModule.java
 create mode 100644 server/container/guice/postgres-common/src/main/java/org/apache/james/modules/data/PostgresVacationModule.java
 copy server/container/guice/{cassandra/src/main/java/org/apache/james/modules/mailbox/CassandraQuotaMailingModule.java => postgres-common/src/main/java/org/apache/james/modules/events/PostgresDeadLetterModule.java} (58%)
 create mode 100644 server/container/guice/postgres-common/src/main/java/org/apache/james/modules/task/DistributedTaskManagerModule.java
 copy server/container/guice/{cassandra/src/main/java/org/apache/james/modules/mailbox/CassandraQuotaMailingModule.java => postgres-common/src/main/java/org/apache/james/modules/task/PostgresTaskExecutionDetailsProjectionGuiceModule.java} (61%)
 rename server/{apps/distributed-app => container/guice/queue/rabbitmq}/src/test/java/org/apache/james/modules/DockerRabbitMQRule.java (100%)
 copy server/{apps/distributed-app => container/guice/queue/rabbitmq}/src/test/java/org/apache/james/modules/RabbitMQExtension.java (99%)
 rename server/{apps/distributed-app => container/guice/queue/rabbitmq}/src/test/java/org/apache/james/modules/TestRabbitMQModule.java (98%)
 copy {event-bus => server/container/guice/sieve-postgres}/pom.xml (57%)
 copy server/container/guice/{cassandra/src/main/java/org/apache/james/modules/mailbox/CassandraQuotaMailingModule.java => sieve-postgres/src/main/java/org/apache/james/modules/data/SievePostgresRepositoryModules.java} (56%)
 copy {mpt/impl/smtp/cassandra-rabbitmq-object-storage => server/data/data-jmap-postgres}/pom.xml (59%)
 create mode 100644 server/data/data-jmap-postgres/src/main/java/org/apache/james/jmap/postgres/PostgresDataJMapAggregateModule.java
 create mode 100644 server/data/data-jmap-postgres/src/main/java/org/apache/james/jmap/postgres/change/PostgresEmailChangeDAO.java
 create mode 100644 server/data/data-jmap-postgres/src/main/java/org/apache/james/jmap/postgres/change/PostgresEmailChangeModule.java
 create mode 100644 server/data/data-jmap-postgres/src/main/java/org/apache/james/jmap/postgres/change/PostgresEmailChangeRepository.java
 create mode 100644 server/data/data-jmap-postgres/src/main/java/org/apache/james/jmap/postgres/change/PostgresMailboxChangeDAO.java
 create mode 100644 server/data/data-jmap-postgres/src/main/java/org/apache/james/jmap/postgres/change/PostgresMailboxChangeModule.java
 create mode 100644 server/data/data-jmap-postgres/src/main/java/org/apache/james/jmap/postgres/change/PostgresMailboxChangeRepository.java
 copy server/{protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => data/data-jmap-postgres/src/main/java/org/apache/james/jmap/postgres/change/PostgresStateFactory.java} (73%)
 create mode 100644 server/data/data-jmap-postgres/src/main/java/org/apache/james/jmap/postgres/filtering/PostgresFilteringProjection.java
 create mode 100644 server/data/data-jmap-postgres/src/main/java/org/apache/james/jmap/postgres/filtering/PostgresFilteringProjectionDAO.java
 create mode 100644 server/data/data-jmap-postgres/src/main/java/org/apache/james/jmap/postgres/filtering/PostgresFilteringProjectionModule.java
 create mode 100644 server/data/data-jmap-postgres/src/main/java/org/apache/james/jmap/postgres/identity/PostgresCustomIdentityDAO.java
 create mode 100644 server/data/data-jmap-postgres/src/main/java/org/apache/james/jmap/postgres/identity/PostgresCustomIdentityModule.java
 create mode 100644 server/data/data-jmap-postgres/src/main/java/org/apache/james/jmap/postgres/projections/PostgresEmailQueryView.java
 create mode 100644 server/data/data-jmap-postgres/src/main/java/org/apache/james/jmap/postgres/projections/PostgresEmailQueryViewDAO.java
 copy server/data/{data-jmap/src/main/java/org/apache/james/jmap/api/upload/UploadRepository.java => data-jmap-postgres/src/main/java/org/apache/james/jmap/postgres/projections/PostgresEmailQueryViewManager.java} (61%)
 create mode 100644 server/data/data-jmap-postgres/src/main/java/org/apache/james/jmap/postgres/projections/PostgresEmailQueryViewModule.java
 create mode 100644 server/data/data-jmap-postgres/src/main/java/org/apache/james/jmap/postgres/projections/PostgresMessageFastViewProjection.java
 create mode 100644 server/data/data-jmap-postgres/src/main/java/org/apache/james/jmap/postgres/projections/PostgresMessageFastViewProjectionModule.java
 create mode 100644 server/data/data-jmap-postgres/src/main/java/org/apache/james/jmap/postgres/pushsubscription/PostgresPushSubscriptionDAO.java
 create mode 100644 server/data/data-jmap-postgres/src/main/java/org/apache/james/jmap/postgres/pushsubscription/PostgresPushSubscriptionModule.java
 create mode 100644 server/data/data-jmap-postgres/src/main/java/org/apache/james/jmap/postgres/pushsubscription/PostgresPushSubscriptionRepository.java
 create mode 100644 server/data/data-jmap-postgres/src/main/java/org/apache/james/jmap/postgres/upload/PostgresUploadDAO.java
 create mode 100644 server/data/data-jmap-postgres/src/main/java/org/apache/james/jmap/postgres/upload/PostgresUploadModule.java
 copy server/data/{data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/upload/CassandraUploadRepository.java => data-jmap-postgres/src/main/java/org/apache/james/jmap/postgres/upload/PostgresUploadRepository.java} (58%)
 copy server/data/{data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/upload/CassandraUploadUsageRepository.java => data-jmap-postgres/src/main/java/org/apache/james/jmap/postgres/upload/PostgresUploadUsageRepository.java} (63%)
 create mode 100644 server/data/data-jmap-postgres/src/test/java/org/apache/james/jmap/postgres/change/PostgresEmailChangeRepositoryTest.java
 create mode 100644 server/data/data-jmap-postgres/src/test/java/org/apache/james/jmap/postgres/change/PostgresMailboxChangeRepositoryTest.java
 create mode 100644 server/data/data-jmap-postgres/src/test/java/org/apache/james/jmap/postgres/filtering/PostgresEventSourcingFilteringManagementNoProjectionTest.java
 create mode 100644 server/data/data-jmap-postgres/src/test/java/org/apache/james/jmap/postgres/filtering/PostgresEventSourcingFilteringManagementTest.java
 copy mailbox/plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/listeners/CassandraQuotaMailingListenersIntegrationTest.java => server/data/data-jmap-postgres/src/test/java/org/apache/james/jmap/postgres/identity/PostgresCustomIdentityDAOTest.java (64%)
 create mode 100644 server/data/data-jmap-postgres/src/test/java/org/apache/james/jmap/postgres/projections/PostgresEmailQueryViewManagerRLSTest.java
 create mode 100644 server/data/data-jmap-postgres/src/test/java/org/apache/james/jmap/postgres/projections/PostgresEmailQueryViewTest.java
 create mode 100644 server/data/data-jmap-postgres/src/test/java/org/apache/james/jmap/postgres/projections/PostgresMessageFastViewProjectionTest.java
 create mode 100644 server/data/data-jmap-postgres/src/test/java/org/apache/james/jmap/postgres/pushsubscription/PostgresPushSubscriptionRepositoryTest.java
 copy server/data/{data-jmap/src/test/java/org/apache/james/jmap/memory/upload/InMemoryUploadRepositoryTest.java => data-jmap-postgres/src/test/java/org/apache/james/jmap/postgres/upload/PostgresUploadRepositoryTest.java} (60%)
 create mode 100644 server/data/data-jmap-postgres/src/test/java/org/apache/james/jmap/postgres/upload/PostgresUploadServiceTest.java
 copy server/data/{data-jmap/src/test/java/org/apache/james/jmap/memory/upload/InMemoryUploadRepositoryTest.java => data-jmap-postgres/src/test/java/org/apache/james/jmap/postgres/upload/PostgresUploadUsageRepositoryTest.java} (52%)
 copy server/{protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => data/data-jmap/src/main/java/org/apache/james/jmap/api/projections/DefaultEmailQueryViewManager.java} (71%)
 copy server/{protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => data/data-jmap/src/main/java/org/apache/james/jmap/api/projections/EmailQueryViewManager.java} (73%)
 create mode 100644 server/data/data-postgres/pom.xml
 create mode 100644 server/data/data-postgres/src/main/java/org/apache/james/domainlist/postgres/PostgresDomainList.java
 rename server/{apps/cassandra-app/src/test/java/org/apache/james/modules/TestTikaModule.java => data/data-postgres/src/main/java/org/apache/james/domainlist/postgres/PostgresDomainModule.java} (57%)
 create mode 100644 server/data/data-postgres/src/main/java/org/apache/james/droplists/postgres/PostgresDropList.java
 create mode 100644 server/data/data-postgres/src/main/java/org/apache/james/droplists/postgres/PostgresDropListModule.java
 create mode 100644 server/data/data-postgres/src/main/java/org/apache/james/mailrepository/postgres/PostgresMailRepository.java
 copy server/{apps/cassandra-app/src/test/java/org/apache/james/TikaExtension.java => data/data-postgres/src/main/java/org/apache/james/mailrepository/postgres/PostgresMailRepositoryBlobReferenceSource.java} (63%)
 create mode 100644 server/data/data-postgres/src/main/java/org/apache/james/mailrepository/postgres/PostgresMailRepositoryContentDAO.java
 create mode 100644 server/data/data-postgres/src/main/java/org/apache/james/mailrepository/postgres/PostgresMailRepositoryFactory.java
 create mode 100644 server/data/data-postgres/src/main/java/org/apache/james/mailrepository/postgres/PostgresMailRepositoryModule.java
 create mode 100644 server/data/data-postgres/src/main/java/org/apache/james/mailrepository/postgres/PostgresMailRepositoryUrlStore.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
 create mode 100644 server/data/data-postgres/src/main/java/org/apache/james/rrt/postgres/PostgresRecipientRewriteTableModule.java
 create mode 100644 server/data/data-postgres/src/main/java/org/apache/james/sieve/postgres/PostgresSieveModule.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%)
 create mode 100644 server/data/data-postgres/src/main/java/org/apache/james/sieve/postgres/PostgresSieveRepository.java
 create mode 100644 server/data/data-postgres/src/main/java/org/apache/james/sieve/postgres/PostgresSieveScriptDAO.java
 create mode 100644 server/data/data-postgres/src/main/java/org/apache/james/sieve/postgres/model/PostgresSieveScript.java
 copy server/{protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => data/data-postgres/src/main/java/org/apache/james/sieve/postgres/model/PostgresSieveScriptId.java} (73%)
 create mode 100644 server/data/data-postgres/src/main/java/org/apache/james/user/postgres/PostgresDelegationStore.java
 create mode 100644 server/data/data-postgres/src/main/java/org/apache/james/user/postgres/PostgresUserModule.java
 create mode 100644 server/data/data-postgres/src/main/java/org/apache/james/user/postgres/PostgresUsersDAO.java
 copy server/{protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => data/data-postgres/src/main/java/org/apache/james/user/postgres/PostgresUsersRepository.java} (73%)
 create mode 100644 server/data/data-postgres/src/main/java/org/apache/james/user/postgres/PostgresUsersRepositoryConfiguration.java
 copy server/data/{data-cassandra/src/main/java/org/apache/james/vacation/cassandra/CassandraNotificationRegistry.java => data-postgres/src/main/java/org/apache/james/vacation/postgres/PostgresNotificationRegistry.java} (57%)
 create mode 100644 server/data/data-postgres/src/main/java/org/apache/james/vacation/postgres/PostgresNotificationRegistryDAO.java
 create mode 100644 server/data/data-postgres/src/main/java/org/apache/james/vacation/postgres/PostgresVacationModule.java
 create mode 100644 server/data/data-postgres/src/main/java/org/apache/james/vacation/postgres/PostgresVacationRepository.java
 create mode 100644 server/data/data-postgres/src/main/java/org/apache/james/vacation/postgres/PostgresVacationResponseDAO.java
 copy {mailbox/api => server/data/data-postgres}/src/reporting-site/site.xml (100%)
 copy server/data/{data-jmap/src/test/java/org/apache/james/jmap/memory/upload/InMemoryUploadRepositoryTest.java => data-postgres/src/test/java/org/apache/james/domainlist/postgres/PostgresDomainListTest.java} (57%)
 copy mailbox/plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/listeners/CassandraQuotaMailingListenersIntegrationTest.java => server/data/data-postgres/src/test/java/org/apache/james/droplists/postgres/PostgresDropListsTest.java (64%)
 create mode 100644 server/data/data-postgres/src/test/java/org/apache/james/mailrepository/postgres/PostgresMailRepositoryBlobReferenceSourceTest.java
 create mode 100644 server/data/data-postgres/src/test/java/org/apache/james/mailrepository/postgres/PostgresMailRepositoryTest.java
 rename server/{apps/distributed-app/src/test/java/org/apache/james/modules/RabbitMQExtension.java => data/data-postgres/src/test/java/org/apache/james/mailrepository/postgres/PostgresMailRepositoryUrlStoreExtension.java} (51%)
 copy server/{protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => data/data-postgres/src/test/java/org/apache/james/mailrepository/postgres/PostgresMailRepositoryUrlStoreTest.java} (73%)
 create mode 100644 server/data/data-postgres/src/test/java/org/apache/james/rrt/postgres/PostgresRecipientRewriteTableTest.java
 create mode 100644 server/data/data-postgres/src/test/java/org/apache/james/rrt/postgres/PostgresStepdefs.java
 copy server/{protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => data/data-postgres/src/test/java/org/apache/james/rrt/postgres/RewriteTablesTest.java} (67%)
 create mode 100644 server/data/data-postgres/src/test/java/org/apache/james/sieve/postgres/PostgresSieveQuotaDAOTest.java
 copy server/data/{data-jmap/src/test/java/org/apache/james/jmap/memory/upload/InMemoryUploadRepositoryTest.java => data-postgres/src/test/java/org/apache/james/sieve/postgres/PostgresSieveRepositoryTest.java} (50%)
 create mode 100644 server/data/data-postgres/src/test/java/org/apache/james/user/postgres/PostgresDelegationStoreTest.java
 create mode 100644 server/data/data-postgres/src/test/java/org/apache/james/user/postgres/PostgresUsersRepositoryTest.java
 rename server/{apps/cassandra-app/src/test/java/org/apache/james/TikaExtension.java => data/data-postgres/src/test/java/org/apache/james/vacation/postgres/PostgresNotificationRegistryTest.java} (51%)
 copy server/data/{data-jmap/src/test/java/org/apache/james/jmap/memory/upload/InMemoryUploadRepositoryTest.java => data-postgres/src/test/java/org/apache/james/vacation/postgres/PostgresVacationRepositoryTest.java} (60%)
 copy server/data/{data-jpa => data-postgres}/src/test/resources/log4j.properties (100%)
 copy backends-common/rabbitmq/src/test/resources/empty-store => server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetMessagesMethodTest.java (100%)
 copy backends-common/rabbitmq/src/test/resources/empty-store => server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/pom.xml (100%)
 copy backends-common/rabbitmq/src/test/resources/empty-store => server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/BlobManagerImpl.java (100%)
 copy backends-common/rabbitmq/src/test/resources/empty-store => server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/GetMessageListMethod.java (100%)
 copy backends-common/rabbitmq/src/test/resources/empty-store => server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/BlobId.java (100%)
 copy backends-common/rabbitmq/src/test/resources/empty-store => server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/BlobManagerImplTest.java (100%)
 copy backends-common/rabbitmq/src/test/resources/empty-store => server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/MIMEMessageConverterTest.java (100%)
 copy backends-common/rabbitmq/src/test/resources/empty-store => server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/message/view/MessageFastViewFactoryTest.java (100%)
 copy backends-common/rabbitmq/src/test/resources/empty-store => server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/message/view/MessageFullViewFactoryTest.java (100%)
 copy backends-common/rabbitmq/src/test/resources/empty-store => server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/message/view/MessageHeaderViewFactoryTest.java (100%)
 copy backends-common/rabbitmq/src/test/resources/empty-store => server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/message/view/MessageMetadataViewFactoryTest.java (100%)
 copy {mpt/impl/smtp/cassandra-rabbitmq-object-storage => server/protocols/jmap-rfc-8621-integration-tests/postgres-jmap-rfc-8621-integration-tests}/pom.xml (64%)
 create mode 100644 server/protocols/jmap-rfc-8621-integration-tests/postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresAuthenticationTest.java
 create mode 100644 server/protocols/jmap-rfc-8621-integration-tests/postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresBase.java
 create mode 100644 server/protocols/jmap-rfc-8621-integration-tests/postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresCustomMethodTest.java
 create mode 100644 server/protocols/jmap-rfc-8621-integration-tests/postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresCustomNamespaceTest.java
 copy server/protocols/jmap-rfc-8621-integration-tests/{jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresDelegatedAccountGetMethodTest.java} (73%)
 copy server/protocols/jmap-rfc-8621-integration-tests/{jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresDelegatedAccountSetTest.java} (73%)
 copy server/protocols/jmap-rfc-8621-integration-tests/{jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresDownloadTest.java} (70%)
 copy server/protocols/jmap-rfc-8621-integration-tests/{jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresEchoMethodTest.java} (73%)
 create mode 100644 server/protocols/jmap-rfc-8621-integration-tests/postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresEmailChangesMethodTest.java
 copy server/protocols/jmap-rfc-8621-integration-tests/{jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresEmailGetMethodTest.java} (69%)
 create mode 100644 server/protocols/jmap-rfc-8621-integration-tests/postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresEmailQueryMethodTest.java
 copy server/{apps/cassandra-app/src/test/java/org/apache/james/DockerOpenSearchRule.java => protocols/jmap-rfc-8621-integration-tests/postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresEmailSetMethodTest.java} (51%)
 create mode 100644 server/protocols/jmap-rfc-8621-integration-tests/postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresEmailSubmissionSetMethodFutureReleaseTest.java
 copy server/protocols/jmap-rfc-8621-integration-tests/{jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresEmailSubmissionSetMethodTest.java} (68%)
 copy server/protocols/jmap-rfc-8621-integration-tests/{jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresIdentityGetTest.java} (73%)
 copy server/protocols/jmap-rfc-8621-integration-tests/{jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresIdentitySetTest.java} (73%)
 copy server/protocols/jmap-rfc-8621-integration-tests/{jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresMDNParseMethodTest.java} (69%)
 copy server/protocols/jmap-rfc-8621-integration-tests/{jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresMDNSendMethodTest.java} (69%)
 create mode 100644 server/protocols/jmap-rfc-8621-integration-tests/postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresMailboxChangesMethodTest.java
 copy server/protocols/jmap-rfc-8621-integration-tests/{jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresMailboxGetMethodTest.java} (73%)
 copy server/protocols/jmap-rfc-8621-integration-tests/{jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresMailboxQueryChangesTest.java} (73%)
 copy server/protocols/jmap-rfc-8621-integration-tests/{jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresMailboxQueryMethodTest.java} (73%)
 rename server/{apps/cassandra-app/src/test/java/org/apache/james/DockerOpenSearchRule.java => protocols/jmap-rfc-8621-integration-tests/postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresMailboxSetMethodTest.java} (52%)
 copy server/protocols/jmap-rfc-8621-integration-tests/{jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresProvisioningTest.java} (73%)
 create mode 100644 server/protocols/jmap-rfc-8621-integration-tests/postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresPushSubscriptionSetMethodTest.java
 copy server/protocols/jmap-rfc-8621-integration-tests/{jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresQuotaChangesMethodTest.java} (73%)
 copy server/protocols/jmap-rfc-8621-integration-tests/{jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresQuotaGetMethodTest.java} (73%)
 copy server/protocols/jmap-rfc-8621-integration-tests/{jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresQuotaQueryMethodTest.java} (73%)
 copy server/protocols/jmap-rfc-8621-integration-tests/{jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresSessionRoutesTest.java} (73%)
 create mode 100644 server/protocols/jmap-rfc-8621-integration-tests/postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresThreadGetTest.java
 copy server/protocols/jmap-rfc-8621-integration-tests/{jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresUploadTest.java} (73%)
 copy server/protocols/jmap-rfc-8621-integration-tests/{jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresVacationResponseGetMethodTest.java} (73%)
 copy server/protocols/jmap-rfc-8621-integration-tests/{jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresVacationResponseSetMethodTest.java} (73%)
 create mode 100644 server/protocols/jmap-rfc-8621-integration-tests/postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresWebPushTest.java
 copy server/protocols/jmap-rfc-8621-integration-tests/{jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala => postgres-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/postgres/PostgresWebSocketTest.java} (73%)
 copy {examples/custom-imap => server/protocols/jmap-rfc-8621-integration-tests/postgres-jmap-rfc-8621-integration-tests}/src/test/resources/dnsservice.xml (100%)
 copy {examples/custom-imap => server/protocols/jmap-rfc-8621-integration-tests/postgres-jmap-rfc-8621-integration-tests}/src/test/resources/domainlist.xml (100%)
 create mode 100644 server/protocols/jmap-rfc-8621-integration-tests/postgres-jmap-rfc-8621-integration-tests/src/test/resources/imapserver.xml
 copy server/protocols/jmap-rfc-8621-integration-tests/{memory-jmap-rfc-8621-integration-tests => postgres-jmap-rfc-8621-integration-tests}/src/test/resources/jmap.properties (100%)
 copy {examples/custom-imap => server/protocols/jmap-rfc-8621-integration-tests/postgres-jmap-rfc-8621-integration-tests}/src/test/resources/keystore (100%)
 create mode 100644 server/protocols/jmap-rfc-8621-integration-tests/postgres-jmap-rfc-8621-integration-tests/src/test/resources/listeners.xml
 create mode 100644 server/protocols/jmap-rfc-8621-integration-tests/postgres-jmap-rfc-8621-integration-tests/src/test/resources/mailetcontainer.xml
 create mode 100644 server/protocols/jmap-rfc-8621-integration-tests/postgres-jmap-rfc-8621-integration-tests/src/test/resources/mailrepositorystore.xml
 copy server/{mailet/integration-testing/src/main => protocols/jmap-rfc-8621-integration-tests/postgres-jmap-rfc-8621-integration-tests/src/test}/resources/managesieveserver.xml (100%)
 copy server/{mailet/integration-testing/src/main => protocols/jmap-rfc-8621-integration-tests/postgres-jmap-rfc-8621-integration-tests/src/test}/resources/pop3server.xml (100%)
 copy server/{apps/distributed-app => protocols/jmap-rfc-8621-integration-tests/postgres-jmap-rfc-8621-integration-tests}/src/test/resources/rabbitmq.properties (100%)
 copy server/protocols/jmap-rfc-8621-integration-tests/{memory-jmap-rfc-8621-integration-tests => postgres-jmap-rfc-8621-integration-tests}/src/test/resources/smtpserver.xml (100%)
 create mode 100644 server/protocols/jmap-rfc-8621-integration-tests/postgres-jmap-rfc-8621-integration-tests/src/test/resources/usersrepository.xml
 copy server/protocols/webadmin-integration-test/{distributed-webadmin-integration-test => postgres-webadmin-integration-test}/pom.xml (61%)
 create mode 100644 server/protocols/webadmin-integration-test/postgres-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/postgres/PostgresAuthorizedEndpointsTest.java
 create mode 100644 server/protocols/webadmin-integration-test/postgres-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/postgres/PostgresFastViewProjectionHealthCheckIntegrationTest.java
 create mode 100644 server/protocols/webadmin-integration-test/postgres-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/postgres/PostgresForwardIntegrationTest.java
 create mode 100644 server/protocols/webadmin-integration-test/postgres-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/postgres/PostgresJwtFilterIntegrationTest.java
 create mode 100644 server/protocols/webadmin-integration-test/postgres-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/postgres/PostgresPopulateEmailQueryViewTaskIntegrationTest.java
 create mode 100644 server/protocols/webadmin-integration-test/postgres-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/postgres/PostgresQuotaSearchIntegrationTest.java
 create mode 100644 server/protocols/webadmin-integration-test/postgres-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/postgres/PostgresUnauthorizedEndpointsTest.java
 create mode 100644 server/protocols/webadmin-integration-test/postgres-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/postgres/PostgresWebAdminServerBlobGCIntegrationTest.java
 create mode 100644 server/protocols/webadmin-integration-test/postgres-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/postgres/PostgresWebAdminServerIntegrationImmutableTest.java
 create mode 100644 server/protocols/webadmin-integration-test/postgres-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/postgres/PostgresWebAdminServerIntegrationTest.java
 create mode 100644 server/protocols/webadmin-integration-test/postgres-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/vault/PostgresDeletedMessageVaultIntegrationTest.java
 copy {examples/custom-imap => server/protocols/webadmin-integration-test/postgres-webadmin-integration-test}/src/test/resources/dnsservice.xml (100%)
 copy {examples/custom-imap => server/protocols/webadmin-integration-test/postgres-webadmin-integration-test}/src/test/resources/domainlist.xml (100%)
 copy server/protocols/webadmin-integration-test/{distributed-webadmin-integration-test => postgres-webadmin-integration-test}/src/test/resources/eml/emailWithOnlyAttachment.eml (100%)
 copy server/{mailet/integration-testing/src/main => protocols/webadmin-integration-test/postgres-webadmin-integration-test/src/test}/resources/imapserver.xml (100%)
 copy server/{apps/cli-integration-tests => protocols/webadmin-integration-test/postgres-webadmin-integration-test}/src/test/resources/jwt_publickey (100%)
 copy {examples/custom-imap => server/protocols/webadmin-integration-test/postgres-webadmin-integration-test}/src/test/resources/keystore (100%)
 create mode 100644 server/protocols/webadmin-integration-test/postgres-webadmin-integration-test/src/test/resources/listeners.xml
 copy server/{mailet/integration-testing/src/main => protocols/webadmin-integration-test/postgres-webadmin-integration-test/src/test}/resources/lmtpserver.xml (100%)
 create mode 100644 server/protocols/webadmin-integration-test/postgres-webadmin-integration-test/src/test/resources/mailetcontainer.xml
 create mode 100644 server/protocols/webadmin-integration-test/postgres-webadmin-integration-test/src/test/resources/mailrepositorystore.xml
 copy server/{mailet/integration-testing/src/main => protocols/webadmin-integration-test/postgres-webadmin-integration-test/src/test}/resources/managesieveserver.xml (100%)
 copy server/{mailet/integration-testing/src/main => protocols/webadmin-integration-test/postgres-webadmin-integration-test/src/test}/resources/pop3server.xml (100%)
 copy server/protocols/webadmin-integration-test/{distributed-webadmin-integration-test => postgres-webadmin-integration-test}/src/test/resources/smtpserver.xml (100%)
 copy server/protocols/webadmin-integration-test/{distributed-webadmin-integration-test => postgres-webadmin-integration-test}/src/test/resources/webadmin.properties (100%)
 copy {mpt/impl/smtp/cassandra-rabbitmq-object-storage => server/task/task-postgres}/pom.xml (51%)
 create mode 100644 server/task/task-postgres/src/main/scala/org/apache/james/task/eventsourcing/postgres/PostgresTaskExecutionDetailsProjection.scala
 create mode 100644 server/task/task-postgres/src/main/scala/org/apache/james/task/eventsourcing/postgres/PostgresTaskExecutionDetailsProjectionDAO.scala
 create mode 100644 server/task/task-postgres/src/main/scala/org/apache/james/task/eventsourcing/postgres/PostgresTaskExecutionDetailsProjectionModule.scala
 create mode 100644 server/task/task-postgres/src/test/java/org/apache/james/task/eventsourcing/postgres/PostgresTaskExecutionDetailsProjectionDAOTest.java
 create mode 100644 server/task/task-postgres/src/test/java/org/apache/james/task/eventsourcing/postgres/PostgresTaskExecutionDetailsProjectionTest.java
 create mode 100644 src/adr/0071-postgresql-mailbox-tables-structure.md
 create mode 100644 src/adr/0072-postgresql-flags-update-concurrency-control.md
 create mode 100644 src/adr/img/adr-71-mailbox-tables-diagram.png


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