public static final long MAGIC_DATE = 0;
private static final char slash = File.separatorChar;
- private static final WeakHashMap<String,FileBasedMailbox> instances = new WeakHashMap<String,FileBasedMailbox>();
+ private static final WeakHashMap<String,Mailbox> instances = new WeakHashMap<String,Mailbox>();
public String toString() { return "[FileBasedMailbox " + path.getAbsolutePath() + "]"; }
public Mailbox slash(String name, boolean create) { return getFileBasedMailbox(path.getAbsolutePath()+slash+name, create); }
// FIXME: should be a File()
- public static synchronized FileBasedMailbox getFileBasedMailbox(String path, boolean create) {
+ public static synchronized Mailbox getFileBasedMailbox(String path, boolean create) {
try {
- FileBasedMailbox ret = instances.get(path);
+ Mailbox ret = instances.get(path);
if (ret == null) {
if (!create && !(new File(path).exists())) return null;
- instances.put(path, ret = new FileBasedMailbox(new File(path)));
+ if (new File(new File(path)+"/subscribers").exists()) {
+ ret = new MailingList(new File(path), new FileBasedMailbox(new File(path)));
+ } else {
+ ret = new FileBasedMailbox(new File(path));
+ }
+ instances.put(path, ret);
}
return ret;
} catch (Exception e) {
String[] files = path.list();
for(int i=0; i<files.length; i++) {
try {
- if (files[i].indexOf('.') != -1) files[i] = files[i].substring(0, files[i].indexOf('.'));
+ if (files[i].indexOf('.') == -1) continue;
+ if (files[i].charAt(0) == '.') continue;
+ files[i] = files[i].substring(0, files[i].indexOf('.'));
int n = Integer.parseInt(files[i]);
if (n>=uidNext) uidNext = n;
} catch(Exception e) { Log.error(this, e); }
private void banner(HttpServletRequest request, HttpServletResponse response) throws IOException {
String basename = request.getServletPath();
String realpath = getServletContext().getRealPath(basename);
+ /*
MailingList list = MailingList.getMailingList(realpath);
list.banner(request, response);
+ */
+ banner(request, response);
}
private void topright(HttpServletRequest request, HttpServletResponse response, String[][] messages) throws IOException {