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