You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ie...@apache.org on 2020/07/30 16:22:42 UTC

[james-project] branch JAMES-3260-gradle-poc updated (c40c389 -> 3017d55)

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

ieugen pushed a change to branch JAMES-3260-gradle-poc
in repository https://gitbox.apache.org/repos/asf/james-project.git.


    from c40c389  JAMES-3273 #comment Fixed publish to maven local - removed duplicates
     add bcb75a6  [REFACTORING] Use Optional.stream
     add 0b47d96  [REFACTORING] Use Predicate.{not, equals}
     add 4eb9d55  JAMES-3295 Add an AtMost matcher
     add 3a80f69  JAMES-3295 remoteDeliveryShouldStoreTemporaryFailureAsPermanentWhenExceedsMaximumRetries
     add 45e9324  JAMES-3295 Matcher for permanent error SMTP code
     add 29cd7d4  JAMES-3295 Matcher for permanent delivery error
     add d8c498c  JAMES-3295 Permanent delivery error matcher implementation/test
     add eb7510b  JAMES-3302 Documentation skeleton for the distributed James server
     add 5331338  Fix anchor links
     add 3c78672  JAMES-3295 handle configuration AtMostMatcher with differents config
     add c312298  JAMES-3295 Matcher for temporary delivery failure
     add 9711f90  JAMES-3295 Temporary delivery error matcher implementation/test
     add 5ef6acc  JAMES-3295 add a test remoteDeliveryErrorHandlingShouldIgnoreMailsNotTransitingByRemoteDelivery in RemoteDeliveryErrorHandlingTest
     add e461a3a  JAMES-3295 proof for the test remoteDeliveryErrorHandlingShouldIgnoreMailsNotTransitingByRemoteDelivery
     add 9ecfcaa  [JAMES-3301] Removed antlib references, fixed formatting issue in markdown
     add 85ab0e3  JAMES-3295 Use MessageManager::listMessagesMetadata more widely
     add c74f883  JAMES-3305 Dont crash EventBus processing upon invalid messages
     add f0f598a  JAMES-3305 Helper for RabbitMQ DeadLetter queue option
     add 1de4fa5  JAMES-3305 Invalid EventBus messages needs to be stored in dead letter queue
     add 9996553  JAMES-3305 Key registration should not crash on invalid messages
     add cbf9001  [Refactor] Remove unused misleading wrong configuration files
     add 88ba426  JAMES-3266 Offer an option to disable ElasticSearch in Distributed James product
     add 106bba2  JAMES-3266 Document ElasticSearch opt-in/opt-out
     add c4fafaf  JAMES-3266 Move disable ElasticSearch option into a separate search.properties configuration file
     add e3b61d3  JAMES-3155 Limit the number of flags updated at the same time
     add c23267a  JAMES-3308: add test in RabbitMQTerminationSubscriberTest for deserialization error handling
     add 17f8fc5  JAMES-3296 Add republishing to RabbitMQMailQueue from Cassandra capability
     add 7bc6a36  JAMES-3296 Add task to republish RabbitMQ MailQueue from Cassandra
     add 85ba240  JAMES-3107 Log slow traces to WARN
     add 7ed1980  JAMES-3305 Add FailsDeserializationTask type for testing
     add aebfaa9  JAMES-3305 Task manager deserialization error handling
     add d3cf49f  JAMES-2904 Remove unused MessageResult::hasAttachment
     add add3e9a  JAMESāˆ’2290 Fix unstable test: DiscreteDistributionTest.partitionShouldSupportDuplicatedDistributionEntry
     add 06431cd  [REFACTORING] Avoid variable reallocation in FetchResponseBuilder
     add ba3a096  [REFACTORING] FetchResponseBuilder should use Optional::isEmpty
     add 3441547  [REFACTORING] MessageResultUtils never throws
     add d4dd474  [REFACTORING] Remove unused methods in MessageResultUtils
     add b531212  [REFACTORING] Remove unused FetchResponse.Address empty array
     add 823ed4e  [REFACTORING] Avoid variable reallocation in EnvelopeBuilder
     add a2ba8b1  [REFACTORING] Avoid variable reallocation in PartialFetchBodyElement
     add 3f1f171  [REFACTORING] IMAP FETCH javaDoc fixes
     add 0779dea  [REFACTORING] MimeBodyElement should use StandardCharset
     add 83b4d2b  [REFACTORING] Rearrange IMAP FETCH fields
     add a78237b  [REFACTORING] Remove uneeded else blocks in IMAP FETCH code
     add f6eed48  JAMES-3302 Migrate Run section for Distributed server
     add 96c4f1d  JAMES-3302 Migrate Run with docker section for Distributed server
     add 7918cec  JAMES-3302 Migrate CLI section for Distributed Server
     add 627a3de  JAMES-3302 Adapt CLI documentation for the Distributed Server
     add 4669739  JAMES-3302 Migrate WebAdmin documentation to Antora
     add 1a15f32  JAMES-3302 Refine Distributed server architecture page
     add e8937d9  JAMES-3302 Document logging for the Distributed Server
     add 7d9bb96  JAMES-3302 Extract architecture from operating guide
     add cd105c8  JAMES-3302 Migrate operator guide
     add 9d217f1  JAMES-3302 Write more about Architecture for Distributed server
     add 4b8e7d7  JAMES-3302 List configuration files for Distributed Server
     add 1c9f1d3  JAMES-3302 Fixing dead links for Distributed Server documentation
     add 4e099d0  [ADR] Define quality levels
     add 0967b65  [RELEASE] git-commit-id-plugin should not fail when no git directory
     add f78a914  [Refactoring] Migrate MailboxCopierTest to JUnit5
     add e8d9def  [Refactoring] Migrate JpaMigratorTest to JUnit5
     add 7475d71  [Refactoring] Migrate PDFTextExtractorTest to JUnit5
     add 95fd894  [Refactoring] Migrate SpringMailboxTest to JUnit5
     add 8cbc671  JAMES-3098 add tests for mailbox/get with properties filtering
     add 9b1c388  JAMES-3098 filter properties from response
     add a8b7894  JAMES-3098 return error if invalid property requested
     add c338d0f  [REFACTORING] Remove unused method argument
     add 8da802e  JAMES-3309 Avoid a NPE in FetchProcessor when SelectedMailbox is unselected
     add 396c012  JAMES-2813 Disable unstable test
     add d41ccba  JAMES-3083 Disable unstable test in RabbitMQEventBusTest
     add ab10167  JAMES-3083 Disable unstable test in RabbitMQDeletedMessageVaultIntegrationTest
     add 03ecec8  fixup! JAMES-3083 Disable unstable test in RabbitMQDeletedMessageVaultIntegrationTest
     add 9cdeb21  JAMES-3008: add test for DistributedTaskManagerTest
     add 8a4afcf  [CHANGELOG] Document recent work
     add 3ae6ff6  JAMES-3177 extract applicable flags update
     add d06faa6  JAMES-3177 group applicableflags with update status
     add ab05880  JAMES-3177 turn updateApplicableFlags into a static method for tests
     add a5e1332  JAMES-3177 port SelectedMailboxImplTest to junit5
     add cbd08be  JAMES-3177 cover updateApplicableFlags with tests
     add bf4ad97  JAMES-3177 refactor to encapsulate applicable flag logic
     add db67bdf  JAMES-3177 make use of a persistent datastructure to avoid most locking in UidMsnConverter
     add eb806e3  JAMES-3177 extraction of method handling events
     add 0747959  JAMES-3177 use vavr pattern matching to simplify the event handling code
     add cd8e790  JAMES-3177 use latest stable vavr library
     add 27d307c  JAMES-3177 Enhance SelectedMailboxImpl applicable flags related tests
     add dc5ecc7  JAMES-3177 Applicable flags updates needs to be thread safe
     add ffab77e  JAMES-3313 Write a Deduplicating blobStore
     add 82206dc  JAMES-3313 Move GC class to a separate class
     add 62d934c  JAMES-3313 MemoryBlobStore should use DeduplicatingBlobStore
     add c18ddb0  JAMES-3313 CassandraBlobStore should use DeDuplicatingBlobStore
     add 20812f2  JAMES-3313 Drop support for Hybrid BlobStore
     add 01991fd  JAMES-3312: Integration test for SessionRoutes
     add 134a160  [RELEASE] Upgrade instructions: freeze 3.5.0
     add 5edc8af  [RELEASE] Changelog: freeze 3.5.0
     add af3d8dd  [Release] s/3.4.0/3.5.0/ on the website
     add e7d8fbd  [Release] Beta for Distributed Guice James server
     add d094b31  [Release] Post for Apache James 3.5.0 release
     add 37b2d0b  JAMES-3313 Lazily instanciate BlobStore within mailbox/cassandra tests
     add 649b611  JAMES-3314 rename module blob-deduplicating to blob-storage-strategy
     add 5e27563  JAMES-3314 implement Passtrough blobstore
     add 700116f7 JAMES-3314 Mutualize CassandraBlobStoreContract
     add e2c8fc2  JAMES-3314 Avoid double MetricableBlobStore wrapping in MemoryBlobStoreTest
     add 7e8e2be  JAMES-3314 Extract test enforcing content-based BlobId generation
     add ddd3be5  JAMES-3314 Rewrite DeletedMessagesVaultRoutesTest so that it do not hard code BlobId generation logic
     add 26268b1  JAMES-3224 Use CassandraConsistenciesConfiguration for default consistency levels
     add e104e7c  JAMES-3344 Upgrade Bouncy Castle to last version
     add 810c97e  [Refactoring] Migrate GenericMailetTest to Junit 5
     add fcf79b5  [Refactoring] Migrate MailetPipelineLoggingTest to Junit 5
     add 6b640ca  [Refactoring] Migrate MailetUtilTest to Junit 5
     add fe001ce  [Refactoring] Migrate MatcherInverterTest to Junit 5
     add 8bea2b4  [Refactoring] Migrate StringUtilsTest to Junit 5
     add fb3dc2a  [Refactoring] Migrate ICalendarParserTest to Junit 5
     add 0953a85  [Refactoring] Migrate ICALToHeadersTest to Junit 5
     add f2351ec  [Refactoring] Migrate ICALAttributeDTOTest to Junit 5
     add be74e50  [Refactoring] Migrate DefaultDescriptorsExtractorTest to Junit 5
     add 75ad3e2  JAMES-3318 Remove BlobStore::delete from BlobStore contract
     add 71187b5  JAMES-3318 BlobStoreDeletedMessageVault should use DumbBlobStore for effective deletion
     add f4ff554  JAMES-3318 Deduplication BlobStore::delete should be a noop operation
     add aa0e6e7  JAMES-3319 FetchType is no longer relevant to fetch messageDao rows
     add f9a8477  JAMES-3319 Actual Message & Attachment deletion for mailbox/cassandra
     add ecbd1c3  JAMES-3319 Tests for CassandraMailRepository blob deletion
     add 1bcc8f7  JAMES-3319 Decrease the test count for storingAndRemovingMessagesConcurrentlyShouldLeadToConsistentResult
     add b5c4607  JAMES-3319 Rewrite a failure test to leverage Cassandra instrumentation
     add 87a0d25  JAMES-3319 Tests for CassandraMailRepository blob deletion
     add 948f29a  JAMES-3319 Rely on Cassandra instrumentation for CassandraMailRepository failure tests
     add ff850ea  JAMES-3319 Simplify CassandraMailRepository constructors
     add 74311ad  JAMES-3319 Actual blob deletion for CassandraMailRepository
     add 110947c  JAMES-3319 MimeMessageStore should support deletion
     add d27ac6a  JAMES-3310 Make DeletedMessageVaultHook failure sensitive
     add 2de38df  JAMES-3157 Fix support for bench profiles
     add 62b20ec  JAMES-2892 Request level error handling
     add 6867c94  JAMES-2892 use the same default capabilities everywhere
     add e1ae434  JAMES-3093 Port UserProvisioner from draft to jmap-rfc-8621
     add 98f9f18  JAMES-3093 Port MailboxProvisioner from draft to jmap-rfc-8621
     add d2c314e  JAMES-3093 User and mailboxes provisioning for JMAP-RFC-8621
     add 029fc19  JAMES-3093 Refactoring MailboxGetMethodContract with mailboxes provisioning
     add 986002b  JAMES-3317 add deduplication propertie for blobstore in configuration
     add d6ac26f  JAMES-3317 use Storage strategy from BlobStoreConfiguration when instantiating the blobstore
     add 03addb0  JAMES-3348 Add missing Sieve persistent class declarations
     add ab1a174  [REFACTORING] Default methods for GuiceModuleTestRule
     add 039bdea  [REFACTORING] Cleanup Text extractor overrides
     add 89fb5f4  [REFACTORING] Override cleanup for RabbitMQAwsS3Stepdefs
     add d69b48f  JAMES-3319 Effective blob deletion for RabbitMQMailQueue
     add 9356dac  JAMES-3319 Add a test ensuring deduplication blobStore do not accidentaly delete similar blobs
     add 2676b9c  JAMES-3319 Mitigate CassandraMailQueueView deletion concurrency
     add 67b3a65  JAMES-3099 copy core and mail new JMAP specs into our source code
     add 05d9267  JAMES-3099 Add a subsection in config.jmap about JMAP versions in James
     add c9ccd9f  JAMES-3099 Annotate JMAP RFC-8621 mail specifications
     add c297b6e  JAMES-3099 Annotate JMAP RFC-8620 core specifications
     add 30a99e3  JAMES-3099 Add a little explanation in the README about annotations
     new 3017d55  Merge branch 'master' into JAMES-3260-gradle-poc

