[ http://issues.apache.org/jira/browse/JAMES-502?page=comments#action_12415934 ]
Joachim Draeger commented on JAMES-502: --------------------------------------- 2006-06-13 Hi everybody, after a lot of javamaildir and JavaMailStoreMailRepository i found some time for IMAP again. To safely share the JavaMail Store between MailRepository and possibly multiple instances of IMAP i wrote a StoreGateKeeper in additional to the FolderGateKeeper to care for caching and opening/closing Folders. It looks a bit complicated because everything goes through a few wrappers but it makes it possible to keep parts separated. The reason is that javamaildir allows access by multiple threads but not at multiple instances of one Folder. Additionally a Folder has to be closed after a session to write Flags. To say it again: There is no strong dependency to JavaMail Store or javamaildir. I've implemented two existing interfaces: ImapMailbox and ImapHost. This time I followed a bit the TDD and exploratory testing. It really sucks to always build a jar launch James start Thunderbird and search through the logs until you find an exception or the right debug message. After writing a few very simple stubs/mocks I could start the server directly through a static void main! (see test org.apache.james.imapserver.util.ImapServerLauncher) Just create a tcp directory choose run from eclipse and have fun. Or just run it in the debugger. The traffic gets logged into tcp. In org.apache.james.imapserver.handler.session.SessionTest I'm just using a ByteArrayStream pair and process it via ImapRequestHandler.handleRequest(); Using debugger is very useful here too. I preferred first writing my own tests (exploratory) in favor of the existing original ones. But now I understand them much better and I'm sure many of them could be reanimated. For two reasons I decided to setup a public svn repository. 1. Putting out a "release" takes much time, even it is only a probosal. 2. I hope more people will join now But of course I would like to see Imap server playing in the james sandbox soon. :-) http://svn.joachim-draeger.de/repos/james/ It contains the latest (my) versions of javamaildir, javamailstore-mailrepository and imap. The latest versions of all three are needed at the moment. But they should be easy to build. Just download a few libs and use ant. Or just make a few clicks in sure IDE and wire the source folders together. I had to block the directories including mixed licensed jars for known reasons. javamaildir just needs junit,activation and javamail. javamailstore-mailrepository is well documentated. :-) imap needs log4j, junit, jmock 1.1.0RC1, commons-io and many jars from the james lib directory. I hope to have a convenient build like in javamailstore-mailrepositroy soon. Please ask if you have any questions. To get startet in IMAP I found this document very useful: http://www.cs.nyu.edu/artg/internet/Spring2003/assignments/rfc2060_with_changes-04-23.pdf (with highlighted important parts and comments) At the moment I will concentrate on Thunderbird 1.5 as client. For a reference it is quite helpful to watch "real life" imap sessions with a packet sniffer like ethereal. As a reference server I prefer courier. If you don't have access to a suitable account I could create one for you at my server. The next tasks will be: 1. creating a build script 2. reanimate existing tests 3. maybe some fancy UML 4. bringing more commands to life 5. think of a James Imap compatible MessageRepository I'm looking forward for your input and questions! :-) Joachim > IMAP support > ------------ > > Key: JAMES-502 > URL: http://issues.apache.org/jira/browse/JAMES-502 > Project: James > Type: New Feature > Components: IMAPServer > Reporter: Stefano Bagnara > Fix For: 3.0 > Attachments: james-imap2-proposal-extended1.zip, james-imap2-proposal.zip > > James needs a working IMAP implementations. This is just a container for the > IMAP efforts and updates. > Many times in the list people ask the current status, the missing steps, and > more. We should add subtasks to this issue to clear up things. > If you're willing to help with IMAP support for James please read mailing > list archives and this issue history and discuss in the list what you're > willing to do. > I (Stefano) will be happy to help for everything related the James/Avalon > integration and the correct service interactions, but I don't know anything > about the IMAP protocol itself. -- 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]