From cbf4b4acf64ab7981bda2704aea00e26931d3f15 Mon Sep 17 00:00:00 2001 From: mguessan Date: Wed, 2 Jun 2010 08:46:46 +0000 Subject: [PATCH] EWS: start ExchangeSession refactoring to extract Dav calls git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@1068 3d1905a2-6b24-0410-a738-b14d5a86fcbd --- .../davmail/exchange/ExchangeSession.java | 138 ++------------- .../exchange/ExchangeSessionFactory.java | 8 +- .../exchange/dav/DavExchangeSession.java | 167 ++++++++++++++++++ .../exchange/ews/EwsExchangeSession.java | 45 +++++ .../exchange/ews/ExtendedFieldURI.java | 37 +++- .../AbstractExchangeSessionTestCase.java | 3 +- 6 files changed, 268 insertions(+), 130 deletions(-) create mode 100644 src/java/davmail/exchange/dav/DavExchangeSession.java create mode 100644 src/java/davmail/exchange/ews/EwsExchangeSession.java diff --git a/src/java/davmail/exchange/ExchangeSession.java b/src/java/davmail/exchange/ExchangeSession.java index 4645d552..4bc69a3f 100644 --- a/src/java/davmail/exchange/ExchangeSession.java +++ b/src/java/davmail/exchange/ExchangeSession.java @@ -55,7 +55,6 @@ import javax.mail.util.SharedByteArrayInputStream; import java.io.*; import java.net.HttpURLConnection; import java.net.NoRouteToHostException; -import java.net.URL; import java.net.UnknownHostException; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -65,7 +64,7 @@ import java.util.zip.GZIPInputStream; /** * Exchange session through Outlook Web Access (DAV) */ -public class ExchangeSession { +public abstract class ExchangeSession { protected static final Logger LOGGER = Logger.getLogger("davmail.exchange.ExchangeSession"); /** @@ -162,22 +161,22 @@ public class ExchangeSession { /** * Various standard mail boxes Urls */ - private String inboxUrl; - private String deleteditemsUrl; - private String sentitemsUrl; - private String sendmsgUrl; - private String draftsUrl; - private String calendarUrl; - private String contactsUrl; - private String publicFolderUrl; + protected String inboxUrl; + protected String deleteditemsUrl; + protected String sentitemsUrl; + protected String sendmsgUrl; + protected String draftsUrl; + protected String calendarUrl; + protected String contactsUrl; + protected String publicFolderUrl; /** * Base user mailboxes path (used to select folder) */ - private String mailPath; - private String email; + protected String mailPath; + protected String email; private String alias; - private final HttpClient httpClient; + protected final HttpClient httpClient; private final String userName; @@ -236,10 +235,7 @@ public class ExchangeSession { httpClient.getParams().setParameter(HttpClientParams.PREEMPTIVE_AUTHENTICATION, true); } - buildMailPath(method); - - // get base http mailbox http urls - getWellKnownFolders(); + buildSessionInfo(method); } catch (DavMailAuthenticationException exc) { LOGGER.error(exc.getMessage()); @@ -549,52 +545,7 @@ public class ExchangeSession { } } - static final String BASE_HREF = ""); } @@ -56,5 +82,8 @@ public class ExtendedFieldURI implements FieldURI { public static final ExtendedFieldURI PR_ACTION_FLAG = new ExtendedFieldURI("0x1081", PropertyType.Integer); public static final ExtendedFieldURI PR_URL_COMP_NAME = new ExtendedFieldURI("0x10F3", PropertyType.String); + public static final ExtendedFieldURI PR_LAST_MODIFICATION_TIME = new ExtendedFieldURI("0x3008", PropertyType.SystemTime); + + } diff --git a/src/test/davmail/exchange/AbstractExchangeSessionTestCase.java b/src/test/davmail/exchange/AbstractExchangeSessionTestCase.java index 780ace0f..11c83dbf 100644 --- a/src/test/davmail/exchange/AbstractExchangeSessionTestCase.java +++ b/src/test/davmail/exchange/AbstractExchangeSessionTestCase.java @@ -18,6 +18,7 @@ */ package davmail.exchange; +import davmail.exchange.dav.DavExchangeSession; import junit.framework.TestCase; import java.io.IOException; @@ -59,7 +60,7 @@ public class AbstractExchangeSessionTestCase extends TestCase { // open session, get username and password from davmail.properties // Note: those properties should *not* exist in normal production mode, // they are not used by DavMail, just by this test case - session = new ExchangeSession(Settings.getProperty("davmail.url"), Settings.getProperty("davmail.username"), Settings.getProperty("davmail.password")); + session = new DavExchangeSession(Settings.getProperty("davmail.url"), Settings.getProperty("davmail.username"), Settings.getProperty("davmail.password")); } }