From 08f86575d5a45b3c89afb294e315cd0d881383c3 Mon Sep 17 00:00:00 2001 From: mguessan Date: Wed, 7 Feb 2007 11:51:08 +0000 Subject: [PATCH] add keep delay to settings panel git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@25 3d1905a2-6b24-0410-a738-b14d5a86fcbd --- src/java/davmail/Settings.java | 1 + src/java/davmail/SettingsFrame.java | 6 +++++- src/java/davmail/exchange/ExchangeSession.java | 12 +++++++++--- src/java/davmail/pop/PopConnection.java | 2 ++ src/test/davmail/exchange/TestExchangeSession.java | 2 +- 5 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/java/davmail/Settings.java b/src/java/davmail/Settings.java index 9846386a..334dd559 100644 --- a/src/java/davmail/Settings.java +++ b/src/java/davmail/Settings.java @@ -29,6 +29,7 @@ public class Settings { settings.put("davmail.url", "http://exchangeServer"); settings.put("davmail.popPort", "110"); settings.put("davmail.smtpPort", "25"); + settings.put("davmail.keepDelay", "30"); settings.put("davmail.enableProxy", "false"); settings.put("davmail.proxyHost", ""); settings.put("davmail.proxyPort", ""); diff --git a/src/java/davmail/SettingsFrame.java b/src/java/davmail/SettingsFrame.java index db6847dc..e71cb3ae 100644 --- a/src/java/davmail/SettingsFrame.java +++ b/src/java/davmail/SettingsFrame.java @@ -19,16 +19,19 @@ public class SettingsFrame extends JFrame { public SettingsFrame() { setTitle("DavMail Settings"); - JPanel panel = new JPanel(new GridLayout(3, 2)); + JPanel panel = new JPanel(new GridLayout(4, 2)); panel.setBorder(BorderFactory.createTitledBorder("Gateway settings")); final JTextField urlField = new JTextField(Settings.getProperty("davmail.url"), 15); final JTextField popPortField = new JTextField(Settings.getProperty("davmail.popPort"), 4); final JTextField smtpPortField = new JTextField(Settings.getProperty("davmail.smtpPort"), 4); + final JTextField keepDelayField = new JTextField(Settings.getProperty("davmail.keepDelay"), 4); + keepDelayField.setToolTipText("Number of days to keep messages in trash"); addSettingComponent(panel, "OWA url: ", urlField); addSettingComponent(panel, "Local POP port: ", popPortField); addSettingComponent(panel, "Local SMTP port: ", smtpPortField); + addSettingComponent(panel, "Keep Delay: ", keepDelayField); add("North", panel); @@ -75,6 +78,7 @@ public class SettingsFrame extends JFrame { Settings.setProperty("davmail.url", urlField.getText()); Settings.setProperty("davmail.popPort", popPortField.getText()); Settings.setProperty("davmail.smtpPort", smtpPortField.getText()); + Settings.setProperty("davmail.keepDelay", keepDelayField.getText()); Settings.setProperty("davmail.enableProxy", String.valueOf(enableProxyField.isSelected())); Settings.setProperty("davmail.proxyHost", httpProxyField.getText()); Settings.setProperty("davmail.proxyPort", httpProxyPortField.getText()); diff --git a/src/java/davmail/exchange/ExchangeSession.java b/src/java/davmail/exchange/ExchangeSession.java index c9d529d4..5ee26361 100644 --- a/src/java/davmail/exchange/ExchangeSession.java +++ b/src/java/davmail/exchange/ExchangeSession.java @@ -91,6 +91,8 @@ public class ExchangeSession { public static final String CONTENT_TYPE_HEADER = "content-type: "; public static final String CONTENT_TRANSFER_ENCODING_HEADER = "content-transfer-encoding: "; + private static final int DEFAULT_KEEP_DELAY = 30; + /** * Date parser from Exchange format */ @@ -445,11 +447,15 @@ public class ExchangeSession { /** * Delete oldest messages in trash. - * - * @param keepDelay number of days to keep messages in trash before delete + * keepDelay is the number of days to keep messages in trash before delete * @throws IOException */ - public void purgeOldestTrashMessages(int keepDelay) throws IOException { + public void purgeOldestTrashMessages() throws IOException { + int keepDelay = Settings.getIntProperty("davmail.keepDelay"); + if (keepDelay == 0) { + keepDelay = DEFAULT_KEEP_DELAY; + } + Calendar cal = Calendar.getInstance(); cal.add(Calendar.DAY_OF_MONTH, -keepDelay); logger.debug("Keep message not before " + cal.getTime()); diff --git a/src/java/davmail/pop/PopConnection.java b/src/java/davmail/pop/PopConnection.java index 4b5d2314..0d625930 100644 --- a/src/java/davmail/pop/PopConnection.java +++ b/src/java/davmail/pop/PopConnection.java @@ -68,6 +68,8 @@ public class PopConnection extends AbstractConnection { String command = tokens.nextToken(); if ("QUIT".equalsIgnoreCase(command)) { + // delete messages before quit + session.purgeOldestTrashMessages(); sendOK("Bye"); break; } else if ("USER".equalsIgnoreCase(command)) { diff --git a/src/test/davmail/exchange/TestExchangeSession.java b/src/test/davmail/exchange/TestExchangeSession.java index f0b91af1..08f16913 100644 --- a/src/test/davmail/exchange/TestExchangeSession.java +++ b/src/test/davmail/exchange/TestExchangeSession.java @@ -26,7 +26,7 @@ public class TestExchangeSession { messageTest.write(System.out); System.out.println("Elapsed time " + (System.currentTimeMillis()-startTime) + " ms"); - session.purgeOldestTrashMessages(22); + session.purgeOldestTrashMessages(); } catch (Exception e) { e.printStackTrace();