[
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: [email protected]
For additional commands, e-mail: [email protected]