[
https://issues.apache.org/jira/browse/MAILBOX-371?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Trần Tiến Đức updated MAILBOX-371:
----------------------------------
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
was:
implementing RabbitMQEventBus key register method
{code:java}
interface EventBus {
...
Registration register(Listener listener, Group group);
...
}
{code}
Upon the registration of a listener to a group, a work queue is created and
listen to mailbox event exchange on global empty routing key. When an event is
arrived, rabbitmq queue receives that event, deserialize it to event object,
deliver that event object to registered listener
Update: Separating EventBUSCONTRACT INTO group registration, key registration,
dispatching sub contracts. you need to implement group registration contract in
your rabbitmq registration test.
also need to test multiple eventbus
> Implement routing for notification listeners (key registrations)
> ----------------------------------------------------------------
>
> Key: MAILBOX-371
> URL: https://issues.apache.org/jira/browse/MAILBOX-371
> Project: James Mailbox
> Issue Type: New Feature
> Reporter: Trần Tiến Đức
> Priority: Major
>
> 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
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]