Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

James 2156 #1

Open
wants to merge 419 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
419 commits
Select commit Hold shift + click to select a range
ba9ff0d
MAILBOX-359 Factorize tests for MessageUid ser-deserialization
chibenwa Dec 24, 2018
c6aebcc
MAILBOX-359 Factorize tests for MessageMetaData ser-deserialization
chibenwa Dec 24, 2018
5383b12
MAILBOX-359 Re-arrange QuotaUsageUpdatedEventSerializationTest
chibenwa Dec 24, 2018
b458e40
MAILBOX-359 Factorize tests for UpdatedFlags ser-deserialization
chibenwa Dec 24, 2018
19710d4
MAILBOX-359 Factorize tests for ACLDiffTest ser-deserialization
chibenwa Dec 24, 2018
38ebe82
MAILBOX-359 Use a fixture for the serializers
chibenwa Dec 24, 2018
0a16e7c
MAILBOX-359 Factorize tests for Quota ser-deserialization
chibenwa Dec 24, 2018
0cdd567
MAILBOX-359 Switch Scala Event trait back to private
chibenwa Dec 25, 2018
6f8cb22
MAILBOX-359 Use val to avoid too much class instanciations
chibenwa Dec 25, 2018
7776d2a
MAILBOX-359 Remove a unused method
chibenwa Jan 7, 2019
0781849
MAILBOX-359 Improving QuotaScope coverage
chibenwa Jan 7, 2019
4d6a372
MAILBOX-359 ReIndent QuotaUsageUpdatedEventSerializationTest
chibenwa Jan 7, 2019
8550ce9
MAILBOX-364 EventFactory should expose a builder for MailboxAdded event
chibenwa Dec 19, 2018
886ad16
MAILBOX-364 EventFactory should expose a builder for FlagsUpdated event
chibenwa Dec 19, 2018
7ceb951
MAILBOX-364 EventFactory should expose a builder for MailboxDeletion …
chibenwa Dec 19, 2018
e829c8e
MAILBOX-364 EventFactory should expose a builder for Added event
chibenwa Dec 19, 2018
2c46d62
MAILBOX-364 EventFactory should expose a builder for Expunged event
chibenwa Dec 19, 2018
098dbe4
MAILBOX-364 EventFactory should expose a builder for MailboxAclUpdate…
chibenwa Dec 19, 2018
b5608ad
MAILBOX-364 EventFactory should expose a builder for MailboxRenamed e…
chibenwa Dec 19, 2018
2713b4d
MAILBOX-364 EventFactory should rather link LessageMoveEvent.Builder
chibenwa Dec 19, 2018
4eb7990
MAILBOX-364 EventFactory methods can be statics
chibenwa Dec 19, 2018
1371fad
MAILBOX-359 Remove MailboxEventDispatcher::ofMailboxListener
chibenwa Dec 20, 2018
def6258
MAILBOX-359 MaildirMailboxMapper should return the mailboxId on persi…
chibenwa Dec 20, 2018
7097446
MAILBOX-364 MailboxEvent builders should use staged builders
chibenwa Jan 3, 2019
5392ad9
MAILBOX-364 Builder for QuotaUsageUpdatedEvent
chibenwa Jan 3, 2019
9a4ce2f
JAMES-2636 Wildcard definition needs to be covered by MappingSource
chibenwa Jan 4, 2019
887f3c5
JAMES-2636 Reorder RecipientRewriteTable API order
chibenwa Jan 4, 2019
4e2bd7f
JAMES-2636 Enhence RRT API getMapping methods
chibenwa Jan 4, 2019
305c321
JAMES-2636 Remove serial UID from ErrorMappingException
chibenwa Jan 4, 2019
8a21cb5
JAMES-2641 Remove MailboxEventDispatcher tests
chibenwa Jan 7, 2019
b4d9035
JAMES-2641 AbstractMessageIdManagerSideEffectTest should not rely on …
chibenwa Jan 7, 2019
185810d
JAMES-2641 Remove MailboxEventDispatcher extra methods
chibenwa Jan 7, 2019
9cdf4ba
JAMES-2631 ReIndent InMemoryHostSystem
chibenwa Jan 7, 2019
31ed391
JAMES-2641 Remove MailboxEventDispatcher
chibenwa Jan 7, 2019
0502ae1
MAILBOX-367 Factorise RabbitMQ constants
hoangdat Jan 7, 2019
a15bd70
MAILBOX-367 EventBusContract should use real event pojo
hoangdat Jan 7, 2019
f1ac836
MAILBOX-367 Add mockito timeouts in EventBus contracts
hoangdat Jan 7, 2019
b1e241c
MAILBOX-367 RabbitMQEvenBus should publish events
hoangdat Jan 7, 2019
d5ff60a
Adding LICENSE for project
trantienduchn Jan 6, 2019
a4533f0
MAILBOX-366 Create an EventId POJO
chibenwa Dec 25, 2018
60919d8
MAILBOX-366 Events should carry an EventId
chibenwa Dec 25, 2018
59c48ef
MAILBOX-377 Disable SpamAssassinInvokerTest::scanMailShouldMarkAsSpam…
chibenwa Jan 9, 2019
9eacc57
MAILBOX-373 EventDeadLetters API
trantienduchn Jan 8, 2019
7e2a49a
MAILBOX-373 EventDeadLetters Contract & Memory impl
trantienduchn Jan 8, 2019
20659ee
MAILBOX-367 Disable using Nio in RabbitMQ ConnectionFactory
hoangdat Jan 10, 2019
760a411
JAMES-2636 Add 'Alias' mapping type and handle rewrites for it
Arsnael Jan 4, 2019
106a284
JAMES-2636 getUserDomainMappings should return empty object consisten…
Arsnael Jan 4, 2019
00dcbd8
JAMES-2636 refactoring some mapping tests
Arsnael Jan 4, 2019
057fbe4
JAMES-2636 Refactoring and automating some mapping methods
Arsnael Jan 7, 2019
516787f
JAMES-2636 Refactoring AbstractRecipientRewriteTableTest test class t…
Arsnael Jan 7, 2019
ca7818e
JAMES-2636 add and remove alias mapping for RecipientRewriteTable and…
Arsnael Jan 7, 2019
14e264c
JAMES-2636 refactoring mapping types
Arsnael Jan 10, 2019
de15eaa
JAMES-2637 add PUT route for aliases routes
Arsnael Jan 8, 2019
2b5c162
JAMES-2637 refactoring group and forward routes
Arsnael Jan 9, 2019
ebab03a
JAMES-2630 Upgrade Reactor
blackheaven Jan 8, 2019
08c2f45
JAMES-2630 Add Functional utils
blackheaven Jan 8, 2019
92842f4
JAMES-2630 Add Reactor utils
blackheaven Jan 8, 2019
bca9ba0
MAILBOX-368 Separating Group and Key Contract from EventBusContract
hoangdat Jan 8, 2019
16ac299
MAILBOX-368 EventBusContract should enforce basic error handling checks
hoangdat Jan 8, 2019
ab2fa64
MAILBOX-368 RabbitMQEventBus group registration
hoangdat Jan 8, 2019
9fe9e62
MAILBOX-368 Add Multiple EventBus tests for group registration
hoangdat Jan 8, 2019
79cf1c2
MAILBOX-368 Add EventBus Concurrent test for group registration
hoangdat Jan 8, 2019
62f7cf3
JAMES-2637 fix alias mappings for PUT alias route
Arsnael Jan 11, 2019
48bc40f
MAILBOX-372 InVmEventDelivery returns success even when exception tests
trantienduchn Jan 9, 2019
0707db5
MAILBOX-372 InVmEventDelivery exponential backoff
trantienduchn Jan 9, 2019
fa22f9d
MAILBOX-372 suppress InVmEventDelivery errors in DelegateMailBoxListener
trantienduchn Jan 11, 2019
44e7531
MAILBOX-372 update tests affected by retry mechanism
trantienduchn Jan 11, 2019
64d4cdb
MAILBOX-367 Moving RabbitMQManagement API to rabbitmq-backend project
hoangdat Jan 9, 2019
90cabdd
MAILBOX-367 Simplify RabbitMQManagement creations
hoangdat Jan 8, 2019
9142624
MAILBOX-367 Expose Exchange APIs to RabbitMQManagementAPI
hoangdat Jan 10, 2019
9fc3e75
MAILBOX-367 RabbitMQEventBus exchange, queue life cycle tests
hoangdat Jan 10, 2019
cac26ab
JAMES-2641 Re-organize mailbox manager fields
chibenwa Jan 8, 2019
ff7f30e
JAMES-2641 Make StoreMailboxManager::idGenerator final
chibenwa Jan 8, 2019
5520851
JAMES-2641 Make StoreMailboxManager::batchSizes final
chibenwa Jan 8, 2019
aeffba8
JAMES-2641 Make StoreMailboxManager::Authorizator field final
chibenwa Jan 8, 2019
90af614
JAMES-2641 Extract Session management from StoreMailboxManager
chibenwa Jan 8, 2019
c4be7f6
JAMES-2641 DefaultUserQuotaRootResolver should rely on SessionProvider
chibenwa Jan 8, 2019
69487bd
JAMES-2641 BatchSizes can be missing
chibenwa Jan 8, 2019
f7f7f73
JAMES-2641 Fix QuotaMessageManagerTest
chibenwa Jan 8, 2019
14ca4fe
JAMES-2641 Stop lazy initialization of Quota components in MailboxMan…
chibenwa Jan 8, 2019
eb2d2cc
JAMES-2641 MailboxAnnotationListener should depend on SessionProvider
chibenwa Jan 8, 2019
7a2bf1e
JAMES-2641 Search indexes should rely on SessionProvider
chibenwa Jan 9, 2019
59910ec
JAMES-2641 Simplify slightly InMemoryIntegrationResources
chibenwa Jan 9, 2019
c06c13a
JAMES-2641 Search indexes should not be initialized in StoreMailboxMa…
chibenwa Jan 8, 2019
61dd6e2
JAMES-2641 Finally remove StoreMailboxManager::init()
chibenwa Jan 9, 2019
d86e8b7
JAMES-2641 Stop lazy initialization of Quota components in MailboxMan…
chibenwa Jan 9, 2019
367c5ac
JAMES-2641 Correct spring logic
chibenwa Jan 9, 2019
df10904
JAMES-2641 Enhance ListeningMessageSearchIndex logs
chibenwa Jan 11, 2019
dc426a5
JAMES-2641 Ship knowledge about serializability along in MessageId
chibenwa Jan 11, 2019
c08473d
JAMES-2641 Enable Annotations in JPA Guice
chibenwa Jan 11, 2019
c16d4e9
JAMES-2641 Avoid retrieving mailbox information upon renames
chibenwa Jan 11, 2019
2e92324
MAILBOX-377 Fix asynchronous tests for In VM event delivery
chibenwa Jan 15, 2019
8ff801e
MAILBOX-377 Increase some too short timeouts in RabbitMQ event bus tests
chibenwa Jan 15, 2019
c754f3a
MAILBOX-371 Registration should have a deserialization factory
hoangdat Jan 10, 2019
74fa711
MAILBOX-371 Conversion between RoutingKeys And RegistrationKeys
hoangdat Jan 11, 2019
68735a2
MAILBOX-371 RabbitMQEventBus impl for key registrations
hoangdat Jan 11, 2019
7ce35a3
MAILBOX-371 Remove unnecessary test for lifecycle
hoangdat Jan 14, 2019
9f3b7ec
MAILBOX-371 Wrapping RabbitMQExtension to avoid start and stop severa…
hoangdat Jan 14, 2019
af95d7b
MAILBOX-371 Add Concurrent Test for RabbitMQEventBus with Key Registr…
hoangdat Jan 14, 2019
5b9b106
MAILBOX-371 Fix-up for LifeCycleTest more stable
hoangdat Jan 14, 2019
b312b87
JAMES-2637 add rest of the routes for alias routes
Arsnael Jan 10, 2019
331a888
JAMES-2637 refactoring forward and group routes
Arsnael Jan 10, 2019
8ea2c22
JAMES-2637 add asMailAddressString method to MappingSource
Arsnael Jan 15, 2019
92f44f2
JAMES-2637 Rely on asMailAddressString for MappingSource serialization
Arsnael Jan 15, 2019
03420da
JAMES-2637 Strong typing for AliasSourcesResponse
Arsnael Jan 15, 2019
c826452
JAMES-2637 getAliasSources should use rrt.listSources
Arsnael Jan 15, 2019
2bbdb47
JAMES-2637 add tests for getSourcesForType
Arsnael Jan 15, 2019
03ee195
JAMES-2637 add getMappingsForType method with tests
Arsnael Jan 15, 2019
dcb093e
JAMES-2637 return streams for getSourcesForType and getMappingsForTyp…
Arsnael Jan 15, 2019
4cdfef0
JAMES-2637 add test to MappingSource to be sure it matches the bean c…
Arsnael Jan 15, 2019
2c60acb
MAILBOX-372 RetryBackoff POJO
trantienduchn Jan 15, 2019
bd656cf
MAILBOX-372 generating wait delay in WaitDelayGenerator
trantienduchn Jan 15, 2019
1f390f4
MAILBOX-372 handle retrying for event group consumers
trantienduchn Jan 15, 2019
0947b1b
JAMES-2641 Delete DefaultDelegatingMailboxListenerTest
chibenwa Jan 10, 2019
8cf25c7
JAMES-2641 MessageMoves should return impactedMailboxIds
chibenwa Jan 10, 2019
0a3b38a
JAMES-2641 Introduce GroupMailboxListener
chibenwa Jan 10, 2019
7e0fdc6
JAMES-2641 SetMessagesMethodTest should be using EventCollector
chibenwa Jan 10, 2019
c82c138
JAMES-2641 MailboxManager should no more implement MailboxListener su…
chibenwa Jan 10, 2019
89f168d
JAMES-2641 Drop Delegating mailbox listener and rather use the EventBus
chibenwa Jan 10, 2019
90f18c4
JAMES-2641 Remove MailboxListenerRegistry
chibenwa Jan 10, 2019
f063b48
JAMES-2641 Remove now useless ListenerType
chibenwa Jan 10, 2019
d35e8a6
JAMES-2641 MailboxManager should not expose group registration
chibenwa Jan 10, 2019
9e34f17
JAMES-2641 DefaultImapProcessorFactory have many unused fields/methods
chibenwa Jan 10, 2019
352f92a
JAMES-2641 DefaultProcessorChain should not use final variable/parame…
chibenwa Jan 10, 2019
7a37651
JAMES-2641 Re-order fields of AbstractSelectionProcessor
chibenwa Jan 10, 2019
f398e3f
JAMES-2641 IMAP components should use the EventBus directly
chibenwa Jan 10, 2019
4c14a75
JAMES-2641 IMAP components should use the EventBus directly
chibenwa Jan 10, 2019
24fe28f
JAMES-2641 EventBus caller should block to await dispatching to be done
chibenwa Jan 10, 2019
8d66bb1
JAMES-2641 Allow specifying group of registered listeners
chibenwa Jan 14, 2019
7cc4a19
MAILBOX-377 remove unused method in EventBus ErrorHandling contract
chibenwa Jan 15, 2019
897a206
JAMES-2641 DefaultEventBus should not bind specific listeners
chibenwa Jan 15, 2019
3f8b8f6
MAILBOX-377 Slightly improve InVMEventDelivery
chibenwa Jan 15, 2019
5a1d9d7
JAMES-2641 Harden MailboxManagerTest for events and do some fix
chibenwa Jan 15, 2019
9fd0b6a
JAMES-2641 Add a missing import after rebase
chibenwa Jan 17, 2019
3a00fa2
JAMES-2642 alias webadmin integration test
Arsnael Jan 15, 2019
a0793f5
JAMES-2642 Add basic alias mapping integration tests
Arsnael Jan 16, 2019
1819ae1
JAMES-2642 add a few more alias mapping integration tests
Arsnael Jan 16, 2019
21cde6d
JAMES-2642 Refactor and cleanup code for alias, group and forward int…
Arsnael Jan 16, 2019
5c301e8
MAILBOX-372 Allow MailboxListeners to throw exception
chibenwa Jan 16, 2019
f2b84ce
MAILBOX-372 ElasticSearchQuotaMailboxListener should not catch except…
chibenwa Jan 16, 2019
b7df724
MAILBOX-372 ListeningCurrentQuotaUpdater should not catch exceptions
chibenwa Jan 16, 2019
ce2036f
MAILBOX-372 MailboxAnnotationListener should not catch exceptions
chibenwa Jan 16, 2019
369d4db
MAILBOX-372 PropagateLookupRightListener should not catch exceptions
chibenwa Jan 16, 2019
45691e9
MAILBOX-372 QuotaThresholdCrossingListener should not catch exceptions
chibenwa Jan 16, 2019
a5870f5
MAILBOX-372 SpamAssassinListener should not catch exceptions
chibenwa Jan 16, 2019
07bc444
MAILBOX-372 ListeningMessageSearchIndex should not catch exceptions
chibenwa Jan 16, 2019
c216bce
JAMES-2645 Refactor cassandra RRTs by adding a proper DAO class with …
Arsnael Jan 17, 2019
b3ec659
MAILBOX-372 RabbitMQEventBus should receive events didn't fully proce…
trantienduchn Jan 17, 2019
a760297
MAILBOX-372 Test dispatching from the listeners
chibenwa Jan 18, 2019
7f2f8fe
MAILBOX-371 Test out of order registrations
chibenwa Jan 18, 2019
d4e5693
JAMES-2646 list sources cassandra table, DAO and tests
Arsnael Jan 18, 2019
b22103d
MAILBOX-372 ErrorHandling is applied for only group registered listeners
trantienduchn Jan 15, 2019
2d48bb0
MAILBOX-372 make configuration public
trantienduchn Jan 16, 2019
cf996f1
MAILBOX-372 Use RetryBackoffConfiguration in InVmEventDelivery
trantienduchn Jan 16, 2019
89781fe
MAILBOX-369 Add EventBusId POJOs
hoangdat Dec 27, 2018
91502b4
MAILBOX-369 Mark IdleMailboxListener as ASYNCHRONOUS
hoangdat Dec 27, 2018
61488ef
MAILBOX-369 Using EventBusId to skip synchronous local registered lis…
hoangdat Jan 15, 2019
485dd95
MAILBOX-369 Using RabbitMQExtension directly for stabling RabbitMQEve…
hoangdat Jan 18, 2019
97555fe
MAILBOX-369 Isolate concurrent tests to a nested class
trantienduchn Jan 21, 2019
00973f9
MAILBOX-376 WorkQueueName need to carry a Group instance
trantienduchn Jan 21, 2019
98cc660
MAILBOX-376 Plug DeadLetters into RabbitMQEventBus
trantienduchn Jan 21, 2019
8a42e9e
JAMES-2618 Missing SchemaVersion Module causes tests fail to setup
trantienduchn Jan 21, 2019
04e8f7b
MAILBOX-374 RabbitMQ should support generic groups
chibenwa Jan 17, 2019
255f1be
MAILBOX-374 Bind RabbitMQEventBus module in RabbitMQ related product
chibenwa Jan 17, 2019
8935b9c
MAILBOX-374 Checking registration queues deletion should filter out g…
chibenwa Jan 18, 2019
061fa39
MAILBOX-374 Configure SpamAssassin only when required
chibenwa Jan 18, 2019
8938f5f
MAILBOX-374 QuotaRatio Index and Aliases should not include capital l…
chibenwa Jan 18, 2019
d51c708
JAMES-2647 Cassandra migration task for mapping sources
Arsnael Jan 21, 2019
bb067a1
MAILBOX-376 Plug EventDeadLetter into InVmEventBus
trantienduchn Jan 17, 2019
606ff9c
JAMES-2578 Fix warning using Mailet new API
blackheaven Jan 21, 2019
c3f16af
MAILBOX-376 Re-indent event bus
chibenwa Jan 23, 2019
0c64eec
MAILBOX-376 Refactor GroupConsumerRetry
chibenwa Jan 23, 2019
301329f
MAILBOX-376 QueueName is only required when initializing group retry
chibenwa Jan 23, 2019
406abf3
MAILBOX-376 Solve various IntelliJ warnings for RabbitMQEventBus
chibenwa Jan 23, 2019
c70c987
MAILBOX-376 Structured logging for groups retries
chibenwa Jan 23, 2019
37e662c
MAILBOX-376 Do not lose events "forever" when publishing retries fails
chibenwa Jan 23, 2019
e3072f2
MAILBOX-376 Structured logging for group listener execution
chibenwa Jan 23, 2019
a25a1c6
MAILBOX-376 Structured logging for event dispatching
chibenwa Jan 23, 2019
dbc5442
MAILBOX-376 Structured logging for key registrations
chibenwa Jan 23, 2019
10d49b5
MAILBOX-376 Structured logging for local mailbox listener execution
chibenwa Jan 23, 2019
97b33f8
MAILBOX-376 Structured logging for InVmEventDelivery
chibenwa Jan 23, 2019
2160369
MAILBOX-376 Metrics for RabbitMQ event-bus listener execution time
chibenwa Jan 23, 2019
9799f43
JAMES-2648 cassandra list sources support implementation
Arsnael Jan 22, 2019
d93da80
MAILBOX-374 Fix test class name
chibenwa Jan 21, 2019
6a9554c
MAILBOX-374 IMAP MPT tests for rabbitmq reactor
chibenwa Jan 21, 2019
ac3d520
MAILBOX-374 Fix a bug between group registration and key registration
chibenwa Jan 22, 2019
b926689
MAILBOX-374 Slightly improve ListeningCurrentQuotaUpdater code quality
chibenwa Jan 22, 2019
dc25108
MAILBOX-374 Use InMemoryIntegrationResources to ease RabbitMQ hostSys…
chibenwa Jan 22, 2019
2c84e32
MAILBOX-374 DockerRabbitMQ should be able to provide a connection fac…
chibenwa Jan 22, 2019
0e9cd67
MAILBOX-374 reuse forks for RabbitMQ MPT testing
chibenwa Jan 23, 2019
c47b846
MAILBOX-374 Write a test about error recovery
chibenwa Jan 24, 2019
603de62
MAILBOX-374 RabbitMQConnectionFactory should rely on reactor for retries
chibenwa Jan 24, 2019
edf8530
MAILBOX-374 Our connection mono should cache the connection as long a…
chibenwa Jan 24, 2019
c1a2a95
MAILBOX-374 Specify unit for minDelays upon connection retries
chibenwa Jan 24, 2019
7ab8c67
MAILBOX-374 Turn off exclusive - auto-deletes queues
chibenwa Jan 24, 2019
aa452a1
MAILBOX-374 Also test EventBus behaviour when confronted with RabbitM…
chibenwa Jan 24, 2019
e255eae
MAILBOX-374 EventBusTestFixture should rely on java.time.Duration
chibenwa Jan 24, 2019
4270f4f
MAILBOX-374 Avoid a race condition upon connection recovery
chibenwa Jan 24, 2019
df5d678
MAILBOX-364 Move event related classes in the event package of mailbo…
chibenwa Jan 23, 2019
ddb8236
JAMES-2630 Set CassandraAsyncExecutor.executeReactor to defer to ensu…
blackheaven Jan 18, 2019
9c96e60
JAMES-2630 Migrate CassandraAsyncExecutor.executeReturnExists consume…
blackheaven Dec 12, 2018
2133f0b
JAMES-2630 Migrate CassandraAsyncExecutor consumers to Reactor for ev…
blackheaven Dec 12, 2018
1295a89
JAMES-2630 Port CassandraMessageMapper to Reactor
mbaechler Nov 25, 2018
06ee1e4
JAMES-2630 Migrate CassandraAsyncExecutor.executeReturnExists consume…
blackheaven Dec 13, 2018
e4a737e
JAMES-2630 Migrate CassandraAsyncExecutor.executeReturnApplied consum…
blackheaven Jan 8, 2019
64d3377
JAMES-2630 Improve ConcurrentTestRunner reporting
mbaechler Jan 18, 2019
e061ccb
JAMES-2630 Improve Cassandra logging
mbaechler Jan 18, 2019
bad5da4
Update changelog: 25/01/2019
chibenwa Jan 25, 2019
b209b83
LOCAL ONLY max C* mem
mbaechler Nov 19, 2018
c617824
JAMES-2630 fix ordering of message attachment issue
mbaechler Jan 29, 2019
862f680
Merge branch 'fix-master-reactor'
mbaechler Jan 29, 2019
d58b976
Revert "LOCAL ONLY max C* mem"
mbaechler Jan 29, 2019
e655e24
JAMES-2654 Exclude logback dependency from CLI
chibenwa Jan 30, 2019
7364833
JAMES-2654 SMTP protocol module should depend on logback-classic only…
chibenwa Jan 30, 2019
deb0306
JAMES-2655 Simplify JPA RRT query logic
chibenwa Jan 30, 2019
e839a78
JAMES-2655 Strong typing for JPA RRT getMapping
chibenwa Jan 30, 2019
12bf59e
JAMES-2655 JPA RRT getMapping & getStoredMappings are duplicated
chibenwa Jan 30, 2019
fb43afc
JAMES-2655 Simplify JPA RRT javaDoc
chibenwa Jan 30, 2019
7329ac6
JAMES-2652 Add Overflow test for POP3 RETR command
blackheaven Jan 25, 2019
a4d524d
JAMES-2644 Fix the Content-Type parsing fragility
blackheaven Jan 16, 2019
c4c601e
JAMES-2620 Built artifacts should be installed to prevent downloading…
aduprat Dec 3, 2018
e745d95
JAMES-2622 Introduce env variable for java options in dockerfiles
aduprat Dec 6, 2018
ba4d902
JAMES-2630 change blobs-api to use Mono
mbaechler Jan 28, 2019
dbb9598
JAMES-2649 Add a module for alias sources Cassandra projection consis…
Arsnael Jan 25, 2019
b89275b
JAMES-2641 Solve concurency issues in event firing test
chibenwa Jan 30, 2019
829074f
JAMES-2641 MailboxManagerTest::createMailboxShouldFireMailboxAddedEve…
chibenwa Jan 30, 2019
ab4171c
Merge branch 'reactor-blob-store-2'
mbaechler Feb 1, 2019
7a02725
JAMES-2630 propagate reactor objects following blobs-api changes
mbaechler Jan 28, 2019
056a999
JAMES-2544 upgrade rabbitmq client library
mbaechler Dec 20, 2018
df69a82
JAMES-2544 remove unused RabbitChannelPoolImpl
mbaechler Dec 10, 2018
97fa968
JAMES-2544 implement RabbitMQ dequeue with reactor-rabbitmq
mbaechler Dec 5, 2018
e4194fd
JAMES-2544 some tests probably need more time than expected
mbaechler Nov 19, 2018
968c5d2
JAMES-2544 ensure rabbitFlux is closed
mbaechler Dec 20, 2018
4490d62
JAMES-2544 migrate SendMDNMethodTest to junit 5
mbaechler Dec 21, 2018
f5ea01e
JAMES-2630 remove last calls to Mono::toFuture
mbaechler Jan 28, 2019
6d72e4d
JAMES-2630 remove last calls to Mono::fromFuture
mbaechler Jan 28, 2019
42c50f2
Remove James 3.0 roadmap progress
chibenwa Feb 1, 2019
45b5661
JAMES-2659 disable instable test
mbaechler Feb 7, 2019
9797d16
JAMES-2659 remove useless mock library usage
mbaechler Feb 7, 2019
d086637
JAMES-2659 add a test to demonstrate that synchronization on listener…
mbaechler Feb 7, 2019
52ec5db
JAMES-2659 re-implement guard logic for RabbitEventBus start/stop
mbaechler Feb 7, 2019
713a7c5
JAMES-2659 fix both registrationsShouldNotHandleEventsAfterStop tests
mbaechler Feb 7, 2019
e91d305
[maven-release-plugin] prepare release james-project-3.3.0
aduprat Feb 8, 2019
eb3a034
[maven-release-plugin] prepare for next development iteration
aduprat Feb 8, 2019
33e810b
[maven-release-plugin] Install packages when building integration tests
aduprat Feb 11, 2019
fdd2fd4
[maven-release-plugin] Spring dockerfile should rely on 3.4.0-SNAPSHOT
aduprat Feb 11, 2019
ae59181
JAMES-2156 add attachment mapper
Yolanda-Tang Jan 15, 2019
827566a
Merge branch 'master' into JAMES-2156
Fredmomo Feb 12, 2019
9b66de0
JAMES-2156 Merge from master and resolve conflicts
Fredmomo Feb 12, 2019
9732fcb
JAMES-2156 FixUp
Fredmomo Feb 13, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
33 changes: 31 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,37 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)

