Details
-
New Feature
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
Reusing the work of "creating new RabbitMQEventBus" we will implement support for per mailbox registration of MailboxListeners (asynchronous execution).
- Each James server creates a notification queue
- Upon MailboxListener registration, James adds a binding for the given MailboxId from the exchange to its queue
- James create consumers delivering events to locally registers MailboxListeners, according to the event MailboxId
Tests:
- Ensure that notifications works on a single RabbitMQDelegatingMailboxListener
- Ensure that notifications works on two RabbitMQDelegatingMailboxListeners (listeners registered on 2 are aware of events generated on 1)
Note: Several registration can be done on the same node, a record of lacal registration (in memory) needs to be kept.
Update: you need to extract registration tests in EventBusContract to a new Contract then implements it in your new RabbitMQEventBusTest.
also need to have tests about multiple event bus