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

SpoolManager refactorings

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.3.0
    • 3.0.0
    • None

    Description

      JamesSPoolManager and LinearProcessor should be refactored in 3 layers:
      1) the spoolmanager: create threads and worker, accept mails and pass them to the "mail processor"
      2) JamesProcessor: manage a list of processors and pass the mail to the processor given its current state
      3) LInearProcessor: remain almost unchanged, but handle its own configuration.

      The 3 objects could be transformed in toplevel components in order to remove the ContainerUtil usage and have a better codebase to run in different containers.

      The final goal would be to have a modular spoolmanager: we could then introduce an OutgoingSpoolManager that simply implement the current "scheduling" and people could wire together spoolmanagers and mail processors as they prefer.

      It also makes more sense to have the RemoteDelivery in a top level component instead of using Mailet instantiated threads.

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: