Hi Joachim,

I'm happy to see you're still around!

I would like to find out a good roadmap for IMAP in James.

Here are the goals:
1) Release james 2.4 as storage-compatible with older james 2.x.
2) Start including some IMAP stuff in trunk.

As a sidenote I think that we can safely include your javamailstore-mailrepository work in trunk, but this has not much to do with IMAP.

I started reviewing what you publshed here:
http://www.joachim-draeger.de/JamesImap/drafts.html

I think that even the single M1 step is too much stuff and we should start with a much simpler set of interfaces.

I thought that the following steps could be included in the roadmap as a starting point.

1) the MessageRepository (Mailbox) interface: this would replace the current MailRepository but would not include the Mail object but simply the Message object/stream (and eventually some more attributes). The default messageRepository generates its own key and provides few methods to store/retrieve/delete messages (maybe we could add "move" later). Imho the basing MessageRepository should be really, really easy!

2) some sort of named repository mapper: this has been discussed in past and is described here: http://wiki.apache.org/james/JamesV3/Plans (Message repository directory structure). I think that this would solve the nested repositories problem at James level and would give us a simpler way to work with objects stored in repositories. We currently identify the repository using the TYPE (MAIL|SPOOL|OBJECT|STREAM) and an url (db/dbfile/file). We could keep a flat structure for SPOOL repositories and introduce a new virtual tree for the new MESSAGE repository so that we could mount file://var/mail in /mail , db://maildb/inboxes in /inboxes, javamailstore://maildir/var/maildir (sample url) to /maildir.

Once this will be in the repository we will discuss what is the minimal set of features you included in ImapMailboxRepository to be able to include the imap code in trunk so that I can send a message via SMTP and retrieve via IMAP. I think that the goal is to be able to commit the imap code to trunk. As soon as the code will be on trunk it will be easier to discuss following steps and to involve further people.

Acl, User/Groups, triggers and quotas are a lot of stuff, and imo we can't put everything in a single step.

Stefano

Joachim Draeger wrote:
Hi all!

Still lurking around here and following the mailing lists. I'm pleased to see how the James 2.3.0 release makes such great progress, although JAMES-603 looks really ugly.

I've postponed development on the IMAP code until there is a suitable repository API for James. Because this is affecting whole James I really can't do that on my own. I started writing drafts and interfaces to collect the requirements. But I got the feedback that everyone wanted to concentrate on the 2.3.0 release at that time.

Now, as the release date comes nearer and people starting discussion for new features and roadmap again, I suggest working on the repository API before going back to routine and start working on 2.4.0.

Greetings,

Joachim



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to