The 1 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:
 CHANGELOG.md                                       |   76 +-
 JenkinsfileStressTests.groovy                      |    4 +-
 README.adoc                                        |    8 +-
 .../cassandra/init/CassandraTableManager.java      |    5 +-
 .../backends/cassandra/init/ClusterFactory.java    |   11 +-
 .../cassandra/init/ResilientClusterProvider.java   |    9 +-
 .../CassandraConsistenciesConfiguration.java       |    2 +
 .../james/backends/cassandra/CassandraCluster.java |    3 +-
 .../james/backends/cassandra/DockerCassandra.java  |   20 +-
 .../cassandra/init/ClusterFactoryTest.java         |    7 +-
 .../init/ResilientClusterProviderTest.java         |    8 +-
 .../SessionWithInitializedTablesFactoryTest.java   |    3 +-
 .../apache/james/backends/rabbitmq/Constants.java  |    4 +
 .../java/org/apache/james/core/MaybeSender.java    |    3 +-
 .../destination/conf/blob.properties               |    9 +-
 .../destination/conf/blob.properties               |   16 +-
 .../destination/conf/blob.properties               |   18 +-
 .../cassandra/destination/conf/blob.properties     |    9 +-
 dockerfiles/site/website/compile.sh                |    4 +-
 docs/modules/servers/nav.adoc                      |   15 +
 docs/modules/servers/pages/distributed.adoc        |   18 +-
 .../servers/pages/distributed/architecture.adoc    |  244 ++
 .../servers/pages/distributed/configure/index.adoc |   27 +
 .../servers/pages/distributed/extend/index.adoc    |   18 +
 .../pages/distributed/extend/mail-processing.adoc  |    3 +
 .../distributed/extend/mailbox-listeners.adoc      |    3 +
 .../pages/distributed/extend/smtp-hooks.adoc       |    3 +
 .../pages/distributed/extend/webadmin-routes.adoc  |    3 +
 .../servers/pages/distributed/operate/cli.adoc     |  334 ++
 .../servers/pages/distributed/operate/guide.adoc   |  603 +++
 .../servers/pages/distributed/operate/index.adoc   |   22 +
 .../servers/pages/distributed/operate/logging.adoc |  108 +
 .../servers/pages/distributed/operate/metrics.adoc |   11 +
 .../pages/distributed/operate/webadmin.adoc        | 4047 ++++++++++++++++++++
 .../servers/pages/distributed/run-docker.adoc      |  120 +
 docs/modules/servers/pages/distributed/run.adoc    |  114 +
 .../org/apache/james/mailbox/model/MailboxACL.java |    3 +-
 .../apache/james/mailbox/model/MailboxPath.java    |    3 +-
 .../mailbox/model/MessageAttachmentMetadata.java   |    3 +-
 .../apache/james/mailbox/model/MessageResult.java  |    5 -
 .../james/mailbox/quota/MaxQuotaManager.java       |    6 +-
 .../apache/james/mailbox/MailboxManagerTest.java   |   31 -
 .../CassandraMailboxSessionMapperFactory.java      |    2 +-
 .../mailbox/cassandra/DeleteMessageListener.java   |   23 +-
 .../cassandra/mail/CassandraMessageDAO.java        |   79 +-
 .../cassandra/mail/MessageRepresentation.java      |   18 +-
 .../task/SolveMessageInconsistenciesService.java   |    3 +-
 .../quota/CassandraCurrentQuotaManager.java        |    4 +-
 .../cassandra/table/CassandraMessageV2Table.java   |    7 -
 .../cassandra/CassandraMailboxManagerTest.java     |   24 +
 .../mail/CassandraAnnotationMapperTest.java        |    6 +-
 .../CassandraMailboxMapperConcurrencyTest.java     |    2 +
 .../mail/CassandraMailboxMapperGenericTest.java    |    2 +
 .../cassandra/mail/CassandraMessageDAOTest.java    |    6 +-
 .../cassandra/mail/CassandraMessageMapperTest.java |    3 +-
 .../mailbox/cassandra/mail/utils/GuiceUtils.java   |   22 +-
 .../quota/CassandraPerUserMaxQuotaManagerTest.java |    6 +-
 .../ElasticSearchListeningMessageSearchIndex.java  |    7 +-
 .../elasticsearch/json/IndexableMessage.java       |    3 +-
 .../james/mailbox/elasticsearch/json/MimePart.java |    7 +-
 .../james/mailbox/events/EventDispatcher.java      |   28 +-
 .../james/mailbox/events/GroupRegistration.java    |   31 +-
 .../mailbox/events/KeyRegistrationHandler.java     |    3 +-
 .../james/mailbox/events/RabbitMQEventBus.java     |    2 +
 .../james/mailbox/events/RabbitMQEventBusTest.java |  107 +-
 .../model/openjpa/AbstractJPAMailboxMessage.java   |    6 -
 .../mailbox/maildir/mail/model/MaildirMessage.java |    5 -
 .../maildir/user/MaildirSubscriptionMapper.java    |    4 +-
 .../inmemory/mail/InMemoryMessageMapper.java       |    5 +-
 .../quota/InMemoryCurrentQuotaManager.java         |    3 +-
 .../james/vault/DeletedMessageVaultHook.java       |    1 +
 .../vault/blob/BlobStoreDeletedMessageVault.java   |    7 +-
 .../james/vault/DeletedMessageVaultHookTest.java   |    9 +-
 .../blob/BlobStoreDeletedMessageVaultTest.java     |   11 +-
 .../mailbox/store/search/PDFTextExtractorTest.java |   20 +-
 .../james/mailbox/spring/SpringMailboxTest.java    |   16 +-
 .../james/mailbox/store/MessageResultImpl.java     |    5 -
 .../james/mailbox/store/StoreMessageIdManager.java |    3 +-
 .../mailbox/store/StoreMessageResultIterator.java  |    5 -
 .../store/mail/model/DelegatingMailboxMessage.java |    5 -
 .../mailbox/store/mail/model/FlagsFactory.java     |    3 +-
 .../james/mailbox/store/mail/model/Message.java    |    2 -
 .../store/mail/model/impl/MessageParser.java       |    9 +-
 .../mail/model/impl/SimpleMailboxMessage.java      |   29 +-
 .../store/mail/model/impl/SimpleMessage.java       |    9 +-
 .../store/AbstractMessageIdManagerStorageTest.java |   32 -
 .../mailbox/tools/copier/MailboxCopierTest.java    |   21 +-
 .../tools/indexer/CassandraReIndexerImplTest.java  |    2 +-
 .../tools/jpa/migrator/JpaMigratorTest.java        |   20 +-
 .../api/src/main/java/org/apache/mailet/Mail.java  |    3 +-
 .../org/apache/mailet/base/GenericMailetTest.java  |   28 +-
 .../mailet/base/MailetPipelineLoggingTest.java     |   31 +-
 .../org/apache/mailet/base/MailetUtilTest.java     |  128 +-
 .../apache/mailet/base/MatcherInverterTest.java    |   15 +-
 .../org/apache/mailet/base/StringUtilsTest.java    |   31 +-
 .../james/transport/mailets/ICALToHeadersTest.java |   82 +-
 .../transport/mailets/ICalendarParserTest.java     |   84 +-
 .../mailets/model/ICALAttributeDTOTest.java        |   95 +-
 .../mailet/DefaultDescriptorsExtractorTest.java    |   20 +-
 .../james/transport/mailets/SetErrorMessage.java   |    4 +-
 .../apache/james/transport/matchers/AtMost.java    |  116 +
 .../utils/MailAddressCollectionReader.java         |    3 +-
 .../james/transport/matchers/AtMostTest.java       |  229 ++
 .../metrics/dropwizard/DropWizardTimeMetric.java   |    2 +-
 mpt/all/src/assemble/bin.xml                       |    7 -
 pom.xml                                            |   20 +-
 protocols/imap/pom.xml                             |    4 +
 .../imap/decode/parser/CreateCommandParser.java    |    4 +-
 .../james/imap/message/response/FetchResponse.java |    3 -
 .../imap/processor/AbstractMailboxProcessor.java   |   15 +-
 .../james/imap/processor/SearchProcessor.java      |   11 +-
 .../james/imap/processor/StoreProcessor.java       |   25 +-
 .../imap/processor/base/SelectedMailboxImpl.java   |  228 +-
 .../james/imap/processor/base/UidMsnConverter.java |   83 +-
 .../james/imap/processor/fetch/AddressImpl.java    |    4 -
 .../imap/processor/fetch/ContentBodyElement.java   |    2 -
 .../imap/processor/fetch/EnvelopeBuilder.java      |  129 +-
 .../james/imap/processor/fetch/EnvelopeImpl.java   |   11 -
 .../james/imap/processor/fetch/FetchProcessor.java |   11 +-
 .../imap/processor/fetch/FetchResponseBuilder.java |  116 +-
 .../imap/processor/fetch/HeaderBodyElement.java    |    1 -
 .../imap/processor/fetch/HeadersBodyElement.java   |    2 -
 .../imap/processor/fetch/MessageResultUtils.java   |   78 +-
 .../imap/processor/fetch/MimeBodyElement.java      |   10 +-
 .../processor/fetch/MimeDescriptorStructure.java   |   25 +-
 .../processor/fetch/PartialFetchBodyElement.java   |   15 +-
 .../processor/base/SelectedMailboxImplTest.java    |  180 +-
 .../imap/processor/base/UidMsnConverterTest.java   |   23 +-
 .../fetch/MailboxMessageResultUtilsTest.java       |   10 +-
 .../src/main/resources/META-INF/persistence.xml    |    2 +
 .../apache/james/blob/api/BlobStoreContract.java   |   35 +-
 .../blob/api/DeduplicationBlobStoreContract.java   |   82 +
 .../james/blob/api/DeleteBlobStoreContract.java    |    8 +-
 server/blob/blob-cassandra/pom.xml                 |    4 +
 .../james/blob/cassandra/CassandraBlobStore.java   |  137 -
 .../blob/cassandra/CassandraBlobStoreFactory.java} |   37 +-
 .../blob/cassandra/CassandraDumbBlobStore.java     |    4 +-
 ...reTest.java => CassandraBlobStoreContract.java} |   82 +-
 .../blob/cassandra/CassandraBlobStoreTest.java     |   99 +-
 .../CassandraPassTroughBlobStoreTest.java          |   75 +
 .../blob/cassandra/cache/CachedBlobStoreTest.java  |    5 +-
 .../main/java/org/apache/james/blob/api/Store.java |    9 +
 .../file/LocalFileBlobExportMechanismTest.java     |    8 +-
 .../{blob-deduplicating => blob-gc}/build.gradle   |    0
 .../doc/gc-properties.adoc                         |    0
 .../blob/{blob-deduplicating => blob-gc}/pom.xml   |   10 +-
 .../james/server/blob/deduplication/GC.scala       |    0
 .../server/blob/deduplication/GCJsonReporter.scala |    0
 .../src/test/resources/gcReport.json               |    0
 .../blob/deduplication/GCJsonReporterTest.scala    |    2 -
 .../blob/deduplication/GCPropertiesTest.scala      |    0
 .../james/server/blob/deduplication/State.scala    |    0
 server/blob/blob-memory/pom.xml                    |    4 +
 .../apache/james/blob/memory/MemoryBlobStore.java  |  116 -
 .../james/blob/memory/MemoryBlobStoreFactory.java} |   16 +-
 ...st.java => MemoryBlobStorePassThroughTest.java} |    8 +-
 .../james/blob/memory/MemoryBlobStoreTest.java     |    9 +-
 .../blob/objectstorage/ObjectStorageBlobStore.java |    5 +
 .../ObjectStorageBlobStoreAWSCryptoTest.java       |   16 +-
 .../ObjectStorageBlobStoreAWSNamespaceTest.java    |   16 +-
 ...tStorageBlobStoreAWSPrefixAndNamespaceTest.java |   16 +-
 .../ObjectStorageBlobStoreAWSPrefixTest.java       |   16 +-
 .../ObjectStorageBlobStoreAWSTest.java             |   16 +-
 .../objectstorage/ObjectStorageBlobStoreTest.java  |    3 +-
 .../build.gradle                                   |    0
 .../{blob-union => blob-storage-strategy}/pom.xml  |   45 +-
 .../blob/deduplication/BlobStoreFactory.java       |   72 +
 .../blob/deduplication/StorageStrategy.java}       |   16 +-
 .../deduplication/DeDuplicationBlobStore.scala     |  100 +
 .../blob/deduplication/PassThroughBlobStore.scala  |   78 +
 .../apache/james/blob/union/HybridBlobStore.java   |  239 --
 .../james/blob/union/HybridBlobStoreTest.java      |  537 ---
 .../james/blob/mail/MimeMessageStoreTest.java      |   38 +-
 server/blob/pom.xml                                |    4 +-
 server/container/cli-integration/pom.xml           |    6 -
 .../org/apache/james/modules/BlobMemoryModule.java |   17 +-
 .../ObjectStorageBlobConfiguration.java            |    3 +-
 .../objectstorage/aws/s3/DockerAwsS3TestRule.java  |    4 -
 .../objectstorage/swift/DockerSwiftTestRule.java   |    4 -
 server/container/guice/cassandra-guice/pom.xml     |    8 +-
 .../james/CassandraJamesServerConfiguration.java}  |   36 +-
 .../org/apache/james/CassandraJamesServerMain.java |   16 +-
 .../java/org/apache/james/SearchConfiguration.java |   82 +
 .../java/org/apache/james/SearchModuleChooser.java |  149 +
 .../CassandraBlobStoreDependenciesModule.java      |    7 +-
 .../modules/mailbox/CassandraBlobStoreModule.java  |   11 +-
 .../AuthenticatedCassandraJamesServerTest.java     |    9 +-
 .../java/org/apache/james/CacheSessionTest.java    |    7 +-
 .../org/apache/james/CassandraJamesServerTest.java |    5 +-
 .../apache/james/CassandraJmapJamesServerTest.java |    5 +-
 .../org/apache/james/CassandraJmapTestRule.java    |    4 +-
 .../CassandraMailRepositoryIntegrationTest.java    |    2 +-
 .../CassandraMessageIdManagerInjectionTest.java    |    2 +-
 .../org/apache/james/CassandraNodeConfTest.java    |    2 +-
 .../org/apache/james/CassandraWithTikaTest.java    |    3 +-
 .../james/DefaultCassandraJamesServerTest.java     |    5 +-
 .../java/org/apache/james/DockerCassandraRule.java |    4 -
 .../test/java/org/apache/james/ESReporterTest.java |    2 +-
 .../apache/james/JamesCapabilitiesServerTest.java  |    2 +-
 .../james/JamesServerWithRetryConnectionTest.java  |    2 +-
 ...esWithNonCompatibleElasticSearchServerTest.java |    2 +-
 .../org/apache/james/KeyspaceCreationTest.java     |    8 +-
 .../org/apache/james/SearchConfigurationTest.java  |   67 +
 .../TestingDistributedJamesServerBuilder.java}     |   39 +-
 .../apache/james/WithCassandraBlobStoreTest.java   |    2 +-
 .../CassandraSchemaVersionStartUpCheckTest.java    |    9 +-
 .../apache/james/CassandraLdapJamesServerMain.java |    8 +-
 .../apache/james/CassandraLdapJamesServerTest.java |    2 +-
 .../james/CassandraLdapJmapJamesServerTest.java    |    2 +-
 .../test/java/org/apache/james/DockerLdapRule.java |    4 -
 .../src/test/resources/usersrepository.xml         |   31 -
 .../guice/cassandra-rabbitmq-guice/pom.xml         |   14 +-
 .../james/CassandraRabbitMQJamesConfiguration.java |   28 +-
 .../james/CassandraRabbitMQJamesServerMain.java    |    7 +-
 .../modules/blobstore/BlobStoreChoosingModule.java |   23 -
 .../modules/blobstore/BlobStoreConfiguration.java  |   94 +-
 .../modules/blobstore/BlobStoreModulesChooser.java |   92 +-
 .../james/modules/blobstore/NoopDumbBlobStore.java |   83 +
 .../james/CassandraRabbitMQAwsS3JmapTestRule.java  |    6 +-
 .../james/CassandraRabbitMQJamesServerFixture.java |    6 +-
 .../james/CassandraRabbitMQSwiftJmapTestRule.java  |    6 +-
 .../java/org/apache/james/WithCacheExtension.java  |    6 +-
 .../org/apache/james/WithCassandraBlobStore.java   |    6 +-
 ...nsion.java => WithScanningSearchExtension.java} |   11 +-
 .../org/apache/james/WithScanningSearchTest.java}  |   11 +-
 .../apache/james/modules/DockerRabbitMQRule.java   |    4 -
 .../BlobStoreCacheModulesChooserTest.java          |   10 +-
 .../blobstore/BlobStoreConfigurationTest.java      |   96 +-
 .../blobstore/BlobStoreModulesChooserTest.java     |   78 +-
 .../CassandraRabbitMQLdapJamesServerMain.java      |    6 +-
 .../CassandraRabbitMQLdapJmapJamesServerTest.java  |   16 +-
 .../src/test/resources/usersrepository.xml         |   31 -
 .../java/org/apache/james/GuiceModuleTestRule.java |    8 +-
 .../org/apache/james/TempFilesystemTestRule.java   |   12 -
 .../src/main/resources/META-INF/persistence.xml    |    2 +
 server/container/guice/memory-guice/pom.xml        |    6 -
 .../org/apache/james/MemoryJamesServerTest.java    |    3 -
 .../java/org/apache/james/MemoryJmapTestRule.java  |    6 -
 server/container/guice/pom.xml                     |    6 +
 .../james/modules/protocols/ImapGuiceProbe.java    |   16 +-
 .../org/apache/james/jmap/draft/JMAPModule.java    |    3 +-
 .../james/jmap/rfc8621/RFC8621MethodsModule.java   |    5 +-
 .../webadmin-rabbitmq-mailqueue}/pom.xml           |   25 +-
 .../server/RabbitMailQueueRoutesModule.java}       |   18 +-
 .../RabbitMailQueueTaskSerializationModule.java    |   53 +
 server/container/guice/rabbitmq/pom.xml            |    8 +
 .../java/org/apache/james/util/OptionalUtils.java  |    3 +-
 .../java/org/apache/james/util/UnitParser.java     |    3 +-
 .../james/util/mime/MessageContentExtractor.java   |    5 +-
 .../CassandraRecipientRewriteTableDAO.java         |    4 +-
 .../MessageFastViewPrecomputedProperties.java      |    3 +-
 .../domainlist/lib/DomainListConfiguration.java    |    3 +-
 .../mailets/RemoteDeliveryErrorHandlingTest.java   |   56 +-
 .../mailetcontainer/impl/JamesMailetContext.java   |    3 +-
 .../james/transport/mailets/SpamAssassin.java      |    3 +-
 .../transport/mailets/jsieve/DiscardAction.java    |    4 +-
 .../transport/mailets/remote/delivery/Bouncer.java |    2 +
 .../mailets/remote/delivery/DeliveryRunnable.java  |   11 +-
 .../matchers/IsRemoteDeliveryPermanentError.java}  |   43 +-
 .../matchers/IsRemoteDeliveryTemporaryError.java}  |   43 +-
 .../matchers/RemoteDeliveryFailedWithSMTPCode.java |   36 +-
 .../remote/delivery/DeliveryRunnableTest.java      |    7 +
 .../IsRemoteDeliveryPermanentErrorTest.java        |  102 +
 .../IsRemoteDeliveryTemporaryErrorTest.java        |  101 +
 .../RemoteDeliveryFailedWithSMTPCodeTest.java      |  173 +
 .../mailrepository/MailRepositoryContract.java     |    2 +-
 .../cassandra/CassandraMailRepository.java         |   35 +-
 .../cassandra/CassandraMailRepositoryTest.java     |  104 +-
 ...aMailRepositoryWithFakeImplementationsTest.java |  176 +-
 .../jmap/cassandra/CassandraImapErrorTest.java     |    5 +-
 .../jmap/cassandra/CassandraSendMDNMethodTest.java |    5 +-
 .../CassandraSpamAssassinContractTest.java         |    5 +-
 .../jmap/cassandra/cucumber/CassandraStepdefs.java |    6 +-
 .../cucumber/util/ObjectFromStringExtractor.java   |    3 +-
 .../memory/MemoryGetMessageListMethodTest.java     |    5 +-
 .../rabbitmq/RabbitMQAwsS3SendMDNMethodTest.java   |    7 +-
 .../RabbitMQAwsS3SpamAssassinContractTest.java     |    7 +-
 .../cucumber/awss3/RabbitMQAwsS3Stepdefs.java      |   13 +-
 .../jmap/draft/methods/MIMEMessageConverter.java   |    3 +-
 .../methods/SetMailboxesDestructionProcessor.java  |    3 +-
 .../draft/methods/SetMailboxesUpdateProcessor.java |    4 +-
 .../org/apache/james/jmap/draft/model/Emailer.java |    4 +-
 .../jmap/draft/model/GetMailboxesRequest.java      |    3 +-
 .../james/jmap/draft/model/mailbox/Rights.java     |    3 +-
 .../model/message/view/MessageFullViewFactory.java |    6 +-
 .../model/message/view/MessageViewFactory.java     |    3 +-
 .../jmap/draft/utils/JsoupHtmlTextExtractor.java   |    5 +-
 .../jmap/event/PropagateLookupRightListener.java   |    3 +-
 .../jmap/http/DefaultMailboxesProvisionerTest.java |    3 +-
 .../distributed/DistributedAuthenticationTest.java |    7 +-
 .../distributed/DistributedEchoMethodTest.java     |    7 +-
 .../DistributedMailboxGetMethodTest.java           |    5 +-
 ...dTest.java => DistributedProvisioningTest.java} |   10 +-
 ...dTest.java => DistributedSessionRouteTest.java} |    9 +-
 .../jmap/rfc8621/contract/EchoMethodContract.scala |    4 +-
 .../james/jmap/rfc8621/contract/Fixture.scala      |   14 +
 .../contract/MailboxGetMethodContract.scala        |  560 ++-
 .../rfc8621/contract/ProvisioningContract.scala    |   83 +
 .../rfc8621/contract/SessionRoutesContract.scala}  |  132 +-
 .../rfc8621/memory/MemoryProvisioningTest.java}    |   22 +-
 .../rfc8621/memory/MemorySessionRouteTest.java}    |   22 +-
 server/protocols/jmap-rfc-8621/doc/README.md       |   17 +
 .../protocols/jmap-rfc-8621/doc/specs/LICENSE.md   |  190 +
 server/protocols/jmap-rfc-8621/doc/specs/README.md |   28 +
 .../jmap-rfc-8621/doc/specs/rfc/src/jmap.mdown     |   55 +
 .../jmap-rfc-8621/doc/specs/rfc/src/mail.mdown     |   59 +
 .../jmap-rfc-8621/doc/specs/spec/jmap/api.mdown    | 1161 ++++++
 .../jmap-rfc-8621/doc/specs/spec/jmap/binary.mdown |   97 +
 .../doc/specs/spec/jmap/ianaconsiderations.mdown   |  189 +
 .../jmap-rfc-8621/doc/specs/spec/jmap/intro.mdown  |  133 +
 .../jmap-rfc-8621/doc/specs/spec/jmap/push.mdown   |  250 ++
 .../specs/spec/jmap/securityconsiderations.mdown   |   80 +
 .../doc/specs/spec/jmap/session.mdown              |  213 ++
 .../doc/specs/spec/mail/ianaconsiderations.mdown   |  421 ++
 .../doc/specs/spec/mail/identity.mdown             |   89 +
 .../jmap-rfc-8621/doc/specs/spec/mail/intro.mdown  |  154 +
 .../doc/specs/spec/mail/mailbox.mdown              |  310 ++
 .../doc/specs/spec/mail/message.mdown              | 1319 +++++++
 .../doc/specs/spec/mail/messagesubmission.mdown    |  304 ++
 .../doc/specs/spec/mail/searchsnippet.mdown        |   98 +
 .../specs/spec/mail/securityconsiderations.mdown   |   96 +
 .../jmap-rfc-8621/doc/specs/spec/mail/thread.mdown |   60 +
 .../doc/specs/spec/mail/vacationresponse.mdown     |   38 +
 .../james/jmap/http/MailboxesProvisioner.scala     |   81 +
 .../org/apache/james/jmap/http/SessionRoutes.scala |    5 +-
 .../apache/james/jmap/http/UserProvisioning.scala  |   64 +
 .../org/apache/james/jmap/json/Serializer.scala    |   35 +-
 .../scala/org/apache/james/jmap/mail/Mailbox.scala |   25 +-
 .../org/apache/james/jmap/mail/MailboxGet.scala    |    5 +-
 .../james/jmap/method/MailboxGetMethod.scala       |   34 +-
 .../org/apache/james/jmap/model/Capabilities.scala |   13 +-
 .../org/apache/james/jmap/model/Capability.scala   |   16 +-
 .../org/apache/james/jmap/model/Invocation.scala   |   20 +
 .../apache/james/jmap/model/ProblemDetails.scala}  |   29 +-
 .../james/jmap/model/RequestLevelErrorType.scala}  |   29 +-
 .../org/apache/james/jmap/model/StatusCode.scala}  |   15 +-
 .../apache/james/jmap/routes/JMAPApiRoutes.scala   |   81 +-
 .../james/jmap/http/MailboxesProvisionerTest.scala |  103 +
 .../apache/james/jmap/http/SessionRoutesTest.scala |   12 +-
 .../james/jmap/http/UserProvisioningTest.scala     |  103 +
 .../scala/org/apache/james/jmap/json/Fixture.scala |   63 +-
 .../jmap/json/MailboxGetSerializationTest.scala    |    4 +-
 .../james/jmap/json/MailboxSerializationTest.scala |    3 +-
 .../james/jmap/json/SessionSerializationTest.scala |    6 +-
 .../james/jmap/routes/JMAPApiRoutesTest.scala      |   96 +-
 .../rabbitmq/ConsistencyTasksIntegrationTest.java  |    7 +-
 .../rabbitmq/FixingGhostMailboxTest.java           |   10 +-
 .../rabbitmq/RabbitMQAuthorizedEndpointsTest.java  |    7 +-
 .../RabbitMQEventDeadLettersIntegrationTest.java   |    7 +-
 ...stViewProjectionHealthCheckIntegrationTest.java |    7 +-
 .../rabbitmq/RabbitMQForwardIntegrationTest.java   |    7 +-
 .../rabbitmq/RabbitMQJmapExtension.java            |    7 +-
 .../rabbitmq/RabbitMQJwtFilterIntegrationTest.java |    7 +-
 ...RabbitMQReindexingWithEventDeadLettersTest.java |    7 +-
 .../RabbitMQWebAdminServerIntegrationTest.java     |    7 +-
 ...dminServerTaskSerializationIntegrationTest.java |   30 +-
 ...RabbitMQDeletedMessageVaultIntegrationTest.java |   20 +-
 ...LinshareBlobExportMechanismIntegrationTest.java |   10 +-
 .../webadmin-integration-test-common/pom.xml       |   10 -
 .../vault/DeletedMessageVaultIntegrationTest.java  |    2 +-
 server/protocols/webadmin/pom.xml                  |    1 +
 .../apache/james/webadmin/routes/TasksRoutes.java  |    3 +-
 .../jmap/MessageFastViewProjectionCorrector.java   |    7 +-
 .../routes/DeletedMessagesVaultRoutesTest.java     |   33 +-
 .../james/webadmin/service/ExportServiceTest.java  |    5 -
 .../webadmin/service/ExportServiceTestSystem.java  |    8 +-
 .../protocols/webadmin/webadmin-mailqueue/pom.xml  |    2 +-
 .../james/webadmin/dto/MailQueueItemDTOTest.java   |    3 +-
 .../service/MailRepositoryStoreService.java        |    7 +-
 .../pom.xml                                        |   18 +-
 .../webadmin/routes/RabbitMQMailQueuesRoutes.java  |  174 +
 ...ProcessedMailsTaskAdditionalInformationDTO.java |   90 +
 .../service/RepublishNotProcessedMailsTaskDTO.java |   85 +
 .../service/RepublishNotprocessedMailsTask.java    |  107 +
 .../routes/RabbitMQMailQueuesRoutesTest.java       |  144 +
 .../RepublishNotprocessedMailsTaskTest.java        |  108 +
 .../james/queue/api/ManageableMailQueue.java       |   18 +-
 .../james/queue/file/FileCacheableMailQueue.java   |    2 +-
 .../james/queue/jms/JMSCacheableMailQueue.java     |    2 +-
 .../james/queue/memory/MemoryMailQueueFactory.java |    4 +-
 .../org/apache/james/queue/rabbitmq/Dequeuer.java  |    8 +-
 .../org/apache/james/queue/rabbitmq/Enqueuer.java  |    8 +
 .../apache/james/queue/rabbitmq/MailLoader.java    |    5 +-
 .../james/queue/rabbitmq/MailWithEnqueueId.java    |    9 +-
 .../james/queue/rabbitmq/RabbitMQMailQueue.java    |   17 +-
 .../queue/rabbitmq/RabbitMQMailQueueFactory.java   |    4 +-
 .../queue/rabbitmq/view/api/DeleteCondition.java   |   13 +-
 .../queue/rabbitmq/view/api/MailQueueView.java     |    9 +-
 .../view/cassandra/CassandraMailQueueBrowser.java  |   64 +-
 .../view/cassandra/CassandraMailQueueView.java     |   49 +-
 .../RabbitMQMailQueueConfigurationChangeTest.java  |    8 +-
 .../queue/rabbitmq/RabbitMQMailQueueTest.java      |  335 +-
 .../rabbitmq/RabbitMqMailQueueFactoryTest.java     |    3 +-
 .../rabbitmq/view/api/DeleteConditionTest.java     |    6 +-
 .../CassandraMailQueueViewTestFactory.java         |    4 +-
 .../james/task/FailsDeserializationTask.java}      |   26 +-
 .../distributed/RabbitMQTerminationSubscriber.java |    6 +-
 .../distributed/RabbitMQWorkQueue.java             |   19 +-
 .../distributed/DistributedTaskManagerTest.java    |  197 +-
 .../RabbitMQTerminationSubscriberTest.java         |   54 +-
 .../distributed/RabbitMQWorkQueueTest.java         |    5 +-
 .../json/dto/FailsDeserializationTaskDTO.java}     |   19 +-
 .../server/task/json/dto/TestTaskDTOModules.java   |    9 +
 .../MemoryTerminationSubscriberTest.java           |   10 +
 .../apache/james/utils/DiscreteDistribution.java   |    3 +-
 .../james/utils/DiscreteDistributionTest.java      |   10 +-
 src/adr/0040-quality-levels-definitions.md         |   62 +
 .../_posts/2020-07-16-james-3.5.0.markdown         |  107 +
 src/homepage/howTo/mail-processing.html            |    6 +-
 src/homepage/index.html                            |   14 +-
 src/site/markdown/server/manage-webadmin.md        |   37 +-
 src/site/site.xml                                  |    1 -
 src/site/xdoc/download.xml                         |   94 +-
 src/site/xdoc/server/config-blobstore.xml          |   18 +-
 src/site/xdoc/server/config-elasticsearch.xml      |   10 +
 src/site/xdoc/server/config-jmap.xml               |   23 +-
 src/site/xdoc/server/features.xml                  |    4 +-
 src/site/xdoc/server/index.xml                     |    8 +-
 .../linshare/LinshareBlobExportMechanismTest.java  |   11 +-
 upgrade-instructions.md                            |   64 +-
 420 files changed, 18313 insertions(+), 3931 deletions(-)
 create mode 100644 docs/modules/servers/pages/distributed/architecture.adoc
 create mode 100644 docs/modules/servers/pages/distributed/configure/index.adoc
 create mode 100644 docs/modules/servers/pages/distributed/extend/index.adoc
 create mode 100644 docs/modules/servers/pages/distributed/extend/mail-processing.adoc
 create mode 100644 docs/modules/servers/pages/distributed/extend/mailbox-listeners.adoc
 create mode 100644 docs/modules/servers/pages/distributed/extend/smtp-hooks.adoc
 create mode 100644 docs/modules/servers/pages/distributed/extend/webadmin-routes.adoc
 create mode 100644 docs/modules/servers/pages/distributed/operate/cli.adoc
 create mode 100644 docs/modules/servers/pages/distributed/operate/guide.adoc
 create mode 100644 docs/modules/servers/pages/distributed/operate/index.adoc
 create mode 100644 docs/modules/servers/pages/distributed/operate/logging.adoc
 create mode 100644 docs/modules/servers/pages/distributed/operate/metrics.adoc
 create mode 100644 docs/modules/servers/pages/distributed/operate/webadmin.adoc
 create mode 100644 docs/modules/servers/pages/distributed/run-docker.adoc
 create mode 100644 docs/modules/servers/pages/distributed/run.adoc
 create mode 100644 mailet/standard/src/main/java/org/apache/james/transport/matchers/AtMost.java
 create mode 100644 mailet/standard/src/test/java/org/apache/james/transport/matchers/AtMostTest.java
 create mode 100644 server/blob/blob-api/src/test/java/org/apache/james/blob/api/DeduplicationBlobStoreContract.java
 delete mode 100644 server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraBlobStore.java
 copy server/blob/{blob-memory/src/test/java/org/apache/james/blob/memory/MemoryBlobStoreTest.java => blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraBlobStoreFactory.java} (56%)
 copy server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/{CassandraBlobStoreTest.java => CassandraBlobStoreContract.java} (51%)
 create mode 100644 server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraPassTroughBlobStoreTest.java
 rename server/blob/{blob-deduplicating => blob-gc}/build.gradle (100%)
 rename server/blob/{blob-deduplicating => blob-gc}/doc/gc-properties.adoc (100%)
 rename server/blob/{blob-deduplicating => blob-gc}/pom.xml (92%)
 rename server/blob/{blob-deduplicating => blob-gc}/src/main/scala/org/apache/james/server/blob/deduplication/GC.scala (100%)
 rename server/blob/{blob-deduplicating => blob-gc}/src/main/scala/org/apache/james/server/blob/deduplication/GCJsonReporter.scala (100%)
 rename server/blob/{blob-deduplicating => blob-gc}/src/test/resources/gcReport.json (100%)
 rename server/blob/{blob-deduplicating => blob-gc}/src/test/scala/org/apache/james/server/blob/deduplication/GCJsonReporterTest.scala (99%)
 rename server/blob/{blob-deduplicating => blob-gc}/src/test/scala/org/apache/james/server/blob/deduplication/GCPropertiesTest.scala (100%)
 rename server/blob/{blob-deduplicating => blob-gc}/src/test/scala/org/apache/james/server/blob/deduplication/State.scala (100%)
 delete mode 100644 server/blob/blob-memory/src/main/java/org/apache/james/blob/memory/MemoryBlobStore.java
 copy server/{container/guice/guice-common/src/test/java/org/apache/james/GuiceModuleTestRule.java => blob/blob-memory/src/main/java/org/apache/james/blob/memory/MemoryBlobStoreFactory.java} (79%)
 copy server/blob/blob-memory/src/test/java/org/apache/james/blob/memory/{MemoryBlobStoreTest.java => MemoryBlobStorePassThroughTest.java} (84%)
 rename server/blob/{blob-union => blob-storage-strategy}/build.gradle (100%)
 rename server/blob/{blob-union => blob-storage-strategy}/pom.xml (64%)
 create mode 100644 server/blob/blob-storage-strategy/src/main/java/org/apache/james/server/blob/deduplication/BlobStoreFactory.java
 copy server/{container/guice/guice-common/src/test/java/org/apache/james/GuiceModuleTestRule.java => blob/blob-storage-strategy/src/main/java/org/apache/james/server/blob/deduplication/StorageStrategy.java} (85%)
 create mode 100644 server/blob/blob-storage-strategy/src/main/scala/org/apache/james/server/blob/deduplication/DeDuplicationBlobStore.scala
 create mode 100644 server/blob/blob-storage-strategy/src/main/scala/org/apache/james/server/blob/deduplication/PassThroughBlobStore.scala
 delete mode 100644 server/blob/blob-union/src/main/java/org/apache/james/blob/union/HybridBlobStore.java
 delete mode 100644 server/blob/blob-union/src/test/java/org/apache/james/blob/union/HybridBlobStoreTest.java
 copy server/container/guice/{cassandra-rabbitmq-guice/src/main/java/org/apache/james/CassandraRabbitMQJamesConfiguration.java => cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerConfiguration.java} (74%)
 create mode 100644 server/container/guice/cassandra-guice/src/main/java/org/apache/james/SearchConfiguration.java
 create mode 100644 server/container/guice/cassandra-guice/src/main/java/org/apache/james/SearchModuleChooser.java
 create mode 100644 server/container/guice/cassandra-guice/src/test/java/org/apache/james/SearchConfigurationTest.java
 copy server/container/guice/{guice-common/src/test/java/org/apache/james/TempFilesystemTestRule.java => cassandra-guice/src/test/java/org/apache/james/TestingDistributedJamesServerBuilder.java} (58%)
 delete mode 100644 server/container/guice/cassandra-ldap-guice/src/test/resources/usersrepository.xml
 create mode 100644 server/container/guice/cassandra-rabbitmq-guice/src/main/java/org/apache/james/modules/blobstore/NoopDumbBlobStore.java
 copy server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/{WithCacheExtension.java => WithScanningSearchExtension.java} (89%)
 copy server/container/guice/{guice-common/src/test/java/org/apache/james/GuiceModuleTestRule.java => cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithScanningSearchTest.java} (81%)
 delete mode 100644 server/container/guice/cassandra-rabbitmq-ldap-guice/src/test/resources/usersrepository.xml
 copy server/container/guice/{rabbitmq => protocols/webadmin-rabbitmq-mailqueue}/pom.xml (73%)
 copy server/container/guice/{cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraBlobStoreModule.java => protocols/webadmin-rabbitmq-mailqueue/src/main/java/org/apache/james/modules/server/RabbitMailQueueRoutesModule.java} (71%)
 create mode 100644 server/container/guice/protocols/webadmin-rabbitmq-mailqueue/src/main/java/org/apache/james/modules/server/RabbitMailQueueTaskSerializationModule.java
 copy server/{protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/util/ObjectFromStringExtractor.java => mailet/mailets/src/main/java/org/apache/james/transport/matchers/IsRemoteDeliveryPermanentError.java} (56%)
 copy server/{protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/util/ObjectFromStringExtractor.java => mailet/mailets/src/main/java/org/apache/james/transport/matchers/IsRemoteDeliveryTemporaryError.java} (54%)
 copy mailet/standard/src/main/java/org/apache/james/transport/mailets/SetErrorMessage.java => server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/RemoteDeliveryFailedWithSMTPCode.java (55%)
 create mode 100644 server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/IsRemoteDeliveryPermanentErrorTest.java
 create mode 100644 server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/IsRemoteDeliveryTemporaryErrorTest.java
 create mode 100644 server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/RemoteDeliveryFailedWithSMTPCodeTest.java
 copy server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/{DistributedEchoMethodTest.java => DistributedProvisioningTest.java} (89%)
 copy server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/{DistributedEchoMethodTest.java => DistributedSessionRouteTest.java} (87%)
 create mode 100644 server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/ProvisioningContract.scala
 copy server/protocols/{jmap-rfc-8621/src/test/scala/org/apache/james/jmap/http/SessionRoutesTest.scala => jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/SessionRoutesContract.scala} (64%)
 copy server/{container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraJmapJamesServerTest.java => protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryProvisioningTest.java} (68%)
 copy server/{container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraJmapJamesServerTest.java => protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemorySessionRouteTest.java} (68%)
 create mode 100644 server/protocols/jmap-rfc-8621/doc/README.md
 create mode 100644 server/protocols/jmap-rfc-8621/doc/specs/LICENSE.md
 create mode 100644 server/protocols/jmap-rfc-8621/doc/specs/README.md
 create mode 100644 server/protocols/jmap-rfc-8621/doc/specs/rfc/src/jmap.mdown
 create mode 100644 server/protocols/jmap-rfc-8621/doc/specs/rfc/src/mail.mdown
 create mode 100644 server/protocols/jmap-rfc-8621/doc/specs/spec/jmap/api.mdown
 create mode 100644 server/protocols/jmap-rfc-8621/doc/specs/spec/jmap/binary.mdown
 create mode 100644 server/protocols/jmap-rfc-8621/doc/specs/spec/jmap/ianaconsiderations.mdown
 create mode 100644 server/protocols/jmap-rfc-8621/doc/specs/spec/jmap/intro.mdown
 create mode 100644 server/protocols/jmap-rfc-8621/doc/specs/spec/jmap/push.mdown
 create mode 100644 server/protocols/jmap-rfc-8621/doc/specs/spec/jmap/securityconsiderations.mdown
 create mode 100644 server/protocols/jmap-rfc-8621/doc/specs/spec/jmap/session.mdown
 create mode 100644 server/protocols/jmap-rfc-8621/doc/specs/spec/mail/ianaconsiderations.mdown
 create mode 100644 server/protocols/jmap-rfc-8621/doc/specs/spec/mail/identity.mdown
 create mode 100644 server/protocols/jmap-rfc-8621/doc/specs/spec/mail/intro.mdown
 create mode 100644 server/protocols/jmap-rfc-8621/doc/specs/spec/mail/mailbox.mdown
 create mode 100644 server/protocols/jmap-rfc-8621/doc/specs/spec/mail/message.mdown
 create mode 100644 server/protocols/jmap-rfc-8621/doc/specs/spec/mail/messagesubmission.mdown
 create mode 100644 server/protocols/jmap-rfc-8621/doc/specs/spec/mail/searchsnippet.mdown
 create mode 100644 server/protocols/jmap-rfc-8621/doc/specs/spec/mail/securityconsiderations.mdown
 create mode 100644 server/protocols/jmap-rfc-8621/doc/specs/spec/mail/thread.mdown
 create mode 100644 server/protocols/jmap-rfc-8621/doc/specs/spec/mail/vacationresponse.mdown
 create mode 100644 server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/http/MailboxesProvisioner.scala
 create mode 100644 server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/http/UserProvisioning.scala
 copy server/{queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/MailWithEnqueueId.java => protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/model/ProblemDetails.scala} (73%)
 copy server/{queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/MailWithEnqueueId.java => protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/model/RequestLevelErrorType.scala} (68%)
 copy server/{container/guice/guice-common/src/test/java/org/apache/james/GuiceModuleTestRule.java => protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/model/StatusCode.scala} (85%)
 create mode 100644 server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/http/MailboxesProvisionerTest.scala
 create mode 100644 server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/http/UserProvisioningTest.scala
 copy server/protocols/webadmin/{webadmin-mailqueue => webadmin-rabbitmq}/pom.xml (88%)
 create mode 100644 server/protocols/webadmin/webadmin-rabbitmq/src/main/java/org/apache/james/webadmin/routes/RabbitMQMailQueuesRoutes.java
 create mode 100644 server/protocols/webadmin/webadmin-rabbitmq/src/main/java/org/apache/james/webadmin/service/RepublishNotProcessedMailsTaskAdditionalInformationDTO.java
 create mode 100644 server/protocols/webadmin/webadmin-rabbitmq/src/main/java/org/apache/james/webadmin/service/RepublishNotProcessedMailsTaskDTO.java
 create mode 100644 server/protocols/webadmin/webadmin-rabbitmq/src/main/java/org/apache/james/webadmin/service/RepublishNotprocessedMailsTask.java
 create mode 100644 server/protocols/webadmin/webadmin-rabbitmq/src/test/java/org/apache/james/webadmin/routes/RabbitMQMailQueuesRoutesTest.java
 create mode 100644 server/protocols/webadmin/webadmin-rabbitmq/src/test/java/org/apache/james/webadmin/service/RepublishNotprocessedMailsTaskTest.java
 copy server/{queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/MailWithEnqueueId.java => task/task-api/src/test/java/org/apache/james/task/FailsDeserializationTask.java} (72%)
 copy server/{container/guice/guice-common/src/test/java/org/apache/james/GuiceModuleTestRule.java => task/task-json/src/test/java/org/apache/james/server/task/json/dto/FailsDeserializationTaskDTO.java} (76%)
 create mode 100644 src/adr/0040-quality-levels-definitions.md
 create mode 100644 src/homepage/_posts/2020-07-16-james-3.5.0.markdown


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


