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

Refactor AbstractJamesHandler and SMTPHandler/Handlerapi to be line-push-based (isolate IO layer)

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 3.0.0
    • James Core, SMTPServer
    • None

    Description

      From past discussions we decided that we are not ready to switch to MINA right now, but we want handlerapi-v2 to be easily ported to MINA and other asynchronous IO frameworks.

      Not everyone agreed switching to MINA-only (and require java5 for SSL usage) and Noel made a strawman implementation of a push based/line based processor.

      This is my attempt to bring this thing to James.

      This is only a first hack to make it working because DataCmdHandler will need almost a full rewrite. Now I used CRLFDelimitedByteBuffer from Noel and I updated the main code to introduce a lineHandlers stack and a LineHandler interface (LineHandler is my name for Noel IOHandler, I preferred to use LineHandler to avoid reusing a mina name with a different behaviour and avoid confusion).

      SMTPServerTest pass, but a lot of code have to be fixed/improved in order to apply this to trunk.

      Attachments

        1. handlerapi-asynch-3rd.diff
          135 kB
          Stefano Bagnara
        2. handlerapi-asynch-2nd.diff
          61 kB
          Stefano Bagnara
        3. handlerapi-asynch.diff
          36 kB
          Stefano Bagnara

        Activity

          People

            norman Norman Maurer
            bago Stefano Bagnara
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: