Benoit Tellier created JAMES-4203:
-------------------------------------

             Summary: Ability to write listener for Identities
                 Key: JAMES-4203
                 URL: https://issues.apache.org/jira/browse/JAMES-4203
             Project: James Server
          Issue Type: Improvement
          Components: eventbus, JMAP
            Reporter: Benoit Tellier
            Assignee: Antoine Duprat


h3. Why ?

As an extension writter I want to publish JMAP identity via IMAP metadata to 
make them available in IMAP app, eg via a THunderBird plugin.

This requires me to enrich James JMAP event system in order to be able to hook 
onto it.

h2. How?

h3. The events themselves

We would add the following events:

CustomIdentityCreated (Username user, Identity identity)
CustomIdentityUpdated (Username user, Identity identity)
CustomIdentityDeleted (Username user, Set[IdentityId] identityIds)
AllCustomIdentitiesDeleted (Username user, Set[IdentityId] identityIds)

Have a common parent class to group them: IdentityEvent

Code location: org.apache.james.jmap.mail.IdentityEvents in 
james-server-jmap-rfc-8621 module

h3. Event serialization

Adapt JmapEventSerializerto serialize + deserialize identity events introduced 
earlier.

Write tests similar to StateChangeEventSerializerTest in 
IdentityEventsSerializerTest

h3.  Plug the events

Adapt CustomIdentityDAO implementation to fire events on each operations in an 
injected JMAP event bus. Unit tests should include event publication



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to