infodancer

2004 May 16 at 22:45 » Tagged as :

I continued my investigaion of infodancer after downloading and installing the Orielly upload handler as well as apache log4J. While I believe the com.orielly.servlet package to be a fine set of classes I am reluctant to use it, since I am investigating infodancer to be used as part of an open source system. The orielly package is not open source.

You will argue that qmail is not open source either, but it's my intention to redistribute qmail, merely to develop a web mail system based on maildir. There are enough and more web mail systems that make use of IMAP and POP3 but only a few support maildir. Those that do support maildir are not in java.

While I am perfectly happy with C or PHP, the project I have in mind would be a lot easier to build with java.

Getting back to maildir, the following errors were reported on compilation after all the dependencies had been installed.

"QMQPTransport.java": exception javax.mail.internet.AddressException is never thrown in the corresponding try block at line 81, column 5

"QMQPTransport.java": constructor InternetAddress(java.lang.String, boolean) has private access in class javax.mail.internet.InternetAddress at line 77, column 33

These errors are caused by a couple of lines of code in the send method of the QMTPTransport class.

The name suggests that this class implements the Quick Mail Que Protocol. It's not in widespread use at the moment, and I don't plan to make use of it anyway. So i decided to remove the body of the method and replace it with an UnsupportedOperationException. That I way i get to hear of it if some other method calls this one behind the scenes.

The subclass of javax.mail.Store that implements Maildir support is called DirectoryStore. However I wasn't very successfull in obtaining a new instance of this class for two reasons. First the javamail API refused to read in the values for the javamail.providers file I placed in the $jAVA_HOME/lib/ folder. The second problem was when I tried to bypass the Session class (due to the issue mentioned above) and tried to get an instance using 'new'. Unfortunately that lead to a NullPointerException.

Thereafter I decided to download the latest nightly tarball and give it another shot, since it's been some weeks since I first downloaded Infodancer there have been some significant differences, and there is yet another dependency - the Jakarta commons HTTP client. Time to put infodancer in the backburner again.