james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Joachim Draeger (JIRA)" <server-...@james.apache.org>
Subject [jira] Created: (JAMES-725) Redesign the Imap Command API to follow more SoC
Date Wed, 06 Dec 2006 16:51:21 GMT
Redesign the Imap Command API to follow more SoC

                 Key: JAMES-725
                 URL: http://issues.apache.org/jira/browse/JAMES-725
             Project: James
          Issue Type: Improvement
          Components: IMAPServer
    Affects Versions: Trunk
            Reporter: Joachim Draeger
         Assigned To: Joachim Draeger

The current design is really not bad and for the most commands absolutely sufficient. 

But at least search and fetch are candidates to follow a more strict template.

1. parse the complete command and put the information into a request object
2. apply the request: perform changes / fetch data, return a response object
3. render the response

Parts of the request/response objects could come from the backend API (MailboxManager)

This should be done in three 3 classes that can be tested separately. For trivial commands
we could allow simplification like nested classes.
(This is only a very quick draft of things I have in mind)
Another resource is handlerapi2, of course.

It should integrate smoothly in the current code base, without the need to change all commands
at once. (At first only Fetch and Search)
Running from AbstractJamesHandler is mandatory. 
(one step after the other, keep backward compatibility)

Ideally we could use existing solutions and follow the schema of MINA. 
We could prepare a future switch to MINA and make first experiments.

Maybe we could make use of ANTLR for the parsing part.

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


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

View raw message