This is an automated email from the ASF dual-hosted git repository.
rcordier pushed a change to branch postgresql
in repository https://gitbox.apache.org/repos/asf/james-project.git
omit 94635f6a2f JAMES-2586 postgres mailbox - drop
JPAStreamingMailboxMessage, JPAEncryptedMailboxMessage,
JPAMailboxMessageWithAttachmentStorage
omit 410bb12f41 JAMES-2586 Rename mailbox postgres package
omit 26156edf76 JAMES-2586 Rename Postgres Subscription
omit 3591f3ec77 JAMES-2586 Guice binding for Postgres subscription module
omit 1fbca94689 JAMES-2586 Fix review comments
omit 0f4472ebc5 JAMES-2586 Sample docker configuration for
postgres.properties
omit 6e3ac918c7 JAMES-2586 PostgresTableManager should only create RLS
column when general RLS configuration enabled
omit ca9e57cf74 JAMES-2586 Guice binding for PostgresTableManager
omit 84d8337ed2 JAMES-2586 Guice binding for JamesPostgresConnectionFactory
omit 3b1c48a958 JAMES-2586 Guice binding for PostgresConfiguration
omit 19387703e1 JAMES-2586 Rename postgres-app tests' name: JPA -> Postgres
omit a350bf3387 JAMES-2586 Introduce PostgresConfiguration
omit 9190994801 JAMES-2586 implement pg connection factory (#1774)
omit 31d8ec6e77 JAMES-2586 Postgres Subscription mapper (#1775)
omit 16576107cd JAMES-2586 Introduce PostgresExtension
omit 898140ff68 [CI] Maven runs test on only postgres modules (postgresql
branch)
omit c1fc08fee6 JAMES-2586 PostgresTableManager support create table when
enable row level security
omit fa0810a29e JAMES-2586 - Implement PostgresTableManager
omit 06a39c22a9 JAMES-2586 - Postgres - Init
james-serrver-guice-mailbox-postgres
omit c5522a0745 JAMES-2586 - Postgres - Init
james-server-postgres-common-guice
omit 9d2e30183d JAMES-2586 - Postgres - Init james-server-data-postgres
omit 7b44425c41 JAMES-2586 - Postgres - Init postgres app server
omit fb2e63ecb8 JAMES-2586 - Postgres - Init postgres mailbox module
omit 050c35ddf8 JAMES-2586 - Postgres - Init backend common module for
postgres
add ff1796e869 JAMES-3949 Prevent usage of JMX file auto configuration on
Windows (#1763)
add 9968f4c8d1 [ADR] Update few ADRs status
add ee0ce806e6 JAMES-2586 ADR: Native PostgreSQL adoption
add 55454b26a3 JAMES-3944 FILTER: forward loop issue (#1762)
add 45661998bd ADR-69 - Crowdsec IP filtering (#1761)
add 5aae9234ed JAMES-3953 New File based blob store implementation
add c704a8f746 JAMES-3953 Guice injections for File blob store
add b223f177d6 JAMES-3953 Documentation for File blob store
add bc6549a740 JAMES-3953 Better namings for BucketModules
add 12c8610296 JAMES-3955 Add James consuming limitation in
TaskManagerWorkQueue in RabbitMQ documentation.
add b3c362fe57 [DOCUMENTATION] Refresh a bit secuirty.adoc
add 51138848e3 JAMES-3491 Deserialized keywords should return empty list
and not null when missing
add 148ca8d75a JAMES-3874 LMTP should handle overQuota exceptions
add 5c9e35089b JAMES-3954 Implement RFC-9394 PARTIAL for IMAP SEARCH
add a5cd87d87c JAMES-3954 Implement RFC-9394 PARTIAL for IMAP FETCH
add 1021e81180 JAMES-3954 Document RFC-9394 PARTIAL implementation
add 5f8eef6379 JAMES 3897 - Crowdsec integration for Dictionary Attack
(#1764)
add 3facc21b00 [Build] Fail tests on modules longer than 30 minutes
instead of 20
add 817e4f5c39 [Build] Increase latency to 2s with dates checks in
MailImplTest
add a1bea0d06e [Build] Increase delay to 1s instead of 500ms in
CachedBlobStoreTest
add 3363a285a1 JAMES-3959 Starting distributed James without OpenSearch
(#1784)
add 180c0ab4a3 JAMES-3897: Crowdsec Extension Test (#1779)
add 8d95aec8f4 JAMES-3960 Hints to ensure UID/ModSeq consistency in case
of disaster
add ec9ad67d5a JAMES-3958 Be resilient when updating mails with invalid
headers (#1783)
add 055675d98f JAMES-3955 Check for queues without consumer and resume
consumption a… (#1778)
add 8cec9479c7 JAMES-3955 Applicative timeouts before Rabbit timeouts
add 47056fc2cf JAMES-3955 WARNING logs upon closing channels
add 4215e592cd JAMES-3926 Handle insert null quota limit (#1796)
add 9a7f6a3bcf JAMES-3956 created redis module in backends-common, moved
redis configuration from rate-limiter-redis
add a61254569f JAMES-3956 added RedisConfigurationTest
add 32f026301b JAMES-3046 Webadmin startup should not hang forever upon
port conflict
add 25ac480393 JAMES-3046 Allow webadmin port conflict to be retries
within JamesServerExtension (integration tests scope)
add 582cf566da JAMES-3955 Increase consumer timeout for
TaskManagerWorkQueue
add 61a077253f JAMES-3774 Remove completely Cassandra cache timeout
configuration
add ccbc4b26d2 JAMES-3962 JMAP Email/set: specific headers for body parts
(#1801)
add 5da0b15180 [UPGRADE] Cassandra driver 4.16.0 -> 4.17.0
add 2932ca8b45 [UPGRADE] S3 driver 2.20.103 -> 4.17.0
add 9263c20769 [UPGRADE] Netty 4.1.94.Final -> 4.1.101.Final
add 351cc273fd [UPGRADE] Reactor 2022.0.9 -> 2023.0.0
add b15787fa34 [UPGRADE] Lettuce 6.2.4.RELEASE -> 6.3.0.RELEASE
add 3dd1b53612 [UPGRADE] amqp-client 5.18.0 -> 5.20.0
add c5d9cbf22f [BUILD] Disable JMX for MailDelivrerToHost object pool
add 9339116155 [BUILD] Disable Metrics logger
add 69e90ce0e4 [BUILD] Implement caching for ExtendedClassLoader
add 3f24078c67 [BUILD] Avoid polling without delays for MemoryMailQueue
add 7e63c3e6e7 [BUILD] Lower password hasking requirements
add caa28d5580 [BUILD] Per test index is actually faster
add 920c19b0e8 JAMES-3897: Implement CrowdsecHttpClient (#1788)
add 2f12c348a1 JAMES-3963 Sort From To Cc on display name first (#1811)
add 4711379766 JAMES-3963 Full text search: AND for combining phrase terms
(#1810)
add ca97a1815e [Build] Do not build on ephemeral nodes (#1825)
add fe820cee72 JAMES-3964 Mutualize SMTP tests set up
add 0b40e17d1e JAMES-3964 Implement and test disabledCaps for SMTP
add fd18efa145 JAMES-3964 Document disabledCaps for SMTP
add 6e1d450336 [BUILD] OpenSearchSearcherTest was unstable
add b8752b0531 JAMES-3965 DKIMSign: Use fileSystem in order to resolve
privateKeyFilepath
add b76e94fb01 JAMES-3965 FileSystemImpl: convenience method for testing
add 72803ca457 JAMES 3897: Implement CrowdsecEhloHook (#1799)
add fa2c2dfa30 [IMPROVEMENT] Display message/disposition-notification in
main message body
add 795aca76d7 [IMPROVEMENT] message/disposition-notification should not
be considered as an attachment
add 3072f2a44d [UPDATE] logback 1.4.8 -> 1.4.13
add c341fa6db3 [UPDATE] logback 1.4.13 -> 1.4.14
add 8c9fa4657e [ENHANCEMENT] Allow to trust all certificates with S3
blobstore (#1846)
add d7a4f45fa4 JAMES-3539 PushSubscription/get should return expired
subscriptions (#1845)
new a8a86c2ec7 JAMES-2586 - Postgres - Init backend common module for
postgres
new b61d7fd05d JAMES-2586 - Postgres - Init postgres mailbox module
new b43158b3b3 JAMES-2586 - Postgres - Init postgres app server
new 141bb97237 JAMES-2586 - Postgres - Init james-server-data-postgres
new 4386110020 JAMES-2586 - Postgres - Init
james-server-postgres-common-guice
new d8b314fa42 JAMES-2586 - Postgres - Init
james-serrver-guice-mailbox-postgres
new 115d0dcd1e JAMES-2586 - Implement PostgresTableManager
new 17b80bce8c JAMES-2586 PostgresTableManager support create table when
enable row level security
new 062ad690fa [CI] Maven runs test on only postgres modules (postgresql
branch)
new 8fb0502405 JAMES-2586 Introduce PostgresExtension
new fbcc6c9111 JAMES-2586 Postgres Subscription mapper (#1775)
new fcaeb611fe JAMES-2586 implement pg connection factory (#1774)
new 621c46a426 JAMES-2586 Introduce PostgresConfiguration
new e3da8b68a5 JAMES-2586 Rename postgres-app tests' name: JPA -> Postgres
new 9492d0d40d JAMES-2586 Guice binding for PostgresConfiguration
new 83f3383135 JAMES-2586 Guice binding for JamesPostgresConnectionFactory
new 4b00d8ecf9 JAMES-2586 Guice binding for PostgresTableManager
new 38b02af197 JAMES-2586 PostgresTableManager should only create RLS
column when general RLS configuration enabled
new c580f1db22 JAMES-2586 Sample docker configuration for
postgres.properties
new 9466c7bce9 JAMES-2586 Fix review comments
new 2b47ee79fd JAMES-2586 Guice binding for Postgres subscription module
new 9644cdc76c JAMES-2586 Rename Postgres Subscription
new a039fb8bc3 JAMES-2586 Rename mailbox postgres package
new 0133b82993 JAMES-2586 postgres mailbox - drop
JPAStreamingMailboxMessage, JPAEncryptedMailboxMessage,
JPAMailboxMessageWithAttachmentStorage
new 3b5bacec91 JAMES-2586 Use prepared statements by default
new d57e96ce4e JAMES-2586 Polish code style: PostgresSubscriptionMapper
new c177e241cf JAMES-2586 Merge PostgresSubscriptionTable and
PostgresSubscriptionModule
new e7e1353cc4 JAMES-2586 Drop Spring files for mailbox-postgres
new 6b105a283f JAMES-2586 Drop reporting-site.xml
new 702ada7633 JAMES-2586 Drop unused class: EncryptDecryptHelper
new 8679270ad2 JAMES-2586 Drop unused class: JPASubscription
new 60d852be6e JAMES-2586 Implement (failing) tests for Row Level Security
applied on Subscriptions
new 89900704c5 JAMES-2586 Document (link) varchar underlying maximum
lengths
new d2c1e40d5c JAMES-2586 PostgresExtension: favor factory methods to
constructor
new b2a40923c6 JAMES-2586 Small codestyle refactorings
new 67f6794e56 JAMES-2586 Fix row-level security implementation
new 85ecb2de61 JAMES-2586 implement dao for mailbox table (#1786)
new 4783dc0802 JAMES-2586 implement postgres mailbox mapper (#1791)
new 5d8e145e9b JAMES-2586 Postgres app performance test materials (#1794)
new 57393a6e3c JAMES-2586 Introduce apache-james-mpt-imapmailbox-postgres
new a73424bae8 JAMES-2586 mpt-imapmailbox-postgres: bindings and setup in
PGHostSystem
new 0620c26a0f JAMES-2586 SimpleJamesPostgresConnectionFactory – set empty
attribute value when without domain
new 0b49ce9c36 JAMES-2586 mpt-imapmailbox-postgres - update maven build,
increase memory and disable reuseForks
new 087574af07 JAMES-2586 Rename SimpleJamesPostgresConnectionFactory ->
DomainImplPostgresConnectionFactory
new 2447d7285b JAMES-2586 Introduce Single postgres connection factory
when disable row level security
new 0f3e353033 JAMES-2586 LOGGER when choice implementation of Postgresql
connection factory
new 8c6a055755 JAMES-2586 Clean-up the provision.sh file of postgres-app
new 74c057aa30 JAMES-2586 Parameterize MailboxSession for
getUidProvider/getModSeqProvider methods in MailboxSessionMapperFactory
new a36130960d JAMES-2586 Implement PostgresUidProvider
new ccbff67d12 JAMES-2586 Implement PostgresModSeqProvider
new 6306fdef98 JAMES-2586 Implement PostgresExecutor Factory and Mailbox
Aggregate Module
new 80d8824f2c JAMES-2586 Implement MailboxACL support for
PostgresMailboxMapper
new 36a91ded62 JAMES-2586 Create hstore extension if needed upon James
startup
new 59c6016407 JAMES-2586 postgres users dao and repository (#1803)
new 956dd732fe JAMES-2586 Implement PostgresQuotaCurrentValueDAO (#1813)
new a9b79a1970 JAMES-2586 Implement PostgresQuotaLimitDAO
new 5b0368c228 JAMES-2586 Clean Code – the using PostgresExecutor.Factory
(#1816)
new 3afbbe13ad JAMES-2586 Implement SieveQuotaRepository backed by Postgres
new dae2214e96 JAMES-2586 Guice binding for SieveQuotaRepository backed by
Postgres
new d8e4a263b2 JAMES-2586 Implement PostgresMailboxMessageDAO (#1812)
new b6e9be7844 JAMES-2586 Implement Postgres Current Quota manager
new cd12569cf5 JAMES-2586 postgres mailbox annotation dao and mapper
(#1822)
new bf68d222d9 JAMES-2586 Remove unused method in PostgresExecutor
new 88577b0a7c JAMES-2586 Implement PostgresDomainList
new 9cc986a1f5 JAMES-2586 Guice bindings and package renaming for domain
postgres implementation
new d36f402283 JAMES-2586 DomainList Should throw when insert duplicate or
delete not found domain
new 63cf6b41e2 JAMES-2586 Fix Guice bindings between PostgresDomainList
and PostgresTableManager
new 781dc04e40 JAMES-2586 postgres-app should run tests against Postgresql
container for both JPA and Postgres r2dbc
new 7919fe0569 JAMES-2586 - MailboxMessage table - Remove FK key to
mailbox table
new a0a9be54f4 JAMES-2586 - Fixup PostgresMessageMapper findMailbox method
- ensuring the message was sorted
new cf3db9cd34 JAMES-2586 - Fixup PostgresMessageMapper updateFlags method
- apply single new modSeq for all messages
new d4178d1bec JAMES-2586 - Fixup PostgresMailboxMessageDAO
new 54445aab14 JAMES-2586 - Postgres Mailbox DAO - Fix rename deadlock
new 5f002f91df JAMES-2586 - Postgres MailboxAnnotation DAO - Fix null
pointer
new fb512dc780 JAMES-2586 - Introduce
PostgresMailboxSessionMapperFactoryTODO and using it to mpt imap test
new a27db56f89 JAMES-2586 Guide binding Postgres Message/Mailbox mapper
new 5bfb986f99 JAMES-2586 Fix Postgres Mailbox Annotation mpt imap test
new 88c7c95d4f JAMES-2586 Rework ConnectionThreadSafetyTest ->
PostgresExecutorThreadSafetyTest
new 1d0734ae74 JAMES-2586 PostgresExecutor: Retry upon PreparedStatement
conflicts
new ac8629030d JAMES-2586 PostgresExecutor: Retry only upon
PreparedStatement conflict exception
new c88db1a3d1 JAMES-2586 Implement PostgresPerUserMaxQuotaManager (#1839)
new 88ea870ab5 JAMES-2586 [PGSQL] Initialization to configure users
repository
new ad7118be26 JAMES-2586 Enable ACL support for PG
new f76c03ee6c JAMES-2586 Remove unused class MessageUtils.java
new 0d0ef9b3fe JAMES-2586 Remove unused method in MessageManager
new e2f58e133e JAMES-2586 Enable UniqueID support for
PostgresMailboxManager
new dbf254034b JAMES-2586 Enable PostgresMailboxManager annotation tests
new 0c70f75840 JAMES-2586 Fully drop JPA within mailbox-postgresql
new 4752c9063a JAMES-2586 [PGSQL] Implement correctly FetchType
new 462d4d3c30 JAMES-2586 [PGSQL] Optimize getMailboxCounter method
new 30bb3f4822 JAMES-2586 [PGSQL] Improve
PostresMessageManager::getMetadata method
new bee56a7392 JAMES-2586 Fix missing guice binding for Postgres quota
module
new b5070d0e75 JAMES-2586 Fixup - Postgres app - Use junit 5 (replace to
junit 4)
new 7a12cd37fe JAMES-2586 Postgres app – Remove server test for
authentication database sql validation
new 6ff020d40c JAMES-2586 Rename JPAAttachmentContentLoader to
PostgresAttachmentContentLoader
new 95ce123a75 JAMES-2586 Add a unit test for recreate RLS column should
not fail
new 85cb680676 JAMES-2586 PostgresExecutor: better recognize prepared
statement conflict
new c73b5b9eaf JAMES-2586 PostgresTableManager - Check the existence of
RLS column/policy before alter the table
new 6c47b076ad JAMES-2586 PostgresTableManager - Cleanup
new 540c68b026 JAMES-2586 PostgresRecipientRewriteTableDAO and
PostgresRecipientRewriteTable
new ddad6b5951 JAMES-2586 Fixup compile error after merge master
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (94635f6a2f)
\
N -- N -- N refs/heads/postgresql (ddad6b5951)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
The 101 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
Jenkinsfile | 5 +-
backends-common/cassandra/pom.xml | 2 +-
.../components/CassandraQuotaCurrentValueDao.java | 64 +--
.../components/CassandraQuotaLimitDao.java | 78 +--
.../init/configuration/CassandraConfiguration.java | 32 +-
.../quota/CassandraQuotaCurrentValueDaoTest.java | 8 +-
.../quota/CassandraQuotaLimitDaoTest.java | 17 +-
.../opensearch/DockerOpenSearchExtension.java | 4 +-
backends-common/pom.xml | 1 +
backends-common/postgres/pom.xml | 8 +-
.../james/backends/postgres/PostgresCommons.java | 69 +++
.../backends/postgres/PostgresConfiguration.java | 62 +--
.../james/backends/postgres/PostgresTable.java | 24 +-
.../backends/postgres/PostgresTableManager.java | 94 ++--
.../quota/PostgresQuotaCurrentValueDAO.java | 125 +++++
.../postgres/quota/PostgresQuotaLimitDAO.java | 100 ++++
.../postgres/quota/PostgresQuotaModule.java | 82 +++
...va => DomainImplPostgresConnectionFactory.java} | 23 +-
.../backends/postgres/utils/PostgresExecutor.java | 63 ++-
.../backends/postgres/utils/PostgresUtils.java | 17 +-
.../utils/SinglePostgresConnectionFactory.java | 25 +-
.../backends/postgres/DockerPostgresSingleton.java | 2 +-
...> DomainImplPostgresConnectionFactoryTest.java} | 13 +-
.../JamesPostgresConnectionFactoryTest.java | 4 +-
.../postgres/PostgresConfigurationTest.java | 6 +-
....java => PostgresExecutorThreadSafetyTest.java} | 137 +++--
.../james/backends/postgres/PostgresExtension.java | 134 +++--
.../backends/postgres/PostgresExtensionTest.java | 6 +-
.../james/backends/postgres/PostgresFixture.java | 70 ++-
.../postgres/PostgresTableManagerTest.java | 51 +-
.../quota/PostgresQuotaCurrentValueDAOTest.java | 147 ++++++
.../postgres/quota/PostgresQuotaLimitDaoTest.java} | 39 +-
.../james/backends/rabbitmq/QueueArguments.java | 5 +
.../backends/rabbitmq/RabbitMQConfiguration.java | 33 +-
.../rabbitmq/ReactorRabbitMQChannelPool.java | 8 +
.../rabbitmq/RabbitMQConfigurationTest.java | 55 ++
backends-common/redis/pom.xml | 73 +++
.../james/backends/redis/RedisConfiguration.scala | 16 +-
.../james/backends}/redis/RedisHealthCheck.scala | 4 +-
.../apache/james/backends/redis}/DockerRedis.java | 8 +-
.../backends/redis/RedisConfigurationTest.scala | 82 +++
.../james/backends/redis}/RedisExtension.java | 7 +-
.../james/backends/redis}/RedisExtensionTest.java | 7 +-
.../backends/redis}/RedisHealthCheckTest.scala | 5 +-
code-coverage-report/pom.xml | 5 +
.../apache/james/core/quota/QuotaCurrentValue.java | 53 ++
.../org/apache/james/core/quota/QuotaLimit.java | 59 +++
.../org/apache/james/events/ListenerExecutor.java | 9 +-
.../events/RabbitEventBusConsumerHealthCheck.java | 85 +++
.../org/apache/james/mailbox/MessageManager.java | 2 -
.../java/org/apache/james/mailbox/MessageUid.java | 4 +
.../main/java/org/apache/james/mailbox/ModSeq.java | 4 +
.../org/apache/james/mailbox}/quota/Limits.java | 2 +-
.../apache/james/mailbox}/quota/QuotaCodec.java | 8 +-
.../apache/james/mailbox/MailboxManagerTest.java | 4 +-
.../CassandraMailboxSessionMapperFactory.java | 4 +-
.../cassandra/mail/CassandraModSeqProvider.java | 9 +-
.../cassandra/mail/CassandraUidProvider.java | 8 +-
.../quota/CassandraCurrentQuotaManagerV2.java | 9 +-
.../quota/CassandraGlobalMaxQuotaDao.java | 2 +
.../quota/CassandraPerDomainMaxQuotaDao.java | 2 +
.../quota/CassandraPerUserMaxQuotaDao.java | 2 +
.../quota/CassandraPerUserMaxQuotaManagerV1.java | 1 +
.../quota/CassandraPerUserMaxQuotaManagerV2.java | 19 +-
.../mail/CassandraModSeqProviderTest.java | 30 +-
.../cassandra/mail/CassandraUidProviderTest.java | 32 +-
.../jpa/JPAMailboxSessionMapperFactory.java | 4 +-
.../search/LuceneMessageSearchIndexTest.java | 7 +-
.../InMemoryMailboxSessionMapperFactory.java | 4 +-
.../inmemory/mail/InMemoryMapperProvider.java | 4 +-
.../mailbox/opensearch/MailboxMappingFactory.java | 21 +-
.../DisabledListeningMessageSearchIndex.java | 155 ++++++
.../opensearch/query/CriterionConverter.java | 11 +-
.../mailbox/opensearch/query/SortConverter.java | 49 +-
.../opensearch/search/OpenSearchSearcher.java | 2 +-
.../opensearch/OpenSearchIntegrationTest.java | 31 +-
.../opensearch/search/OpenSearchSearcherTest.java | 52 +-
.../QuotaThresholdListenersTestSystem.java | 2 +-
.../subscribers/QuotaThresholdNoticeTest.java | 3 +-
mailbox/postgres/pom.xml | 73 +--
.../mailbox/postgres/JPATransactionalMapper.java | 96 ----
...r.java => PostgresAttachmentContentLoader.java} | 4 +-
.../postgres/PostgresMailboxAggregateModule.java | 26 +-
...e.java => PostgresMailboxAnnotationModule.java} | 45 +-
.../{JPAId.java => PostgresMailboxId.java} | 72 +--
.../PostgresMailboxSessionMapperFactory.java | 93 ++--
.../james/mailbox/postgres/PostgresMessageId.java} | 79 +--
.../mailbox/postgres/mail/JPAAnnotationMapper.java | 168 ------
.../mailbox/postgres/mail/JPAAttachmentMapper.java | 118 -----
.../mailbox/postgres/mail/JPAMailboxMapper.java | 240 ---------
.../mailbox/postgres/mail/JPAMessageMapper.java | 510 ------------------
.../mailbox/postgres/mail/JPAModSeqProvider.java | 105 ----
.../mailbox/postgres/mail/JPAUidProvider.java | 99 ----
.../james/mailbox/postgres/mail/MessageUtils.java | 113 ----
.../postgres/mail/PostgresAnnotationMapper.java | 140 +++++
.../PostgresMailbox.java} | 43 +-
.../PostgresMailboxManager.java} | 46 +-
.../postgres/mail/PostgresMailboxMapper.java} | 66 ++-
.../postgres/mail/PostgresMailboxModule.java | 67 +++
.../PostgresMessageManager.java} | 80 +--
.../postgres/mail/PostgresMessageMapper.java | 460 ++++++++++++++++
.../postgres/mail/PostgresMessageModule.java | 162 ++++++
.../postgres/mail/PostgresModSeqProvider.java | 92 ++++
.../mailbox/postgres/mail/PostgresUidProvider.java | 106 ++++
.../mail/dao/PostgresMailboxAnnotationDAO.java | 145 ++++++
.../postgres/mail/dao/PostgresMailboxDAO.java | 265 ++++++++++
.../mail/dao/PostgresMailboxMessageDAO.java | 392 ++++++++++++++
.../mail/dao/PostgresMailboxMessageDAOUtils.java | 184 +++++++
.../dao/PostgresMailboxMessageFetchStrategy.java | 147 ++++++
.../postgres/mail/dao/PostgresMessageDAO.java | 91 ++++
.../mailbox/postgres/mail/model/JPAAttachment.java | 193 -------
.../mailbox/postgres/mail/model/JPAMailbox.java | 205 --------
.../postgres/mail/model/JPAMailboxAnnotation.java | 99 ----
.../mailbox/postgres/mail/model/JPAProperty.java | 129 -----
.../mailbox/postgres/mail/model/JPAUserFlag.java | 120 -----
.../model/openjpa/AbstractJPAMailboxMessage.java | 579 ---------------------
.../mail/model/openjpa/EncryptDecryptHelper.java | 66 ---
.../mail/model/openjpa/JPAMailboxMessage.java | 126 -----
.../postgres/openjpa/OpenJPAMessageFactory.java | 56 --
.../postgres/quota/JPAPerUserMaxQuotaDAO.java | 238 ---------
.../postgres/quota/JPAPerUserMaxQuotaManager.java | 292 -----------
.../postgres/quota/JpaCurrentQuotaManager.java | 131 -----
.../quota/PostgresCurrentQuotaManager.java} | 66 ++-
.../quota/PostgresPerUserMaxQuotaManager.java} | 142 ++---
.../postgres/quota/model/JpaCurrentQuota.java | 69 ---
.../quota/model/MaxGlobalMessageCount.java | 54 --
.../postgres/quota/model/MaxGlobalStorage.java | 54 --
.../postgres/quota/model/MaxUserMessageCount.java | 52 --
.../postgres/user/PostgresSubscriptionDAO.java | 6 +-
.../postgres/user/PostgresSubscriptionMapper.java | 7 +-
.../postgres/user/PostgresSubscriptionModule.java | 21 +-
.../postgres/user/model/JPASubscription.java | 136 -----
.../main/resources/META-INF/spring/mailbox-jpa.xml | 109 ----
.../src/main/resources/james-database.properties | 51 --
mailbox/postgres/src/reporting-site/site.xml | 29 --
.../james/mailbox/postgres/JPAMailboxFixture.java | 83 ---
...er.java => PostgresMailboxManagerProvider.java} | 51 +-
....java => PostgresMailboxManagerStressTest.java} | 24 +-
...erTest.java => PostgresMailboxManagerTest.java} | 43 +-
.../postgres/PostgresSubscriptionManagerTest.java | 31 +-
.../postgres/mail/JPAAttachmentMapperTest.java | 102 ----
.../postgres/mail/JpaMailboxMapperTest.java | 90 ----
.../postgres/mail/JpaMessageMapperTest.java | 156 ------
.../mailbox/postgres/mail/MessageUtilsTest.java | 106 ----
...Test.java => PostgresAnnotationMapperTest.java} | 35 +-
.../mail/PostgresMailboxMapperACLTest.java | 28 +-
.../PostgresMailboxMapperRowLevelSecurityTest.java | 84 +++
.../postgres/mail/PostgresMailboxMapperTest.java | 85 +++
...erProvider.java => PostgresMapperProvider.java} | 103 ++--
.../postgres/mail/PostgresMessageMapperTest.java | 36 +-
...eMoveTest.java => PostgresMessageMoveTest.java} | 21 +-
.../postgres/mail/PostgresModSeqProviderTest.java | 104 ++++
.../postgres/mail/PostgresUidProviderTest.java} | 68 ++-
.../mail/TransactionalAnnotationMapper.java | 87 ----
.../mail/TransactionalAttachmentMapper.java | 79 ---
.../postgres/mail/TransactionalMessageMapper.java | 147 ------
.../mail/model/openjpa/JPAMailboxMessageTest.java | 57 --
...PostgresRecomputeCurrentQuotasServiceTest.java} | 75 +--
...t.java => PostgresCurrentQuotaManagerTest.java} | 29 +-
...ava => PostgresPerUserMaxQuotaManagerTest.java} | 22 +-
...gresSubscriptionMapperRowLevelSecurityTest.java | 79 +++
.../user/PostgresSubscriptionMapperTest.java | 5 +-
.../postgres/src/test/resources/persistence.xml | 53 --
.../store/search/SimpleMessageSearchIndexTest.java | 7 +-
.../mailbox/store/MailboxSessionMapperFactory.java | 4 +-
.../james/mailbox/store/StoreMessageIdManager.java | 9 +-
.../james/mailbox/store/StoreMessageManager.java | 5 -
.../store/mail/model/impl/MessageParser.java | 3 +-
.../store/mail/model/AnnotationMapperTest.java | 7 +
.../store/mail/model/MailboxMapperTest.java | 15 +
.../store/mail/model/MessageMapperTest.java | 2 +-
.../store/mail/model/impl/MessageParserTest.java | 5 +-
.../search/AbstractMessageSearchIndexTest.java | 59 ++-
mailet/api/pom.xml | 5 +
.../java/org/apache/mailet/LoopPrevention.java | 109 ++++
.../java/org/apache/mailet/LoopPreventionTest.java | 90 ++++
.../apache/james/mpt/imapmailbox/suite/Fetch.java | 7 +
.../apache/james/imap/scripts/FetchPartial.test | 69 +++
.../org/apache/james/imap/scripts/Metadata.test | 9 +-
.../org/apache/james/imap/scripts/SearchAtoms.test | 24 +-
mpt/impl/imap-mailbox/pom.xml | 7 +
.../impl/imap-mailbox}/postgres/pom.xml | 86 +--
.../postgres/PostgresAuthenticatePlainTest.java | 27 +-
.../postgres/PostgresAuthenticatedStateTest.java | 27 +-
.../postgres/PostgresConcurrentSessionsTest.java | 35 +-
.../postgres/PostgresCondstoreTest.java | 27 +-
.../mpt/imapmailbox/postgres/PostgresCopyTest.java | 29 +-
.../imapmailbox/postgres/PostgresEventsTest.java | 27 +-
.../imapmailbox/postgres/PostgresExpungeTest.java | 27 +-
.../postgres/PostgresFetchBodySectionTest.java | 27 +-
.../postgres/PostgresFetchBodyStructureTest.java | 27 +-
.../postgres/PostgresFetchHeadersTest.java | 27 +-
.../imapmailbox/postgres/PostgresFetchTest.java | 25 +-
.../imapmailbox/postgres/PostgresListingTest.java | 27 +-
.../postgres/PostgresMailboxAnnotationTest.java | 28 +-
.../PostgresMailboxWithLongNameErrorTest.java | 27 +-
.../mpt/imapmailbox/postgres/PostgresMoveTest.java | 27 +-
.../PostgresNonAuthenticatedStateTest.java | 27 +-
.../postgres/PostgresPartialFetchTest.java | 27 +-
.../imapmailbox/postgres/PostgresQuotaTest.java | 27 +-
.../imapmailbox/postgres/PostgresRenameTest.java | 27 +-
.../imapmailbox/postgres/PostgresSearchTest.java | 27 +-
.../imapmailbox/postgres/PostgresSecurityTest.java | 27 +-
.../imapmailbox/postgres/PostgresSelectTest.java | 27 +-
.../postgres/PostgresSelectedInboxTest.java | 27 +-
.../postgres/PostgresSelectedStateTest.java | 53 +-
.../postgres/PostgresUidSearchOnIndexTest.java | 27 +-
.../postgres/PostgresUidSearchTest.java | 27 +-
.../postgres/PostgresUserFlagsSupportTest.java | 27 +-
.../postgres/host/PostgresHostSystem.java | 172 ++++++
.../postgres/host/PostgresHostSystemExtension.java | 87 ++++
pom.xml | 41 +-
.../apache/james/imap/api/message/FetchData.java | 19 +-
.../james/imap/api/message/PartialRange.java | 74 +++
.../imap/api/message/request/SearchOperation.java | 13 +-
.../api/message/request/SearchResultOption.java | 7 +-
.../james/imap/api/process/SelectedMailbox.java | 3 +
.../james/imap/decode/ImapRequestLineReader.java | 28 +
.../imap/decode/parser/FetchCommandParser.java | 4 +
.../imap/decode/parser/SearchCommandParser.java | 25 +-
.../james/imap/encode/ESearchResponseEncoder.java | 13 +
.../imap/encode/base/ImapResponseComposerImpl.java | 3 +
.../imap/message/response/ESearchResponse.java | 20 +-
.../james/imap/processor/SearchProcessor.java | 31 +-
.../imap/processor/base/SelectedMailboxImpl.java | 5 +
.../james/imap/processor/base/UidMsnConverter.java | 13 +
.../james/imap/processor/fetch/FetchProcessor.java | 56 +-
.../parser/SearchCommandParserSearchKeyTest.java | 2 +-
.../james/imap/processor/SearchProcessorTest.java | 2 +-
.../james/protocols/smtp/SMTPConfiguration.java | 7 +
.../apache/james/protocols/smtp/SMTPSession.java | 7 +
.../protocols/smtp/core/esmtp/EhloCmdHandler.java | 7 +-
.../sample-configuration/cassandra.properties | 6 +-
.../sample-configuration/jvm.properties | 2 +-
.../org/apache/james/CassandraJamesServerMain.java | 4 +-
.../james/CassandraWithOpenSearchDisabled.java | 122 +++++
.../org/apache/james/CassandraWithTikaTest.java | 2 +-
.../src/test/resources/usersrepository.xml | 1 +
.../distributed-app/docs/modules/ROOT/nav.adoc | 1 +
.../pages/architecture/implemented-standards.adoc | 1 +
.../modules/ROOT/pages/configure/blobstore.adoc | 6 +
.../modules/ROOT/pages/configure/cassandra.adoc | 4 +
.../docs/modules/ROOT/pages/configure/index.adoc | 1 +
.../modules/ROOT/pages/configure/rabbitmq.adoc | 15 +
.../docs/modules/ROOT/pages/configure/search.adoc | 18 +
.../docs/modules/ROOT/pages/configure/smtp.adoc | 3 +
.../ROOT/pages/operate/performanceChecklist.adoc | 1 -
.../docs/modules/ROOT/pages/operate/security.adoc | 9 +-
.../helm-chart/james/configs/blob.properties | 4 -
server/apps/distributed-app/pom.xml | 4 +-
.../sample-configuration/blob.properties | 4 -
.../sample-configuration/cassandra.properties | 6 +-
.../sample-configuration/jvm.properties | 2 +-
.../sample-configuration/rabbitmq.properties | 7 +-
server/apps/distributed-pop3-app/pom.xml | 4 +-
.../sample-configuration/blob.properties | 4 -
.../sample-configuration/jvm.properties | 2 +-
.../james/DistributedPOP3JamesServerMain.java | 1 -
.../jpa-app/sample-configuration/jvm.properties | 2 +-
.../sample-configuration/jvm.properties | 2 +-
.../memory-app/sample-configuration/jvm.properties | 2 +-
server/apps/postgres-app/docker-compose.yml | 16 +-
.../imap-provision-conf/provisioning.properties | 25 +
server/apps/postgres-app/performance-test.md | 11 +
server/apps/postgres-app/pom.xml | 2 +-
server/apps/postgres-app/provision.sh | 40 ++
.../sample-configuration/imapserver.xml | 2 +-
.../org/apache/james/PostgresJamesServerMain.java | 18 +-
.../src/main/resources/META-INF/persistence.xml | 26 +-
.../apache/james/JamesCapabilitiesServerTest.java | 6 +-
.../org/apache/james/PostgresJamesServerTest.java | 10 +-
.../james/PostgresWithLDAPJamesServerTest.java | 6 +-
.../src/test/resources/usersrepository.xml | 0
.../sample-configuration/blob.properties | 4 -
.../src/main/java/org/apache/james/Main.java | 4 +-
.../blob/api/ReadSaveBlobStoreDAOContract.java | 7 +-
.../cache/CassandraCacheConfiguration.java | 2 -
.../blob/cassandra/cache/CachedBlobStoreTest.java | 4 +-
.../blob/export/file/FileSystemExtension.java | 5 +-
server/blob/{blob-memory => blob-file}/pom.xml | 14 +-
.../apache/james/blob/file/FileBlobStoreDAO.java | 189 +++++++
.../james/blob/file/FileBlobStoreFactory.java | 45 +-
.../james/blob/file/FileBlobStoreDAOTest.java} | 26 +-
.../blob/file/FileBlobStoreGCAlgorithmTest.java} | 26 +-
.../blob/file/FileBlobStorePassThroughTest.java} | 40 +-
.../apache/james/blob/file/FileBlobStoreTest.java | 61 +--
server/blob/blob-memory/pom.xml | 2 +-
server/blob/blob-s3/pom.xml | 2 +-
.../objectstorage/aws/AwsS3AuthConfiguration.java | 30 +-
.../blob/objectstorage/aws/S3BlobStoreDAO.java | 23 +
server/blob/pom.xml | 1 +
.../server/core/filesystem/FileSystemImpl.java | 15 +
.../org/apache/james/server/core/MailImplTest.java | 6 +-
...efaultBucketModule.java => S3BucketModule.java} | 2 +-
.../aws/s3/AwsS3ConfigurationReader.java | 2 +
.../aws/s3/AwsS3ConfigurationReaderTest.java | 79 +++
...aBucketModule.java => DefaultBucketModule.java} | 2 +-
.../james/utils/FilteringManagementProbeImpl.java | 10 +
.../james/utils/MailRepositoryProbeImpl.java | 6 +
.../org/apache/james/JamesServerExtension.java | 22 +-
server/container/guice/distributed/pom.xml | 4 +
.../modules/DistributedTaskManagerModule.java | 6 +
.../modules/blobstore/BlobStoreConfiguration.java | 5 +
.../modules/blobstore/BlobStoreModulesChooser.java | 20 +-
.../james/modules/event/JMAPEventBusModule.java | 8 +
.../modules/event/RabbitMQEventBusModule.java | 7 +
.../blobstore/BlobStoreConfigurationTest.java | 25 +-
.../org/apache/james/modules/server/JMXServer.java | 7 +-
.../james/modules/server/JmxConfiguration.java | 3 +-
server/container/guice/mailbox-postgres/pom.xml | 4 +
.../james/modules/mailbox/JPAMailboxModule.java | 152 ------
.../modules/mailbox/PostgresMailboxModule.java | 119 ++++-
...paQuotaModule.java => PostgresQuotaModule.java} | 20 +-
.../java/org/apache/james/SearchConfiguration.java | 41 +-
.../java/org/apache/james/SearchModuleChooser.java | 5 +
.../modules/mailbox/OpenSearchDisabledModule.java} | 26 +-
.../OpenSearchMailboxConfigurationModule.java | 82 +++
.../modules/mailbox/OpenSearchMailboxModule.java | 66 +--
.../mailbox/OpenSearchMailboxModuleTest.java | 2 +-
server/container/guice/pom.xml | 6 +
server/container/guice/postgres-common/pom.xml | 17 +-
.../james/modules/data/PostgresCommonModule.java | 51 +-
...{JPADataModule.java => PostgresDataModule.java} | 7 +-
...stModule.java => PostgresDomainListModule.java} | 19 +-
...va => PostgresRecipientRewriteTableModule.java} | 19 +-
...ule.java => PostgresUsersRepositoryModule.java} | 35 +-
.../apache/james/TestJPAConfigurationModule.java | 17 +-
...estJPAConfigurationModuleWithSqlValidation.java | 80 ++-
.../queue/rabbitmq/RabbitMQMailQueueModule.java | 4 +
.../{postgres-common => sieve-postgres}/pom.xml | 33 +-
.../data/SievePostgresRepositoryModules.java} | 16 +-
.../apache/james/utils/ExtendedClassLoader.java | 19 +-
.../org/apache/james/utils/GuiceGenericLoader.java | 6 +-
.../sieve/cassandra/CassandraSieveQuotaDAOV2.java | 12 +-
.../james/jmap/cassandra/filtering/RuleDTO.java | 12 +-
.../CassandraPushSubscriptionRepository.java | 7 +-
.../upload/CassandraUploadUsageRepository.java | 7 +-
.../src/test/resources/json/eventComplex.json | 12 +-
.../src/test/resources/json/increment.json | 8 +-
.../org/apache/james/jmap/api/filtering/Rule.java | 40 +-
.../MemoryPushSubscriptionRepository.java | 7 +-
.../james/jmap/api/filtering/RuleFixture.java | 6 +-
.../PushSubscriptionRepositoryContract.scala | 34 +-
.../apache/james/user/lib/UsersRepositoryImpl.java | 2 +
server/data/data-postgres/pom.xml | 23 +-
.../apache/james/domainlist/jpa/JPADomainList.java | 178 -------
.../james/domainlist/jpa/model/JPADomain.java | 69 ---
.../domainlist/postgres/PostgresDomainList.java | 88 ++++
.../domainlist/postgres/PostgresDomainModule.java | 22 +-
.../james/rrt/jpa/JPARecipientRewriteTable.java | 251 ---------
.../james/rrt/jpa/model/JPARecipientRewrite.java | 147 ------
.../postgres/PostgresRecipientRewriteTable.java | 88 ++++
.../postgres/PostgresRecipientRewriteTableDAO.java | 89 ++++
.../PostgresRecipientRewriteTableModule.java | 48 +-
.../james/sieve/jpa/model/JPASieveQuota.java | 97 ----
.../sieve/postgres/PostgresSieveQuotaDAO.java} | 59 +--
.../PostgresSieveRepository.java} | 134 ++---
.../{jpa => postgres}/model/JPASieveScript.java | 2 +-
.../org/apache/james/user/jpa/JPAUsersDAO.java | 267 ----------
.../org/apache/james/user/jpa/model/JPAUser.java | 193 -------
.../james/user/postgres/PostgresUserModule.java | 41 +-
.../james/user/postgres/PostgresUsersDAO.java | 144 +++++
.../user/postgres/PostgresUsersRepository.java} | 14 +-
.../PostgresUsersRepositoryConfiguration.java} | 57 +-
.../james/domainlist/jpa/JPADomainListTest.java | 71 ---
.../postgres/PostgresDomainListTest.java} | 39 +-
.../PostgresRecipientRewriteTableTest.java} | 32 +-
.../PostgresStepdefs.java} | 36 +-
.../rrt/{jpa => postgres}/RewriteTablesTest.java | 4 +-
.../sieve/postgres/PostgresSieveQuotaDAOTest.java | 163 ++++++
.../PostgresSieveRepositoryTest.java} | 23 +-
.../apache/james/user/jpa/model/JPAUserTest.java | 73 ---
.../PostgresUsersRepositoryTest.java} | 41 +-
.../src/test/resources/persistence.xml | 6 +-
server/mailet/dkim/pom.xml | 4 +
.../org/apache/james/jdkim/mailets/DKIMSign.java | 17 +-
.../apache/james/jdkim/mailets/DKIMVerifier.java | 3 +-
.../org/apache/james/jdkim/mailets/DKIMVerify.java | 2 +-
.../apache/james/jdkim/mailets/DKIMSignTest.java | 27 +-
.../apache/james/mailets/DKIMIntegrationTest.java | 77 ++-
.../mailets/FilterForwardIntegrationTest.java | 87 +---
.../james/mailets/ForwardIntegrationTest.java | 12 +-
.../james/mailets/ForwardLoopIntegrationTest.java | 238 +++++++++
.../mailets/RecipientRewriteTableProcessor.java | 83 +--
.../remote/delivery/MailDelivrerToHost.java | 1 +
server/mailet/rate-limiter-redis/pom.xml | 10 +
.../rate/limiter/redis/RedisRateLimiter.scala | 9 +-
.../james/rate/limiter/RedisRateLimiterTest.scala | 9 +-
.../methods/integration/SendMDNMethodTest.java | 55 +-
.../src/test/resources/usersrepository.xml | 1 +
.../james/jmap/mailet/filter/ActionApplier.java | 145 ++++--
.../pom.xml | 4 +-
.../rfc8621/contract/EmailGetMethodContract.scala | 103 ++++
.../rfc8621/contract/EmailSetMethodContract.scala | 104 ++++
.../src/test/resources/usersrepository.xml | 1 +
.../james/jmap/json/EmailSetSerializer.scala | 54 +-
.../org/apache/james/jmap/mail/EmailBodyPart.scala | 5 +-
.../org/apache/james/jmap/mail/EmailSet.scala | 54 +-
.../james/jmap/pushsubscription/PushListener.scala | 6 +-
.../jmap/pushsubscription/PushListenerTest.scala | 2 +-
server/protocols/protocols-imap4/pom.xml | 4 +-
.../james/imapserver/netty/IMAPServerTest.java | 7 +-
server/protocols/protocols-lmtp/pom.xml | 9 +-
.../hook/MailboxDeliverToRecipientHandler.java | 15 +-
.../apache/james/lmtpserver/LmtpServerTest.java | 66 ++-
.../mailbox/DistributedPop3ServerTest.java | 7 +-
server/protocols/protocols-pop3/pom.xml | 4 +-
.../apache/james/pop3server/POP3ServerTest.java | 7 +-
server/protocols/protocols-smtp/pom.xml | 4 +-
.../james/smtpserver/ExtendedSMTPSession.java | 7 +
.../apache/james/smtpserver/netty/SMTPServer.java | 11 +
.../apache/james/smtpserver/AuthAnnounceTest.java | 180 +------
.../java/org/apache/james/smtpserver/DSNTest.java | 185 ++-----
.../james/smtpserver/DisableFeatureTest.java | 41 +-
.../apache/james/smtpserver/FutureReleaseTest.java | 174 +------
.../org/apache/james/smtpserver/SMTPSaslTest.java | 187 ++-----
.../apache/james/smtpserver/SMTPServerTest.java | 355 ++++---------
.../james/smtpserver/SMTPServerTestSystem.java | 182 +++++++
.../test/resources/smtpserver-disabled-feature.xml | 51 ++
.../distributed-webadmin-integration-test/pom.xml | 4 +-
...itMQWebAdminServerIntegrationImmutableTest.java | 3 +-
.../memory-webadmin-integration-test/pom.xml | 2 +-
.../org/apache/james/webadmin/WebAdminServer.java | 13 +-
.../org/apache/james/webadmin/WebAdminUtils.java | 4 +-
.../apache/james/webadmin/WebAdminUtilsTest.java | 29 +-
server/protocols/webadmin/webadmin-mailbox/pom.xml | 4 +-
.../james/queue/memory/MemoryMailQueueFactory.java | 8 +-
.../org/apache/james/queue/rabbitmq/Dequeuer.java | 6 +-
.../RabbitMQMailQueueConsumerHealthCheck.java | 87 ++++
.../DistributedTaskManagerHealthCheck.java | 77 +++
.../distributed/RabbitMQWorkQueue.java | 14 +-
.../RabbitMQWorkQueueReconnectionHandler.java | 29 +-
.../distributed/RabbitMQWorkQueueTest.java | 12 +-
src/adr/0067-quota-for-jmap-uploads.md | 2 +-
.../0068-mutualize-cassandra-storge-for-quota.md | 2 +-
src/adr/0069-crowdsec-IP-filtering.md | 57 ++
src/adr/0070-postgresql-adoption.md | 84 +++
src/adr/img/adr-69-scenario-diagram.png | Bin 0 -> 77049 bytes
src/site/xdoc/protocols/imap4.xml | 1 +
src/site/xdoc/server/config-blobstore.xml | 6 +
src/site/xdoc/server/config-cassandra.xml | 3 +
src/site/xdoc/server/config-rabbitmq.xml | 15 +
src/site/xdoc/server/config-redis.xml | 4 +-
src/site/xdoc/server/config-smtp-lmtp.xml | 3 +
testing/base/src/main/resources/logback-test.xml | 3 +-
third-party/crowdsec/README.md | 67 +++
third-party/crowdsec/docker-compose.yml | 4 +
.../cassandra => third-party/crowdsec}/pom.xml | 100 ++--
.../sample-configuration/collections/james.yaml | 3 +-
.../sample-configuration/crowdsec.properties | 2 +
.../sample-configuration/extensions.properties | 1 +
.../sample-configuration/parsers/james-auth.yaml | 6 +-
.../parsers/james-dictionary-attack.yaml | 25 +
.../scenarios/james-dictionary-attack.yaml | 14 +
.../crowdsec/sample-configuration/smtpserver.xml | 162 ++++++
.../java/org/apache/james/CrowdsecEhloHook.java | 73 +++
.../james/model/CrowdsecClientConfiguration.java | 48 +-
.../org/apache/james/model/CrowdsecDecision.java | 165 ++++++
.../james/model/CrowdsecDecisionDeserializer.java | 50 +-
.../org/apache/james/model/CrowdsecHttpClient.java | 96 ++++
.../org/apache/james/module/CrowdsecModule.java | 24 +-
.../james/CrowdsecDecisionDeserializerTest.java | 38 +-
.../org/apache/james/CrowdsecEhloHookTest.java | 90 ++++
.../java/org/apache/james/CrowdsecExtension.java | 69 +++
.../org/apache/james/CrowdsecHttpClientTest.java | 128 +++++
.../apache/james/DockerCrowdsecExtensionTest.java | 75 +++
third-party/pom.xml | 3 +-
upgrade-instructions.md | 15 +
468 files changed, 11816 insertions(+), 10809 deletions(-)
create mode 100644
backends-common/postgres/src/main/java/org/apache/james/backends/postgres/PostgresCommons.java
create mode 100644
backends-common/postgres/src/main/java/org/apache/james/backends/postgres/quota/PostgresQuotaCurrentValueDAO.java
create mode 100644
backends-common/postgres/src/main/java/org/apache/james/backends/postgres/quota/PostgresQuotaLimitDAO.java
create mode 100644
backends-common/postgres/src/main/java/org/apache/james/backends/postgres/quota/PostgresQuotaModule.java
rename
backends-common/postgres/src/main/java/org/apache/james/backends/postgres/utils/{SimpleJamesPostgresConnectionFactory.java
=> DomainImplPostgresConnectionFactory.java} (79%)
copy
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/user/PostgresSubscriptionTable.java
=>
backends-common/postgres/src/main/java/org/apache/james/backends/postgres/utils/PostgresUtils.java
(70%)
copy
server/container/guice/cassandra/src/main/java/org/apache/james/modules/mailbox/CassandraBucketModule.java
=>
backends-common/postgres/src/main/java/org/apache/james/backends/postgres/utils/SinglePostgresConnectionFactory.java
(69%)
rename
backends-common/postgres/src/test/java/org/apache/james/backends/postgres/{SimpleJamesPostgresConnectionFactoryTest.java
=> DomainImplPostgresConnectionFactoryTest.java} (90%)
rename
backends-common/postgres/src/test/java/org/apache/james/backends/postgres/{ConnectionThreadSafetyTest.java
=> PostgresExecutorThreadSafetyTest.java} (54%)
create mode 100644
backends-common/postgres/src/test/java/org/apache/james/backends/postgres/quota/PostgresQuotaCurrentValueDAOTest.java
copy
backends-common/{cassandra/src/test/java/org/apache/james/backends/cassandra/quota/CassandraQuotaLimitDaoTest.java
=>
postgres/src/test/java/org/apache/james/backends/postgres/quota/PostgresQuotaLimitDaoTest.java}
(62%)
create mode 100644 backends-common/redis/pom.xml
rename
server/mailet/rate-limiter-redis/src/main/scala/org/apache/james/rate/limiter/redis/RedisRateLimiterConfiguration.scala
=>
backends-common/redis/src/main/java/org/apache/james/backends/redis/RedisConfiguration.scala
(80%)
rename
{server/mailet/rate-limiter-redis/src/main/scala/org/apache/james/rate/limiter
=>
backends-common/redis/src/main/java/org/apache/james/backends}/redis/RedisHealthCheck.scala
(95%)
rename
{server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter
=>
backends-common/redis/src/test/java/org/apache/james/backends/redis}/DockerRedis.java
(94%)
create mode 100644
backends-common/redis/src/test/java/org/apache/james/backends/redis/RedisConfigurationTest.scala
rename
{server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter
=>
backends-common/redis/src/test/java/org/apache/james/backends/redis}/RedisExtension.java
(90%)
copy
{server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter
=>
backends-common/redis/src/test/java/org/apache/james/backends/redis}/RedisExtensionTest.java
(97%)
rename
{server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter
=>
backends-common/redis/src/test/java/org/apache/james/backends/redis}/RedisHealthCheckTest.scala
(93%)
create mode 100644
event-bus/distributed/src/main/java/org/apache/james/events/RabbitEventBusConsumerHealthCheck.java
copy mailbox/{cassandra/src/main/java/org/apache/james/mailbox/cassandra =>
api/src/main/java/org/apache/james/mailbox}/quota/Limits.java (97%)
rename mailbox/{cassandra/src/main/java/org/apache/james/mailbox/cassandra =>
api/src/main/java/org/apache/james/mailbox}/quota/QuotaCodec.java (90%)
create mode 100644
mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/events/DisabledListeningMessageSearchIndex.java
delete mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/JPATransactionalMapper.java
rename
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/{JPAAttachmentContentLoader.java
=> PostgresAttachmentContentLoader.java} (88%)
copy
server/container/guice/mailbox-postgres/src/main/java/org/apache/james/modules/mailbox/PostgresMailboxModule.java
=>
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/PostgresMailboxAggregateModule.java
(70%)
copy
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/{user/PostgresSubscriptionModule.java
=> PostgresMailboxAnnotationModule.java} (50%)
rename
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/{JPAId.java =>
PostgresMailboxId.java} (58%)
copy mailbox/{api/src/main/java/org/apache/james/mailbox/ModSeq.java =>
postgres/src/main/java/org/apache/james/mailbox/postgres/PostgresMessageId.java}
(56%)
delete mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/JPAAnnotationMapper.java
delete mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/JPAAttachmentMapper.java
delete mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/JPAMailboxMapper.java
delete mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/JPAMessageMapper.java
delete mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/JPAModSeqProvider.java
delete mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/JPAUidProvider.java
delete mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/MessageUtils.java
create mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/PostgresAnnotationMapper.java
rename
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/{quota/model/MaxUserStorage.java
=> mail/PostgresMailbox.java} (60%)
rename
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/{openjpa/OpenJPAMailboxManager.java
=> mail/PostgresMailboxManager.java} (70%)
rename
mailbox/postgres/src/{test/java/org/apache/james/mailbox/postgres/mail/TransactionalMailboxMapper.java
=>
main/java/org/apache/james/mailbox/postgres/mail/PostgresMailboxMapper.java}
(57%)
create mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/PostgresMailboxModule.java
rename
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/{openjpa/OpenJPAMessageManager.java
=> mail/PostgresMessageManager.java} (56%)
create mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/PostgresMessageMapper.java
create mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/PostgresMessageModule.java
create mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/PostgresModSeqProvider.java
create mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/PostgresUidProvider.java
create mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/dao/PostgresMailboxAnnotationDAO.java
create mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/dao/PostgresMailboxDAO.java
create mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/dao/PostgresMailboxMessageDAO.java
create mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/dao/PostgresMailboxMessageDAOUtils.java
create mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/dao/PostgresMailboxMessageFetchStrategy.java
create mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/dao/PostgresMessageDAO.java
delete mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/model/JPAAttachment.java
delete mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/model/JPAMailbox.java
delete mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/model/JPAMailboxAnnotation.java
delete mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/model/JPAProperty.java
delete mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/model/JPAUserFlag.java
delete mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/model/openjpa/AbstractJPAMailboxMessage.java
delete mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/model/openjpa/EncryptDecryptHelper.java
delete mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/model/openjpa/JPAMailboxMessage.java
delete mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/openjpa/OpenJPAMessageFactory.java
delete mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/quota/JPAPerUserMaxQuotaDAO.java
delete mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/quota/JPAPerUserMaxQuotaManager.java
delete mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/quota/JpaCurrentQuotaManager.java
copy
mailbox/{cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraCurrentQuotaManagerV2.java
=>
postgres/src/main/java/org/apache/james/mailbox/postgres/quota/PostgresCurrentQuotaManager.java}
(80%)
copy
mailbox/{cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManagerV2.java
=>
postgres/src/main/java/org/apache/james/mailbox/postgres/quota/PostgresPerUserMaxQuotaManager.java}
(67%)
delete mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/quota/model/JpaCurrentQuota.java
delete mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/quota/model/MaxGlobalMessageCount.java
delete mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/quota/model/MaxGlobalStorage.java
delete mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/quota/model/MaxUserMessageCount.java
delete mode 100644
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/user/model/JPASubscription.java
delete mode 100644
mailbox/postgres/src/main/resources/META-INF/spring/mailbox-jpa.xml
delete mode 100644
mailbox/postgres/src/main/resources/james-database.properties
delete mode 100644 mailbox/postgres/src/reporting-site/site.xml
delete mode 100644
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/JPAMailboxFixture.java
rename
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/{JpaMailboxManagerProvider.java
=> PostgresMailboxManagerProvider.java} (69%)
rename
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/{JpaMailboxManagerStressTest.java
=> PostgresMailboxManagerStressTest.java} (62%)
rename
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/{JPAMailboxManagerTest.java
=> PostgresMailboxManagerTest.java} (60%)
delete mode 100644
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/JPAAttachmentMapperTest.java
delete mode 100644
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/JpaMailboxMapperTest.java
delete mode 100644
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/JpaMessageMapperTest.java
delete mode 100644
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/MessageUtilsTest.java
copy
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/{JpaAnnotationMapperTest.java
=> PostgresAnnotationMapperTest.java} (54%)
copy
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
=>
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/PostgresMailboxMapperACLTest.java
(65%)
create mode 100644
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/PostgresMailboxMapperRowLevelSecurityTest.java
create mode 100644
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/PostgresMailboxMapperTest.java
rename
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/{JPAMapperProvider.java
=> PostgresMapperProvider.java} (53%)
rename
server/apps/postgres-app/src/test/java/org/apache/james/PostgresJamesServerWithNoDatabaseAuthenticaticationSqlValidationTest.java
=>
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/PostgresMessageMapperTest.java
(59%)
rename
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/{JpaMessageMoveTest.java
=> PostgresMessageMoveTest.java} (74%)
create mode 100644
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/PostgresModSeqProviderTest.java
copy
mailbox/{cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUidProviderTest.java
=>
postgres/src/test/java/org/apache/james/mailbox/postgres/mail/PostgresUidProviderTest.java}
(62%)
delete mode 100644
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/TransactionalAnnotationMapper.java
delete mode 100644
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/TransactionalAttachmentMapper.java
delete mode 100644
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/TransactionalMessageMapper.java
delete mode 100644
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/model/openjpa/JPAMailboxMessageTest.java
rename
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/task/{JPARecomputeCurrentQuotasServiceTest.java
=> PostgresRecomputeCurrentQuotasServiceTest.java} (59%)
rename
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/quota/{JPACurrentQuotaManagerTest.java
=> PostgresCurrentQuotaManagerTest.java} (64%)
rename
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/quota/{JPAPerUserMaxQuotaTest.java
=> PostgresPerUserMaxQuotaManagerTest.java} (65%)
create mode 100644
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/user/PostgresSubscriptionMapperRowLevelSecurityTest.java
delete mode 100644 mailbox/postgres/src/test/resources/persistence.xml
create mode 100644
mailet/api/src/main/java/org/apache/mailet/LoopPrevention.java
create mode 100644
mailet/api/src/test/java/org/apache/mailet/LoopPreventionTest.java
create mode 100644
mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchPartial.test
copy {mailbox => mpt/impl/imap-mailbox}/postgres/pom.xml (61%)
copy
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
=>
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresAuthenticatePlainTest.java
(69%)
copy
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
=>
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresAuthenticatedStateTest.java
(69%)
copy
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
=>
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresConcurrentSessionsTest.java
(62%)
copy
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
=>
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresCondstoreTest.java
(69%)
copy
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
=>
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresCopyTest.java
(69%)
copy
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
=>
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresEventsTest.java
(69%)
copy
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
=>
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresExpungeTest.java
(69%)
copy
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
=>
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresFetchBodySectionTest.java
(69%)
copy
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
=>
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresFetchBodyStructureTest.java
(69%)
copy
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
=>
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresFetchHeadersTest.java
(69%)
copy
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
=>
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresFetchTest.java
(71%)
copy
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
=>
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresListingTest.java
(69%)
copy
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
=>
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresMailboxAnnotationTest.java
(68%)
copy
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
=>
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresMailboxWithLongNameErrorTest.java
(69%)
copy
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
=>
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresMoveTest.java
(69%)
copy
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
=>
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresNonAuthenticatedStateTest.java
(69%)
copy
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
=>
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresPartialFetchTest.java
(69%)
copy
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
=>
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresQuotaTest.java
(69%)
copy
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
=>
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresRenameTest.java
(69%)
copy
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
=>
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresSearchTest.java
(69%)
copy
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
=>
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresSecurityTest.java
(69%)
copy
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
=>
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresSelectTest.java
(69%)
copy
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
=>
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresSelectedInboxTest.java
(69%)
copy
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/user/PostgresSubscriptionMapperTest.java
=>
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresSelectedStateTest.java
(56%)
copy
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
=>
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresUidSearchOnIndexTest.java
(69%)
copy
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
=>
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresUidSearchTest.java
(69%)
rename
server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisExtensionTest.java
=>
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/PostgresUserFlagsSupportTest.java
(69%)
create mode 100644
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/host/PostgresHostSystem.java
create mode 100644
mpt/impl/imap-mailbox/postgres/src/test/java/org/apache/james/mpt/imapmailbox/postgres/host/PostgresHostSystemExtension.java
create mode 100644
protocols/imap/src/main/java/org/apache/james/imap/api/message/PartialRange.java
create mode 100644
server/apps/cassandra-app/src/test/java/org/apache/james/CassandraWithOpenSearchDisabled.java
copy
server/{protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests
=> apps/cli-integration-tests}/src/test/resources/usersrepository.xml (97%)
create mode 100644
server/apps/distributed-app/docs/modules/ROOT/pages/configure/search.adoc
create mode 100644
server/apps/postgres-app/imap-provision-conf/provisioning.properties
create mode 100644 server/apps/postgres-app/performance-test.md
create mode 100755 server/apps/postgres-app/provision.sh
copy {examples/custom-imap =>
server/apps/postgres-app}/src/test/resources/usersrepository.xml (100%)
copy server/blob/{blob-memory => blob-file}/pom.xml (89%)
create mode 100644
server/blob/blob-file/src/main/java/org/apache/james/blob/file/FileBlobStoreDAO.java
rename
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/quota/model/MaxDomainMessageCount.java
=>
server/blob/blob-file/src/main/java/org/apache/james/blob/file/FileBlobStoreFactory.java
(60%)
copy
server/{apps/postgres-app/src/test/java/org/apache/james/PostgresJamesServerWithSqlValidationTest.java
=>
blob/blob-file/src/test/java/org/apache/james/blob/file/FileBlobStoreDAOTest.java}
(63%)
copy
server/{container/guice/cassandra/src/main/java/org/apache/james/modules/mailbox/CassandraBucketModule.java
=>
blob/blob-file/src/test/java/org/apache/james/blob/file/FileBlobStoreGCAlgorithmTest.java}
(64%)
copy
server/{data/data-postgres/src/test/java/org/apache/james/sieve/jpa/JpaSieveRepositoryTest.java
=>
blob/blob-file/src/test/java/org/apache/james/blob/file/FileBlobStorePassThroughTest.java}
(54%)
rename
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/mail/model/JPAMailboxAnnotationId.java
=>
server/blob/blob-file/src/test/java/org/apache/james/blob/file/FileBlobStoreTest.java
(52%)
copy
server/container/guice/blob/s3/src/main/java/org/apache/james/modules/objectstorage/{DefaultBucketModule.java
=> S3BucketModule.java} (96%)
rename
server/container/guice/cassandra/src/main/java/org/apache/james/modules/mailbox/{CassandraBucketModule.java
=> DefaultBucketModule.java} (96%)
delete mode 100644
server/container/guice/mailbox-postgres/src/main/java/org/apache/james/modules/mailbox/JPAMailboxModule.java
rename
server/container/guice/mailbox-postgres/src/main/java/org/apache/james/modules/mailbox/{JpaQuotaModule.java
=> PostgresQuotaModule.java} (74%)
copy
server/container/guice/{mailbox-postgres/src/main/java/org/apache/james/modules/mailbox/PostgresMailboxModule.java
=>
opensearch/src/main/java/org/apache/james/modules/mailbox/OpenSearchDisabledModule.java}
(61%)
create mode 100644
server/container/guice/opensearch/src/main/java/org/apache/james/modules/mailbox/OpenSearchMailboxConfigurationModule.java
copy
server/container/guice/postgres-common/src/main/java/org/apache/james/modules/data/{JPADataModule.java
=> PostgresDataModule.java} (89%)
rename
server/container/guice/postgres-common/src/main/java/org/apache/james/modules/data/{JPADomainListModule.java
=> PostgresDomainListModule.java} (71%)
rename
server/container/guice/postgres-common/src/main/java/org/apache/james/modules/data/{JPARecipientRewriteTableModule.java
=> PostgresRecipientRewriteTableModule.java} (71%)
rename
server/container/guice/postgres-common/src/main/java/org/apache/james/modules/data/{JPAUsersRepositoryModule.java
=> PostgresUsersRepositoryModule.java} (53%)
copy server/container/guice/{postgres-common => sieve-postgres}/pom.xml (62%)
rename
server/container/guice/{postgres-common/src/main/java/org/apache/james/modules/data/JPADataModule.java
=>
sieve-postgres/src/main/java/org/apache/james/modules/data/SievePostgresRepositoryModules.java}
(72%)
delete mode 100644
server/data/data-postgres/src/main/java/org/apache/james/domainlist/jpa/JPADomainList.java
delete mode 100644
server/data/data-postgres/src/main/java/org/apache/james/domainlist/jpa/model/JPADomain.java
create mode 100644
server/data/data-postgres/src/main/java/org/apache/james/domainlist/postgres/PostgresDomainList.java
rename
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/user/PostgresSubscriptionTable.java
=>
server/data/data-postgres/src/main/java/org/apache/james/domainlist/postgres/PostgresDomainModule.java
(63%)
delete mode 100644
server/data/data-postgres/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java
delete mode 100644
server/data/data-postgres/src/main/java/org/apache/james/rrt/jpa/model/JPARecipientRewrite.java
create mode 100644
server/data/data-postgres/src/main/java/org/apache/james/rrt/postgres/PostgresRecipientRewriteTable.java
create mode 100644
server/data/data-postgres/src/main/java/org/apache/james/rrt/postgres/PostgresRecipientRewriteTableDAO.java
copy
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/user/PostgresSubscriptionModule.java
=>
server/data/data-postgres/src/main/java/org/apache/james/rrt/postgres/PostgresRecipientRewriteTableModule.java
(50%)
delete mode 100644
server/data/data-postgres/src/main/java/org/apache/james/sieve/jpa/model/JPASieveQuota.java
copy
server/data/{data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveQuotaDAOV2.java
=>
data-postgres/src/main/java/org/apache/james/sieve/postgres/PostgresSieveQuotaDAO.java}
(66%)
rename
server/data/data-postgres/src/main/java/org/apache/james/sieve/{jpa/JPASieveRepository.java
=> postgres/PostgresSieveRepository.java} (73%)
rename server/data/data-postgres/src/main/java/org/apache/james/sieve/{jpa =>
postgres}/model/JPASieveScript.java (99%)
delete mode 100644
server/data/data-postgres/src/main/java/org/apache/james/user/jpa/JPAUsersDAO.java
delete mode 100644
server/data/data-postgres/src/main/java/org/apache/james/user/jpa/model/JPAUser.java
copy
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/user/PostgresSubscriptionModule.java
=>
server/data/data-postgres/src/main/java/org/apache/james/user/postgres/PostgresUserModule.java
(59%)
create mode 100644
server/data/data-postgres/src/main/java/org/apache/james/user/postgres/PostgresUsersDAO.java
rename
server/{apps/postgres-app/src/test/java/org/apache/james/PostgresJamesServerWithSqlValidationTest.java
=>
data/data-postgres/src/main/java/org/apache/james/user/postgres/PostgresUsersRepository.java}
(75%)
rename
server/data/data-postgres/src/main/java/org/apache/james/user/{jpa/JPAUsersRepository.java
=> postgres/PostgresUsersRepositoryConfiguration.java} (50%)
delete mode 100644
server/data/data-postgres/src/test/java/org/apache/james/domainlist/jpa/JPADomainListTest.java
rename
server/{apps/postgres-app/src/test/java/org/apache/james/PostgresJamesServerWithAuthenticatedDatabaseSqlValidationTest.java
=>
data/data-postgres/src/test/java/org/apache/james/domainlist/postgres/PostgresDomainListTest.java}
(59%)
rename
server/data/data-postgres/src/test/java/org/apache/james/rrt/{jpa/JPARecipientRewriteTableTest.java
=> postgres/PostgresRecipientRewriteTableTest.java} (55%)
rename
server/data/data-postgres/src/test/java/org/apache/james/rrt/{jpa/JPAStepdefs.java
=> postgres/PostgresStepdefs.java} (54%)
rename server/data/data-postgres/src/test/java/org/apache/james/rrt/{jpa =>
postgres}/RewriteTablesTest.java (96%)
create mode 100644
server/data/data-postgres/src/test/java/org/apache/james/sieve/postgres/PostgresSieveQuotaDAOTest.java
rename
server/data/data-postgres/src/test/java/org/apache/james/sieve/{jpa/JpaSieveRepositoryTest.java
=> postgres/PostgresSieveRepositoryTest.java} (60%)
delete mode 100644
server/data/data-postgres/src/test/java/org/apache/james/user/jpa/model/JPAUserTest.java
rename
server/data/data-postgres/src/test/java/org/apache/james/user/{jpa/JpaUsersRepositoryTest.java
=> postgres/PostgresUsersRepositoryTest.java} (74%)
create mode 100644
server/mailet/integration-testing/src/test/java/org/apache/james/mailets/ForwardLoopIntegrationTest.java
copy
server/protocols/{jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests
=>
jmap-draft-integration-testing/memory-jmap-draft-integration-testing}/src/test/resources/usersrepository.xml
(97%)
rename
mailbox/postgres/src/test/java/org/apache/james/mailbox/postgres/mail/JpaAnnotationMapperTest.java
=>
server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/DisableFeatureTest.java
(55%)
create mode 100644
server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTestSystem.java
create mode 100644
server/protocols/protocols-smtp/src/test/resources/smtpserver-disabled-feature.xml
create mode 100644
server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueConsumerHealthCheck.java
create mode 100644
server/task/task-distributed/src/main/java/org/apache/james/task/eventsourcing/distributed/DistributedTaskManagerHealthCheck.java
create mode 100644 src/adr/0069-crowdsec-IP-filtering.md
create mode 100644 src/adr/0070-postgresql-adoption.md
create mode 100644 src/adr/img/adr-69-scenario-diagram.png
create mode 100644 third-party/crowdsec/README.md
copy {backends-common/cassandra => third-party/crowdsec}/pom.xml (56%)
create mode 100644
third-party/crowdsec/sample-configuration/crowdsec.properties
create mode 100644
third-party/crowdsec/sample-configuration/extensions.properties
create mode 100644
third-party/crowdsec/sample-configuration/parsers/james-dictionary-attack.yaml
create mode 100644
third-party/crowdsec/sample-configuration/scenarios/james-dictionary-attack.yaml
create mode 100644 third-party/crowdsec/sample-configuration/smtpserver.xml
create mode 100644
third-party/crowdsec/src/main/java/org/apache/james/CrowdsecEhloHook.java
rename
mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/Limits.java
=>
third-party/crowdsec/src/main/java/org/apache/james/model/CrowdsecClientConfiguration.java
(50%)
create mode 100644
third-party/crowdsec/src/main/java/org/apache/james/model/CrowdsecDecision.java
rename
mailbox/postgres/src/main/java/org/apache/james/mailbox/postgres/quota/model/MaxDomainStorage.java
=>
third-party/crowdsec/src/main/java/org/apache/james/model/CrowdsecDecisionDeserializer.java
(51%)
create mode 100644
third-party/crowdsec/src/main/java/org/apache/james/model/CrowdsecHttpClient.java
rename
server/container/guice/blob/s3/src/main/java/org/apache/james/modules/objectstorage/DefaultBucketModule.java
=>
third-party/crowdsec/src/main/java/org/apache/james/module/CrowdsecModule.java
(62%)
copy
server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/WebAdminUtilsTest.java
=>
third-party/crowdsec/src/test/java/org/apache/james/CrowdsecDecisionDeserializerTest.java
(50%)
create mode 100644
third-party/crowdsec/src/test/java/org/apache/james/CrowdsecEhloHookTest.java
create mode 100644
third-party/crowdsec/src/test/java/org/apache/james/CrowdsecExtension.java
create mode 100644
third-party/crowdsec/src/test/java/org/apache/james/CrowdsecHttpClientTest.java
create mode 100644
third-party/crowdsec/src/test/java/org/apache/james/DockerCrowdsecExtensionTest.java
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]