Today the position of JMAP mailets is hardcoded in transport processor, and the matcher is hardcoded to RecipientIsLocal, duplicated.
Given a Distributed James server, backed by a LDAP for identity,
Each RecipientIsLocal mailet will trigger a call to the LDAP for each recipient.
Standard good practices we apply at linagora is to extract all the local delivery logic in its own processor in order not to duplicate this matcher.
However given current checks, we can not move JMAP and Vacation mailets in our local delivery pipeline.
- Expected outcome
I expect to be able to optimize the usage of those matchers by grouping the delivery logic into a dedicated processor, including "JMAP mailets".
For servers powering JMAP, change the default configuration to extract a "local-delivery" processor out of "transport" processor.
The JMAP checks should then accept these mailets in a "local-delivery" processor, but keep accepting them in "transport" processor for backward compatibility
- Definition of done
The default mailetcontainer.xml for JMAP backed servers should have a single RecipientIsLocal matcher.