serialization support to work with Prevayler
authoradam <adam@megacz.com>
Tue, 3 Aug 2004 07:18:03 +0000 (07:18 +0000)
committeradam <adam@megacz.com>
Tue, 3 Aug 2004 07:18:03 +0000 (07:18 +0000)
darcs-hash:20040803071803-5007d-ed308afdae989f3c372158d38fa44e20f907ecb9.gz

src/org/ibex/mail/Address.java
src/org/ibex/mail/Main.java
src/org/ibex/mail/protocol/IMAP.java
src/org/ibex/mail/target/FileBasedMailbox.java

index c6cf90f..57dbba8 100644 (file)
@@ -8,7 +8,7 @@ import java.net.*;
 import java.io.*;
 
 // FIXME this should be more forgiving
-public class Address extends JSReflection {
+public class Address extends JSReflection implements Serializable {
     public final String user;
     public final String host;
     public final String description;
index 583f432..6a44fc6 100644 (file)
@@ -7,6 +7,7 @@ import org.ibex.io.*;
 import java.io.*;
 import java.net.*;
 import java.util.*;
+import org.ibex.crypto.*;
 
 public class Main implements Listener {
 
index 748847b..5b74005 100644 (file)
@@ -1,5 +1,6 @@
 package org.ibex.mail.protocol;
 import org.ibex.io.*;
+import org.ibex.crypto.*;
 import org.ibex.jinetd.Listener;
 import org.ibex.jinetd.Worker;
 import org.ibex.mail.*;
index 60e5246..54347cf 100644 (file)
@@ -11,7 +11,7 @@ import java.text.*;
 // FIXME use directory date/time as UIDNEXT and file date/time as UID; need to 'correct' file date/time after changes
 
 /** An exceptionally crude implementation of Mailbox relying on POSIXy filesystem semantics */
-public class FileBasedMailbox extends Mailbox.Default {
+public class FileBasedMailbox extends Mailbox.Default implements Serializable {
 
     public String toString() { return "[FileBasedMailbox " + path + "]"; }
 
@@ -40,6 +40,11 @@ public class FileBasedMailbox extends Mailbox.Default {
         new File(this.path = path).mkdirs();
         uidNext(false);
     }
+    private void writeObject(java.io.ObjectOutputStream out) throws IOException { out.writeObject(path); }
+    private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException {
+        new File(this.path = (String)in.readObject()).mkdirs();
+        uidNext(false);
+    }
 
     public Mailbox          slash(String name, boolean create) {
         return FileBasedMailbox.getFileBasedMailbox(path + slash + name, create); }