## [Unreleased]

## [3.2.0] - 2018-11-XX

### Added
- Metrics for BlobStore
- New Guice product using Cassandra RabbitMQ ElasticSearch, OpenStack Swift and optional LDAP dependency (experimental)
- JPA SMTP dockerFile contributed by [matzepan](https://github.com/matzepan)
- Listing healthchecks, thanks to [Madhu Bhat](https://github.com/kratostaine)
- Configuring the ElasticSearch clusterName
- Logging and Metrics now supports Elasticsearch 6 (previously only Elasticsearch 2 was supported)
- Implementation of the RabbitMQ EventBus
- DeadLetter APIs and memory implementation for storing events that failed delivery
- RecipientRewriteTable Aliases and associated WebAdmin routes

### Fixed
- MAILBOX-350 Potential invalid UID <-> MSN mapping upon IMAP COPY
- Possibility to better zoom in Grafana boards
- default ElasticSearch shards & replica configured values
- Move & copy batch sizes are now loaded from configuration

### Changed
- WebAdmin ReIndexing API had been reworked
- MailboxListener and mailbox event system were reworked. Custom listeners will need to be adapted. Please see Upgrade instuctions.
- Docker images are now using a JRE instead of a JDK
- Replacement of the old mailbox event system with the EventBus

### Removed
- Drop HBase and JCR components (mailbox and server/data).

### Third party softwares
- Tika prior 1.20 is subject to multiple CVEs. We recommend the upgrade

## [3.2.0] - 2018-11-14
### Added
- Mail filtering configured via the JMAP protocol
- WebAdmin exposed mail re-indexing tasks
Expand Down
176 changes: 176 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.

"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:

(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and

(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and

(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and

(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.

You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS
13 changes: 9 additions & 4 deletions README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,7 @@ You need a running *ElasticSearch* in docker. To achieve this run:

If you want to use all the JMAP search capabilities, you may also need to start Tika:

$ docker run -d --name=tika logicalspark/docker-tikaserver:1.19.1
$ docker run -d --name=tika logicalspark/docker-tikaserver:1.20

You can find more explanation on the need of Tika in this page http://james.apache.org/server/config-elasticsearch.html

Expand All @@ -258,6 +258,11 @@ Where :

You can add an optional port binding to port 8000, to expose the webadmin server. Please note that users are not authenticated on webadmin server, thus you should avoid exposing it in production.

If you want to pass additional options to the underlying java command, you can configure a _JVM_OPTIONS_ env variable, for example add:

--env JVM_OPTIONS="-Xms256m -Xmx2048m"


To have log file accessible on a volume, add *-v $PWD/logs:/logs* option to the above command line, where *$PWD/logs* is your local directory to put files in.

==== Handling attachment indexing
Expand All @@ -266,7 +271,7 @@ You can handle attachment text extraction before indexing in ElasticSearch. This

Run tika:

$ docker run --name tika logicalspark/docker-tikaserver:1.19.1
$ docker run --name tika logicalspark/docker-tikaserver:1.20

Add a link for the tika container in the above command line:

Expand Down Expand Up @@ -297,7 +302,7 @@ You need a running *ElasticSearch* in docker. To achieve this run:

If you want to use all the JMAP search capabilities, you may also need to start Tika:

$ docker run -d --name=tika logicalspark/docker-tikaserver:1.19.1
$ docker run -d --name=tika logicalspark/docker-tikaserver:1.20

You can find more explanation on the need of Tika in this page http://james.apache.org/server/config-elasticsearch.html

Expand Down Expand Up @@ -329,7 +334,7 @@ You can handle attachment text extraction before indexing in ElasticSearch. This

Run tika:

$ docker run --name tika logicalspark/docker-tikaserver:1.19.1
$ docker run --name tika logicalspark/docker-tikaserver:1.20

Add a link for the tika container in the above command line:

Expand Down
15 changes: 14 additions & 1 deletion backends-common/cassandra/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.james</groupId>
<artifactId>james-backends-common</artifactId>
<version>3.3.0-SNAPSHOT</version>
<version>3.4.0-SNAPSHOT</version>
</parent>

<artifactId>apache-james-backends-cassandra</artifactId>
Expand Down Expand Up @@ -79,6 +79,14 @@
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
<dependency>
<groupId>io.projectreactor</groupId>
<artifactId>reactor-core</artifactId>
</dependency>
<dependency>
<groupId>io.projectreactor</groupId>
<artifactId>reactor-core</artifactId>
</dependency>
<dependency>
<groupId>javax.inject</groupId>
Expand Down Expand Up @@ -113,6 +121,11 @@
<artifactId>junit-jupiter-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-launcher</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,27 @@

package org.apache.james.backends.cassandra.components;

import java.util.Objects;

import com.datastax.driver.core.KeyspaceMetadata;
import com.datastax.driver.core.Session;
import com.datastax.driver.core.Statement;
import com.google.common.base.MoreObjects;

public class CassandraTable {
public enum InitializationStatus {
ALREADY_DONE,
PARTIAL,
FULL;

public InitializationStatus reduce(InitializationStatus other) {
if (this == other) {
return this;
}

return PARTIAL;
}
}

private final Statement createStatement;
private final String name;
Expand All @@ -31,11 +49,40 @@ public CassandraTable(String name, Statement createStatement) {
this.name = name;
}

public Statement getCreateStatement() {
return createStatement;
}

public String getName() {
return name;
}

public InitializationStatus initialize(KeyspaceMetadata keyspaceMetadata, Session session) {
if (keyspaceMetadata.getTable(name) != null) {
return InitializationStatus.ALREADY_DONE;
}

session.execute(createStatement);
return InitializationStatus.FULL;
}

@Override
public final boolean equals(Object o) {
if (o instanceof CassandraTable) {
CassandraTable that = (CassandraTable) o;

return Objects.equals(this.name, that.name)
&& Objects.equals(this.createStatement, that.createStatement);
}
return false;
}

@Override
public final int hashCode() {
return Objects.hash(name, createStatement);
}

@Override
public String toString() {
return MoreObjects.toStringHelper(this)
.add("name", name)
.add("createStatement", createStatement)
.toString();
}
}
Loading