[james-project] 01/01: Merge branch 'master' into JAMES-3260-gradle-poc

Posted by ie...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ieugen pushed a commit to branch JAMES-3260-gradle-poc
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 3017d55642ec48171e6190aad06a7bfbfd74b400
Merge: c40c389 30a99e3
Author: Eugen Stan <ie...@apache.org>
AuthorDate: Thu Jul 30 19:22:17 2020 +0300

    Merge branch 'master' into JAMES-3260-gradle-poc

 CHANGELOG.md                                       |   76 +-
 JenkinsfileStressTests.groovy                      |    4 +-
 README.adoc                                        |    8 +-
 .../cassandra/init/CassandraTableManager.java      |    5 +-
 .../backends/cassandra/init/ClusterFactory.java    |   11 +-
 .../cassandra/init/ResilientClusterProvider.java   |    9 +-
 .../CassandraConsistenciesConfiguration.java       |    2 +
 .../james/backends/cassandra/CassandraCluster.java |    3 +-
 .../james/backends/cassandra/DockerCassandra.java  |   20 +-
 .../cassandra/init/ClusterFactoryTest.java         |    7 +-
 .../init/ResilientClusterProviderTest.java         |    8 +-
 .../SessionWithInitializedTablesFactoryTest.java   |    3 +-
 .../apache/james/backends/rabbitmq/Constants.java  |    4 +
 .../java/org/apache/james/core/MaybeSender.java    |    3 +-
 .../destination/conf/blob.properties               |    9 +-
 .../destination/conf/blob.properties               |   16 +-
 .../destination/conf/blob.properties               |   18 +-
 .../cassandra/destination/conf/blob.properties     |    9 +-
 dockerfiles/site/website/compile.sh                |    4 +-
 docs/modules/servers/nav.adoc                      |   15 +
 docs/modules/servers/pages/distributed.adoc        |   18 +-
 .../servers/pages/distributed/architecture.adoc    |  244 ++
 .../servers/pages/distributed/configure/index.adoc |   27 +
 .../servers/pages/distributed/extend/index.adoc    |   18 +
 .../pages/distributed/extend/mail-processing.adoc  |    3 +
 .../distributed/extend/mailbox-listeners.adoc      |    3 +
 .../pages/distributed/extend/smtp-hooks.adoc       |    3 +
 .../pages/distributed/extend/webadmin-routes.adoc  |    3 +
 .../servers/pages/distributed/operate/cli.adoc     |  334 ++
 .../servers/pages/distributed/operate/guide.adoc   |  603 +++
 .../servers/pages/distributed/operate/index.adoc   |   22 +
 .../servers/pages/distributed/operate/logging.adoc |  108 +
 .../servers/pages/distributed/operate/metrics.adoc |   11 +
 .../pages/distributed/operate/webadmin.adoc        | 4047 ++++++++++++++++++++
 .../servers/pages/distributed/run-docker.adoc      |  120 +
 docs/modules/servers/pages/distributed/run.adoc    |  114 +
 .../org/apache/james/mailbox/model/MailboxACL.java |    3 +-
 .../apache/james/mailbox/model/MailboxPath.java    |    3 +-
 .../mailbox/model/MessageAttachmentMetadata.java   |    3 +-
 .../apache/james/mailbox/model/MessageResult.java  |    5 -
 .../james/mailbox/quota/MaxQuotaManager.java       |    6 +-
 .../apache/james/mailbox/MailboxManagerTest.java   |   31 -
 .../CassandraMailboxSessionMapperFactory.java      |    2 +-
 .../mailbox/cassandra/DeleteMessageListener.java   |   23 +-
 .../cassandra/mail/CassandraMessageDAO.java        |   79 +-
 .../cassandra/mail/MessageRepresentation.java      |   18 +-
 .../task/SolveMessageInconsistenciesService.java   |    3 +-
 .../quota/CassandraCurrentQuotaManager.java        |    4 +-
 .../cassandra/table/CassandraMessageV2Table.java   |    7 -
 .../cassandra/CassandraMailboxManagerTest.java     |   24 +
 .../mail/CassandraAnnotationMapperTest.java        |    6 +-
 .../CassandraMailboxMapperConcurrencyTest.java     |    2 +
 .../mail/CassandraMailboxMapperGenericTest.java    |    2 +
 .../cassandra/mail/CassandraMessageDAOTest.java    |    6 +-
 .../cassandra/mail/CassandraMessageMapperTest.java |    3 +-
 .../mailbox/cassandra/mail/utils/GuiceUtils.java   |   22 +-
 .../quota/CassandraPerUserMaxQuotaManagerTest.java |    6 +-
 .../ElasticSearchListeningMessageSearchIndex.java  |    7 +-
 .../elasticsearch/json/IndexableMessage.java       |    3 +-
 .../james/mailbox/elasticsearch/json/MimePart.java |    7 +-
 .../james/mailbox/events/EventDispatcher.java      |   28 +-
 .../james/mailbox/events/GroupRegistration.java    |   31 +-
 .../mailbox/events/KeyRegistrationHandler.java     |    3 +-
 .../james/mailbox/events/RabbitMQEventBus.java     |    2 +
 .../james/mailbox/events/RabbitMQEventBusTest.java |  107 +-
 .../model/openjpa/AbstractJPAMailboxMessage.java   |    6 -
 .../mailbox/maildir/mail/model/MaildirMessage.java |    5 -
 .../maildir/user/MaildirSubscriptionMapper.java    |    4 +-
 .../inmemory/mail/InMemoryMessageMapper.java       |    5 +-
 .../quota/InMemoryCurrentQuotaManager.java         |    3 +-
 .../james/vault/DeletedMessageVaultHook.java       |    1 +
 .../vault/blob/BlobStoreDeletedMessageVault.java   |    7 +-
 .../james/vault/DeletedMessageVaultHookTest.java   |    9 +-
 .../blob/BlobStoreDeletedMessageVaultTest.java     |   11 +-
 .../mailbox/store/search/PDFTextExtractorTest.java |   20 +-
 .../james/mailbox/spring/SpringMailboxTest.java    |   16 +-
 .../james/mailbox/store/MessageResultImpl.java     |    5 -
 .../james/mailbox/store/StoreMessageIdManager.java |    3 +-
 .../mailbox/store/StoreMessageResultIterator.java  |    5 -
 .../store/mail/model/DelegatingMailboxMessage.java |    5 -
 .../mailbox/store/mail/model/FlagsFactory.java     |    3 +-
 .../james/mailbox/store/mail/model/Message.java    |    2 -
 .../store/mail/model/impl/MessageParser.java       |    9 +-
 .../mail/model/impl/SimpleMailboxMessage.java      |   29 +-
 .../store/mail/model/impl/SimpleMessage.java       |    9 +-
 .../store/AbstractMessageIdManagerStorageTest.java |   32 -
 .../mailbox/tools/copier/MailboxCopierTest.java    |   21 +-
 .../tools/indexer/CassandraReIndexerImplTest.java  |    2 +-
 .../tools/jpa/migrator/JpaMigratorTest.java        |   20 +-
 .../api/src/main/java/org/apache/mailet/Mail.java  |    3 +-
 .../org/apache/mailet/base/GenericMailetTest.java  |   28 +-
 .../mailet/base/MailetPipelineLoggingTest.java     |   31 +-
 .../org/apache/mailet/base/MailetUtilTest.java     |  128 +-
 .../apache/mailet/base/MatcherInverterTest.java    |   15 +-
 .../org/apache/mailet/base/StringUtilsTest.java    |   31 +-
 .../james/transport/mailets/ICALToHeadersTest.java |   82 +-
 .../transport/mailets/ICalendarParserTest.java     |   84 +-
 .../mailets/model/ICALAttributeDTOTest.java        |   95 +-
 .../mailet/DefaultDescriptorsExtractorTest.java    |   20 +-
 .../james/transport/mailets/SetErrorMessage.java   |    4 +-
 .../apache/james/transport/matchers/AtMost.java    |  116 +
 .../utils/MailAddressCollectionReader.java         |    3 +-
 .../james/transport/matchers/AtMostTest.java       |  229 ++
 .../metrics/dropwizard/DropWizardTimeMetric.java   |    2 +-
 mpt/all/src/assemble/bin.xml                       |    7 -
 pom.xml                                            |   20 +-
 protocols/imap/pom.xml                             |    4 +
 .../imap/decode/parser/CreateCommandParser.java    |    4 +-
 .../james/imap/message/response/FetchResponse.java |    3 -
 .../imap/processor/AbstractMailboxProcessor.java   |   15 +-
 .../james/imap/processor/SearchProcessor.java      |   11 +-
 .../james/imap/processor/StoreProcessor.java       |   25 +-
 .../imap/processor/base/SelectedMailboxImpl.java   |  228 +-
 .../james/imap/processor/base/UidMsnConverter.java |   83 +-
 .../james/imap/processor/fetch/AddressImpl.java    |    4 -
 .../imap/processor/fetch/ContentBodyElement.java   |    2 -
 .../imap/processor/fetch/EnvelopeBuilder.java      |  129 +-
 .../james/imap/processor/fetch/EnvelopeImpl.java   |   11 -
 .../james/imap/processor/fetch/FetchProcessor.java |   11 +-
 .../imap/processor/fetch/FetchResponseBuilder.java |  116 +-
 .../imap/processor/fetch/HeaderBodyElement.java    |    1 -
 .../imap/processor/fetch/HeadersBodyElement.java   |    2 -
 .../imap/processor/fetch/MessageResultUtils.java   |   78 +-
 .../imap/processor/fetch/MimeBodyElement.java      |   10 +-
 .../processor/fetch/MimeDescriptorStructure.java   |   25 +-
 .../processor/fetch/PartialFetchBodyElement.java   |   15 +-
 .../processor/base/SelectedMailboxImplTest.java    |  180 +-
 .../imap/processor/base/UidMsnConverterTest.java   |   23 +-
 .../fetch/MailboxMessageResultUtilsTest.java       |   10 +-
 .../src/main/resources/META-INF/persistence.xml    |    2 +
 .../apache/james/blob/api/BlobStoreContract.java   |   35 +-
 .../blob/api/DeduplicationBlobStoreContract.java   |   82 +
 .../james/blob/api/DeleteBlobStoreContract.java    |    8 +-
 server/blob/blob-cassandra/pom.xml                 |    4 +
 .../james/blob/cassandra/CassandraBlobStore.java   |  137 -
 .../blob/cassandra/CassandraBlobStoreFactory.java} |   37 +-
 .../blob/cassandra/CassandraDumbBlobStore.java     |    4 +-
 ...reTest.java => CassandraBlobStoreContract.java} |   82 +-
 .../blob/cassandra/CassandraBlobStoreTest.java     |   99 +-
 .../CassandraPassTroughBlobStoreTest.java          |   75 +
 .../blob/cassandra/cache/CachedBlobStoreTest.java  |    5 +-
 .../main/java/org/apache/james/blob/api/Store.java |    9 +
 .../file/LocalFileBlobExportMechanismTest.java     |    8 +-
 .../{blob-deduplicating => blob-gc}/build.gradle   |    0
 .../doc/gc-properties.adoc                         |    0
 .../blob/{blob-deduplicating => blob-gc}/pom.xml   |   10 +-
 .../james/server/blob/deduplication/GC.scala       |    0
 .../server/blob/deduplication/GCJsonReporter.scala |    0
 .../src/test/resources/gcReport.json               |    0
 .../blob/deduplication/GCJsonReporterTest.scala    |    2 -
 .../blob/deduplication/GCPropertiesTest.scala      |    0
 .../james/server/blob/deduplication/State.scala    |    0
 server/blob/blob-memory/pom.xml                    |    4 +
 .../apache/james/blob/memory/MemoryBlobStore.java  |  116 -
 .../james/blob/memory/MemoryBlobStoreFactory.java} |   16 +-
 ...st.java => MemoryBlobStorePassThroughTest.java} |    8 +-
 .../james/blob/memory/MemoryBlobStoreTest.java     |    9 +-
 .../blob/objectstorage/ObjectStorageBlobStore.java |    5 +
 .../ObjectStorageBlobStoreAWSCryptoTest.java       |   16 +-
 .../ObjectStorageBlobStoreAWSNamespaceTest.java    |   16 +-
 ...tStorageBlobStoreAWSPrefixAndNamespaceTest.java |   16 +-
 .../ObjectStorageBlobStoreAWSPrefixTest.java       |   16 +-
 .../ObjectStorageBlobStoreAWSTest.java             |   16 +-
 .../objectstorage/ObjectStorageBlobStoreTest.java  |    3 +-
 .../build.gradle                                   |    0
 .../{blob-union => blob-storage-strategy}/pom.xml  |   45 +-
 .../blob/deduplication/BlobStoreFactory.java       |   72 +
 .../blob/deduplication/StorageStrategy.java}       |   16 +-
 .../deduplication/DeDuplicationBlobStore.scala     |  100 +
 .../blob/deduplication/PassThroughBlobStore.scala  |   78 +
 .../apache/james/blob/union/HybridBlobStore.java   |  239 --
 .../james/blob/union/HybridBlobStoreTest.java      |  537 ---
 .../james/blob/mail/MimeMessageStoreTest.java      |   38 +-
 server/blob/pom.xml                                |    4 +-
 server/container/cli-integration/pom.xml           |    6 -
 .../org/apache/james/modules/BlobMemoryModule.java |   17 +-
 .../ObjectStorageBlobConfiguration.java            |    3 +-
 .../objectstorage/aws/s3/DockerAwsS3TestRule.java  |    4 -
 .../objectstorage/swift/DockerSwiftTestRule.java   |    4 -
 server/container/guice/cassandra-guice/pom.xml     |    8 +-
 .../james/CassandraJamesServerConfiguration.java}  |   36 +-
 .../org/apache/james/CassandraJamesServerMain.java |   16 +-
 .../java/org/apache/james/SearchConfiguration.java |   82 +
 .../java/org/apache/james/SearchModuleChooser.java |  149 +
 .../CassandraBlobStoreDependenciesModule.java      |    7 +-
 .../modules/mailbox/CassandraBlobStoreModule.java  |   11 +-
 .../AuthenticatedCassandraJamesServerTest.java     |    9 +-
 .../java/org/apache/james/CacheSessionTest.java    |    7 +-
 .../org/apache/james/CassandraJamesServerTest.java |    5 +-
 .../apache/james/CassandraJmapJamesServerTest.java |    5 +-
 .../org/apache/james/CassandraJmapTestRule.java    |    4 +-
 .../CassandraMailRepositoryIntegrationTest.java    |    2 +-
 .../CassandraMessageIdManagerInjectionTest.java    |    2 +-
 .../org/apache/james/CassandraNodeConfTest.java    |    2 +-
 .../org/apache/james/CassandraWithTikaTest.java    |    3 +-
 .../james/DefaultCassandraJamesServerTest.java     |    5 +-
 .../java/org/apache/james/DockerCassandraRule.java |    4 -
 .../test/java/org/apache/james/ESReporterTest.java |    2 +-
 .../apache/james/JamesCapabilitiesServerTest.java  |    2 +-
 .../james/JamesServerWithRetryConnectionTest.java  |    2 +-
 ...esWithNonCompatibleElasticSearchServerTest.java |    2 +-
 .../org/apache/james/KeyspaceCreationTest.java     |    8 +-
 .../org/apache/james/SearchConfigurationTest.java  |   67 +
 .../TestingDistributedJamesServerBuilder.java}     |   39 +-
 .../apache/james/WithCassandraBlobStoreTest.java   |    2 +-
 .../CassandraSchemaVersionStartUpCheckTest.java    |    9 +-
 .../apache/james/CassandraLdapJamesServerMain.java |    8 +-
 .../apache/james/CassandraLdapJamesServerTest.java |    2 +-
 .../james/CassandraLdapJmapJamesServerTest.java    |    2 +-
 .../test/java/org/apache/james/DockerLdapRule.java |    4 -
 .../src/test/resources/usersrepository.xml         |   31 -
 .../guice/cassandra-rabbitmq-guice/pom.xml         |   14 +-
 .../james/CassandraRabbitMQJamesConfiguration.java |   28 +-
 .../james/CassandraRabbitMQJamesServerMain.java    |    7 +-
 .../modules/blobstore/BlobStoreChoosingModule.java |   23 -
 .../modules/blobstore/BlobStoreConfiguration.java  |   94 +-
 .../modules/blobstore/BlobStoreModulesChooser.java |   92 +-
 .../james/modules/blobstore/NoopDumbBlobStore.java |   83 +
 .../james/CassandraRabbitMQAwsS3JmapTestRule.java  |    6 +-
 .../james/CassandraRabbitMQJamesServerFixture.java |    6 +-
 .../james/CassandraRabbitMQSwiftJmapTestRule.java  |    6 +-
 .../java/org/apache/james/WithCacheExtension.java  |    6 +-
 .../org/apache/james/WithCassandraBlobStore.java   |    6 +-
 ...nsion.java => WithScanningSearchExtension.java} |   11 +-
 .../org/apache/james/WithScanningSearchTest.java}  |   11 +-
 .../apache/james/modules/DockerRabbitMQRule.java   |    4 -
 .../BlobStoreCacheModulesChooserTest.java          |   10 +-
 .../blobstore/BlobStoreConfigurationTest.java      |   96 +-
 .../blobstore/BlobStoreModulesChooserTest.java     |   78 +-
 .../CassandraRabbitMQLdapJamesServerMain.java      |    6 +-
 .../CassandraRabbitMQLdapJmapJamesServerTest.java  |   16 +-
 .../src/test/resources/usersrepository.xml         |   31 -
 .../java/org/apache/james/GuiceModuleTestRule.java |    8 +-
 .../org/apache/james/TempFilesystemTestRule.java   |   12 -
 .../src/main/resources/META-INF/persistence.xml    |    2 +
 server/container/guice/memory-guice/pom.xml        |    6 -
 .../org/apache/james/MemoryJamesServerTest.java    |    3 -
 .../java/org/apache/james/MemoryJmapTestRule.java  |    6 -
 server/container/guice/pom.xml                     |    6 +
 .../james/modules/protocols/ImapGuiceProbe.java    |   16 +-
 .../org/apache/james/jmap/draft/JMAPModule.java    |    3 +-
 .../james/jmap/rfc8621/RFC8621MethodsModule.java   |    5 +-
 .../webadmin-rabbitmq-mailqueue}/pom.xml           |   25 +-
 .../server/RabbitMailQueueRoutesModule.java}       |   18 +-
 .../RabbitMailQueueTaskSerializationModule.java    |   53 +
 server/container/guice/rabbitmq/pom.xml            |    8 +
 .../java/org/apache/james/util/OptionalUtils.java  |    3 +-
 .../java/org/apache/james/util/UnitParser.java     |    3 +-
 .../james/util/mime/MessageContentExtractor.java   |    5 +-
 .../CassandraRecipientRewriteTableDAO.java         |    4 +-
 .../MessageFastViewPrecomputedProperties.java      |    3 +-
 .../domainlist/lib/DomainListConfiguration.java    |    3 +-
 .../mailets/RemoteDeliveryErrorHandlingTest.java   |   56 +-
 .../mailetcontainer/impl/JamesMailetContext.java   |    3 +-
 .../james/transport/mailets/SpamAssassin.java      |    3 +-
 .../transport/mailets/jsieve/DiscardAction.java    |    4 +-
 .../transport/mailets/remote/delivery/Bouncer.java |    2 +
 .../mailets/remote/delivery/DeliveryRunnable.java  |   11 +-
 .../matchers/IsRemoteDeliveryPermanentError.java}  |   43 +-
 .../matchers/IsRemoteDeliveryTemporaryError.java}  |   43 +-
 .../matchers/RemoteDeliveryFailedWithSMTPCode.java |   36 +-
 .../remote/delivery/DeliveryRunnableTest.java      |    7 +
 .../IsRemoteDeliveryPermanentErrorTest.java        |  102 +
 .../IsRemoteDeliveryTemporaryErrorTest.java        |  101 +
 .../RemoteDeliveryFailedWithSMTPCodeTest.java      |  173 +
 .../mailrepository/MailRepositoryContract.java     |    2 +-
 .../cassandra/CassandraMailRepository.java         |   35 +-
 .../cassandra/CassandraMailRepositoryTest.java     |  104 +-
 ...aMailRepositoryWithFakeImplementationsTest.java |  176 +-
 .../jmap/cassandra/CassandraImapErrorTest.java     |    5 +-
 .../jmap/cassandra/CassandraSendMDNMethodTest.java |    5 +-
 .../CassandraSpamAssassinContractTest.java         |    5 +-
 .../jmap/cassandra/cucumber/CassandraStepdefs.java |    6 +-
 .../cucumber/util/ObjectFromStringExtractor.java   |    3 +-
 .../memory/MemoryGetMessageListMethodTest.java     |    5 +-
 .../rabbitmq/RabbitMQAwsS3SendMDNMethodTest.java   |    7 +-
 .../RabbitMQAwsS3SpamAssassinContractTest.java     |    7 +-
 .../cucumber/awss3/RabbitMQAwsS3Stepdefs.java      |   13 +-
 .../jmap/draft/methods/MIMEMessageConverter.java   |    3 +-
 .../methods/SetMailboxesDestructionProcessor.java  |    3 +-
 .../draft/methods/SetMailboxesUpdateProcessor.java |    4 +-
 .../org/apache/james/jmap/draft/model/Emailer.java |    4 +-
 .../jmap/draft/model/GetMailboxesRequest.java      |    3 +-
 .../james/jmap/draft/model/mailbox/Rights.java     |    3 +-
 .../model/message/view/MessageFullViewFactory.java |    6 +-
 .../model/message/view/MessageViewFactory.java     |    3 +-
 .../jmap/draft/utils/JsoupHtmlTextExtractor.java   |    5 +-
 .../jmap/event/PropagateLookupRightListener.java   |    3 +-
 .../jmap/http/DefaultMailboxesProvisionerTest.java |    3 +-
 .../distributed/DistributedAuthenticationTest.java |    7 +-
 .../distributed/DistributedEchoMethodTest.java     |    7 +-
 .../DistributedMailboxGetMethodTest.java           |    5 +-
 ...dTest.java => DistributedProvisioningTest.java} |   10 +-
 ...dTest.java => DistributedSessionRouteTest.java} |    9 +-
 .../jmap/rfc8621/contract/EchoMethodContract.scala |    4 +-
 .../james/jmap/rfc8621/contract/Fixture.scala      |   14 +
 .../contract/MailboxGetMethodContract.scala        |  560 ++-
 .../rfc8621/contract/ProvisioningContract.scala    |   83 +
 .../rfc8621/contract/SessionRoutesContract.scala}  |  132 +-
 .../rfc8621/memory/MemoryProvisioningTest.java}    |   22 +-
 .../rfc8621/memory/MemorySessionRouteTest.java}    |   22 +-
 server/protocols/jmap-rfc-8621/doc/README.md       |   17 +
 .../protocols/jmap-rfc-8621/doc/specs/LICENSE.md   |  190 +
 server/protocols/jmap-rfc-8621/doc/specs/README.md |   28 +
 .../jmap-rfc-8621/doc/specs/rfc/src/jmap.mdown     |   55 +
 .../jmap-rfc-8621/doc/specs/rfc/src/mail.mdown     |   59 +
 .../jmap-rfc-8621/doc/specs/spec/jmap/api.mdown    | 1161 ++++++
 .../jmap-rfc-8621/doc/specs/spec/jmap/binary.mdown |   97 +
 .../doc/specs/spec/jmap/ianaconsiderations.mdown   |  189 +
 .../jmap-rfc-8621/doc/specs/spec/jmap/intro.mdown  |  133 +
 .../jmap-rfc-8621/doc/specs/spec/jmap/push.mdown   |  250 ++
 .../specs/spec/jmap/securityconsiderations.mdown   |   80 +
 .../doc/specs/spec/jmap/session.mdown              |  213 ++
 .../doc/specs/spec/mail/ianaconsiderations.mdown   |  421 ++
 .../doc/specs/spec/mail/identity.mdown             |   89 +
 .../jmap-rfc-8621/doc/specs/spec/mail/intro.mdown  |  154 +
 .../doc/specs/spec/mail/mailbox.mdown              |  310 ++
 .../doc/specs/spec/mail/message.mdown              | 1319 +++++++
 .../doc/specs/spec/mail/messagesubmission.mdown    |  304 ++
 .../doc/specs/spec/mail/searchsnippet.mdown        |   98 +
 .../specs/spec/mail/securityconsiderations.mdown   |   96 +
 .../jmap-rfc-8621/doc/specs/spec/mail/thread.mdown |   60 +
 .../doc/specs/spec/mail/vacationresponse.mdown     |   38 +
 .../james/jmap/http/MailboxesProvisioner.scala     |   81 +
 .../org/apache/james/jmap/http/SessionRoutes.scala |    5 +-
 .../apache/james/jmap/http/UserProvisioning.scala  |   64 +
 .../org/apache/james/jmap/json/Serializer.scala    |   35 +-
 .../scala/org/apache/james/jmap/mail/Mailbox.scala |   25 +-
 .../org/apache/james/jmap/mail/MailboxGet.scala    |    5 +-
 .../james/jmap/method/MailboxGetMethod.scala       |   34 +-
 .../org/apache/james/jmap/model/Capabilities.scala |   13 +-
 .../org/apache/james/jmap/model/Capability.scala   |   16 +-
 .../org/apache/james/jmap/model/Invocation.scala   |   20 +
 .../apache/james/jmap/model/ProblemDetails.scala}  |   29 +-
 .../james/jmap/model/RequestLevelErrorType.scala}  |   29 +-
 .../org/apache/james/jmap/model/StatusCode.scala}  |   15 +-
 .../apache/james/jmap/routes/JMAPApiRoutes.scala   |   81 +-
 .../james/jmap/http/MailboxesProvisionerTest.scala |  103 +
 .../apache/james/jmap/http/SessionRoutesTest.scala |   12 +-
 .../james/jmap/http/UserProvisioningTest.scala     |  103 +
 .../scala/org/apache/james/jmap/json/Fixture.scala |   63 +-
 .../jmap/json/MailboxGetSerializationTest.scala    |    4 +-
 .../james/jmap/json/MailboxSerializationTest.scala |    3 +-
 .../james/jmap/json/SessionSerializationTest.scala |    6 +-
 .../james/jmap/routes/JMAPApiRoutesTest.scala      |   96 +-
 .../rabbitmq/ConsistencyTasksIntegrationTest.java  |    7 +-
 .../rabbitmq/FixingGhostMailboxTest.java           |   10 +-
 .../rabbitmq/RabbitMQAuthorizedEndpointsTest.java  |    7 +-
 .../RabbitMQEventDeadLettersIntegrationTest.java   |    7 +-
 ...stViewProjectionHealthCheckIntegrationTest.java |    7 +-
 .../rabbitmq/RabbitMQForwardIntegrationTest.java   |    7 +-
 .../rabbitmq/RabbitMQJmapExtension.java            |    7 +-
 .../rabbitmq/RabbitMQJwtFilterIntegrationTest.java |    7 +-
 ...RabbitMQReindexingWithEventDeadLettersTest.java |    7 +-
 .../RabbitMQWebAdminServerIntegrationTest.java     |    7 +-
 ...dminServerTaskSerializationIntegrationTest.java |   30 +-
 ...RabbitMQDeletedMessageVaultIntegrationTest.java |   20 +-
 ...LinshareBlobExportMechanismIntegrationTest.java |   10 +-
 .../webadmin-integration-test-common/pom.xml       |   10 -
 .../vault/DeletedMessageVaultIntegrationTest.java  |    2 +-
 server/protocols/webadmin/pom.xml                  |    1 +
 .../apache/james/webadmin/routes/TasksRoutes.java  |    3 +-
 .../jmap/MessageFastViewProjectionCorrector.java   |    7 +-
 .../routes/DeletedMessagesVaultRoutesTest.java     |   33 +-
 .../james/webadmin/service/ExportServiceTest.java  |    5 -
 .../webadmin/service/ExportServiceTestSystem.java  |    8 +-
 .../protocols/webadmin/webadmin-mailqueue/pom.xml  |    2 +-
 .../james/webadmin/dto/MailQueueItemDTOTest.java   |    3 +-
 .../service/MailRepositoryStoreService.java        |    7 +-
 .../pom.xml                                        |   18 +-
 .../webadmin/routes/RabbitMQMailQueuesRoutes.java  |  174 +
 ...ProcessedMailsTaskAdditionalInformationDTO.java |   90 +
 .../service/RepublishNotProcessedMailsTaskDTO.java |   85 +
 .../service/RepublishNotprocessedMailsTask.java    |  107 +
 .../routes/RabbitMQMailQueuesRoutesTest.java       |  144 +
 .../RepublishNotprocessedMailsTaskTest.java        |  108 +
 .../james/queue/api/ManageableMailQueue.java       |   18 +-
 .../james/queue/file/FileCacheableMailQueue.java   |    2 +-
 .../james/queue/jms/JMSCacheableMailQueue.java     |    2 +-
 .../james/queue/memory/MemoryMailQueueFactory.java |    4 +-
 .../org/apache/james/queue/rabbitmq/Dequeuer.java  |    8 +-
 .../org/apache/james/queue/rabbitmq/Enqueuer.java  |    8 +
 .../apache/james/queue/rabbitmq/MailLoader.java    |    5 +-
 .../james/queue/rabbitmq/MailWithEnqueueId.java    |    9 +-
 .../james/queue/rabbitmq/RabbitMQMailQueue.java    |   17 +-
 .../queue/rabbitmq/RabbitMQMailQueueFactory.java   |    4 +-
 .../queue/rabbitmq/view/api/DeleteCondition.java   |   13 +-
 .../queue/rabbitmq/view/api/MailQueueView.java     |    9 +-
 .../view/cassandra/CassandraMailQueueBrowser.java  |   64 +-
 .../view/cassandra/CassandraMailQueueView.java     |   49 +-
 .../RabbitMQMailQueueConfigurationChangeTest.java  |    8 +-
 .../queue/rabbitmq/RabbitMQMailQueueTest.java      |  335 +-
 .../rabbitmq/RabbitMqMailQueueFactoryTest.java     |    3 +-
 .../rabbitmq/view/api/DeleteConditionTest.java     |    6 +-
 .../CassandraMailQueueViewTestFactory.java         |    4 +-
 .../james/task/FailsDeserializationTask.java}      |   26 +-
 .../distributed/RabbitMQTerminationSubscriber.java |    6 +-
 .../distributed/RabbitMQWorkQueue.java             |   19 +-
 .../distributed/DistributedTaskManagerTest.java    |  197 +-
 .../RabbitMQTerminationSubscriberTest.java         |   54 +-
 .../distributed/RabbitMQWorkQueueTest.java         |    5 +-
 .../json/dto/FailsDeserializationTaskDTO.java}     |   19 +-
 .../server/task/json/dto/TestTaskDTOModules.java   |    9 +
 .../MemoryTerminationSubscriberTest.java           |   10 +
 .../apache/james/utils/DiscreteDistribution.java   |    3 +-
 .../james/utils/DiscreteDistributionTest.java      |   10 +-
 src/adr/0040-quality-levels-definitions.md         |   62 +
 .../_posts/2020-07-16-james-3.5.0.markdown         |  107 +
 src/homepage/howTo/mail-processing.html            |    6 +-
 src/homepage/index.html                            |   14 +-
 src/site/markdown/server/manage-webadmin.md        |   37 +-
 src/site/site.xml                                  |    1 -
 src/site/xdoc/download.xml                         |   94 +-
 src/site/xdoc/server/config-blobstore.xml          |   18 +-
 src/site/xdoc/server/config-elasticsearch.xml      |   10 +
 src/site/xdoc/server/config-jmap.xml               |   23 +-
 src/site/xdoc/server/features.xml                  |    4 +-
 src/site/xdoc/server/index.xml                     |    8 +-
 .../linshare/LinshareBlobExportMechanismTest.java  |   11 +-
 upgrade-instructions.md                            |   64 +-
 420 files changed, 18313 insertions(+), 3931 deletions(-)

diff --cc server/blob/blob-gc/build.gradle
index 51b8536,0000000..51b8536
mode 100644,000000..100644
--- a/server/blob/blob-gc/build.gradle
+++ b/server/blob/blob-gc/build.gradle
diff --cc server/blob/blob-storage-strategy/build.gradle
index a3ddf92,0000000..a3ddf92
mode 100644,000000..100644
--- a/server/blob/blob-storage-strategy/build.gradle
+++ b/server/blob/blob-storage-strategy/build.gradle


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