james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefano Bagnara <apa...@bago.org>
Subject Re: IMAP development
Date Thu, 14 Sep 2006 12:30:59 GMT
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: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


Mime
View raw message