Uploaded image for project: 'James Server'
  1. James Server
  2. JAMES-3916

JMAP for JPA Guice server

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Won't Fix
    • None
    • 3.9.0
    • None
    • None

    Description

      JMAP is available on memory and distributed versions of James. It would be nice to have it on JPA Guice version of James also. But for this, there is some work to do:

      • Add missing JPA implementations for some data related layers (state changes, Vacation, Identities, ...
      • Proper JMAP Guice bindings (can look at Cassandra and memory versions to have an idea) => do not care about DraftMethodsModule, as JMAP draft is deprecated
      • Integration tests

      To be reasonable, should do it step by step. Should have a JMAP module for JPA that will get filled more with each step of the implementation. For example, a good POC would consist of:

      • starting with a JMAPApiRoutes only serving the Core/Echo method for JPA (should be easy enough, just bindings I think?) and adding JMAP configuration
      • having a minimal Mailbox with /get, /set and /query methods -> mailbox data layers have been implemented in JPA, only missing is MailboxChangeRepository. Could make a dummy implementation of it first. Could implement it really for JPA in later steps with states and /changes methods
      • having a minimal Email with /get, /set and /query methods -> EmailChangeRepository dummy implementation first, like MailboxChangeRepository. Also careful with MessageFastViewProjection, could be a dummy implementation too, as when we fail to retrieve data from it we fetch data the normal way

      Then from there we can start thinking about the rest!

      Attachments

        Activity

          People

            Unassigned Unassigned
            rcordier René Cordier
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: