james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matthieu Baechler <mbaech...@linagora.com>
Subject Re: My thoughts on JMAP implementation
Date Mon, 14 Dec 2015 07:14:18 GMT
Hi Benoit,

Thank you for the review, I'll split my answer into several mails to 
avoid mixin subjects.

Matthieu Baechler

On 13/12/2015 12:43, Tellier Benoit wrote:
> I really think JMAP is a nice protocol to use to implement a web mail as
> it allows user to speak directly to the e-mail server without the need
> of an IMAP proxy.
> Protocol structure is clean and well defined. JSON is easy to parse.
> So I am really excited to see such an implementation in James. I am
> going to review here the details of todays code available on trunk.
>   - First point, I believe /server/protocols is only here to wrap up the
> /protocols stuff. We of course should have the servlets in
> server/protocols. The responsibilities of such server/protocols are for
> me to identify commands and encode responses + directly talk to the
> client. /protocols is responsible of interacting with other James
> entities (such as repositories and mailbox project) in order to reply to
> the user commands. Such an organization allows not to be tied to jetty.
> What do you think of it?
> This, I guess mean moving the RequestHandler, and most of the models in
> /protocols. I don't believe it would be harder than that, and allow
> protocols/jmap to become the first lib for JMAP in JAVA (kind of
> advertisement for James ? Maybe it can be helpful...)
>   - james-server-util is amaizing, as james-server-util-java8 . I  like
> the idea of using these tools broadly. But maybe these projects should
> be located in backends-common. rather than in server/container ? I find
> it makes more sens...
>    - jmap-integration-testing project is strange to me.
>        1/ Its location. I think it has nothing to do in protocols, and
> would rather see it in a new folder. Something like
> /server/integration-tests/jmap/cassandra .(again server/protocols is,
> according to me, about decoding requests and encoding responses)
>        2/ I think you should make it easier for one to implement other
> backends, and separate Cassandra stuff from generalizable testing stuff.
>   - Why not introducing /server/data/data-memory for your
> MemoryAccessTokenRepository ? I have upcoming commits to create the
> project, maybe moving it to data-memory would make sens.
>   - I heard JMAP handles unique ID accross email copies. I guess you are
> compelled to support it. How do you plan to manage it across
> implementations ?
>   - I have nothing to say on the code itself. It is Java8, well
> structured, easy to read, and you did an impressive job.
> Good luck to finish the JMAP implementation,
> Benoit

To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org

View raw message