james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eric Charles (JIRA)" <server-...@james.apache.org>
Subject [jira] Commented: (IMAP-208) Organize projects to split store from imap
Date Fri, 03 Sep 2010 09:50:34 GMT

    [ https://issues.apache.org/jira/browse/IMAP-208?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12905843#action_12905843
] 

Eric Charles commented on IMAP-208:
-----------------------------------

I made this diagram after:
- Trying to merge imap-deployment and imap-seda to ima-protocol-tester (https://issues.apache.org/jira/browse/IMAP-204)
- Trying to split the imap-api classes/packages
- Looking at project maven dependencies (the m2eclipse "Depency Graph" shows much)

It became obvious that current "imap" packages are imported in many other non-imap projects.
Example:
- HumanReadableText in imap-api is used all the mailbox/store projects (which also used for
pop and smtp obviously)
- ImapProcessor interface in imap-api seems a good place (api = interface) but is only used
in processor (except for the functional tests) - could be moved to processor
- MailboxPath in in imap-api is used all the way around (even in pop3server) - tried to move
it to mailbox project...
- 

After this difficult (and unsuccessful so far) "incremental" approach (progressively move
packages/classes), I though a view on how we could organize things could help.
The projects-view-20100902.png diagram takes the existing projects and based on the names
and "main responsiblity", shows the dependencies that could be implemented. This gives following
"groups" (the links must be read as "uses", or "imports"):
- protocols: All stuff related to imap/pop3/smtp communication protocols - smtp is already
there, pop3 was attempted, imap must be refactored.
- entry point (so bad name...) : Kind of adapters between the pop/imap and mailbox, and between
smtp and spool. Also has the management interface
- imap processor : don't know if imap processor is "before", "in" or "after" entry point.
Currently placed after.
- spool: current spoolmanager with it mailets (fetchmail can be in spool or enty point ???)
- manager: the logic implementing the management
- mailbox; the api to access the maiblox (without knowledge of store) (just realize i forgot
imap-message in the diagram)
- store : the abstract and util to be implemented/used by the different stores (jpa, jcr,
maildir, torque, memory,...)
- users: the user repository
- util : some utility used by all projects
- container; the current project responsible for the deployement (spring, future osgi container,...)
- mpt: projects related to protocol testing

That's much to read.
Tks in advance for your feedback.


> Organize projects to split store from imap
> ------------------------------------------
>
>                 Key: IMAP-208
>                 URL: https://issues.apache.org/jira/browse/IMAP-208
>             Project: JAMES Imap
>          Issue Type: Bug
>            Reporter: Eric Charles
>         Attachments: projects-view-20100902.png
>
>
> Current "imap" project provides "store" and "imap" functionalities.
> This should be splitted.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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


Mime
View raw message