diff --git a/.gitignore b/.gitignore index bf7311174..e2a23af44 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ # IntelliJ # User-specific stuff: +.idea .idea/workspace.xml .idea/tasks.xml .idea/findbugs-idea.xml @@ -21,6 +22,7 @@ .idea/shelf *.iws *.ipr +*.iml # Sensitive or high-churn files: .idea/dataSources.ids .idea/dataSources.xml diff --git a/.idea/.name b/.idea/.name deleted file mode 100644 index 8e283d75b..000000000 --- a/.idea/.name +++ /dev/null @@ -1 +0,0 @@ -ews-java-api \ No newline at end of file diff --git a/.idea/codeStyleSettings.xml b/.idea/codeStyleSettings.xml deleted file mode 100644 index ddacdf3e8..000000000 --- a/.idea/codeStyleSettings.xml +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml deleted file mode 100644 index be026393d..000000000 --- a/.idea/compiler.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - \ No newline at end of file diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml deleted file mode 100644 index e7bedf337..000000000 --- a/.idea/copyright/profiles_settings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml deleted file mode 100644 index 74c0d0a52..000000000 --- a/.idea/encodings.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_1_3.xml b/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_1_3.xml deleted file mode 100644 index 6c9fc331c..000000000 --- a/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_1_3.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Maven__ch_qos_logback_logback_core_1_1_3.xml b/.idea/libraries/Maven__ch_qos_logback_logback_core_1_1_3.xml deleted file mode 100644 index fd35ca452..000000000 --- a/.idea/libraries/Maven__ch_qos_logback_logback_core_1_1_3.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Maven__commons_codec_commons_codec_1_9.xml b/.idea/libraries/Maven__commons_codec_commons_codec_1_9.xml deleted file mode 100644 index a66d03944..000000000 --- a/.idea/libraries/Maven__commons_codec_commons_codec_1_9.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Maven__commons_logging_commons_logging_1_2.xml b/.idea/libraries/Maven__commons_logging_commons_logging_1_2.xml deleted file mode 100644 index eab40b329..000000000 --- a/.idea/libraries/Maven__commons_logging_commons_logging_1_2.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Maven__joda_time_joda_time_2_8.xml b/.idea/libraries/Maven__joda_time_joda_time_2_8.xml deleted file mode 100644 index f973fdc27..000000000 --- a/.idea/libraries/Maven__joda_time_joda_time_2_8.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Maven__junit_junit_4_12.xml b/.idea/libraries/Maven__junit_junit_4_12.xml deleted file mode 100644 index d41104174..000000000 --- a/.idea/libraries/Maven__junit_junit_4_12.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_4.xml b/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_4.xml deleted file mode 100644 index 78cfcd37a..000000000 --- a/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_4.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_4_1.xml b/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_4_1.xml deleted file mode 100644 index bfee5185a..000000000 --- a/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_4_1.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_1.xml b/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_1.xml deleted file mode 100644 index 24a6857d2..000000000 --- a/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_1.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hamcrest_hamcrest_all_1_3.xml b/.idea/libraries/Maven__org_hamcrest_hamcrest_all_1_3.xml deleted file mode 100644 index 56193163f..000000000 --- a/.idea/libraries/Maven__org_hamcrest_hamcrest_all_1_3.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml deleted file mode 100644 index f58bbc112..000000000 --- a/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mockito_mockito_core_1_10_19.xml b/.idea/libraries/Maven__org_mockito_mockito_core_1_10_19.xml deleted file mode 100644 index a5237036c..000000000 --- a/.idea/libraries/Maven__org_mockito_mockito_core_1_10_19.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Maven__org_objenesis_objenesis_2_1.xml b/.idea/libraries/Maven__org_objenesis_objenesis_2_1.xml deleted file mode 100644 index 7ab319b64..000000000 --- a/.idea/libraries/Maven__org_objenesis_objenesis_2_1.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Maven__org_slf4j_jcl_over_slf4j_1_7_12.xml b/.idea/libraries/Maven__org_slf4j_jcl_over_slf4j_1_7_12.xml deleted file mode 100644 index 5aeb229ec..000000000 --- a/.idea/libraries/Maven__org_slf4j_jcl_over_slf4j_1_7_12.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_12.xml b/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_12.xml deleted file mode 100644 index 411efc600..000000000 --- a/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_12.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index d1297649f..000000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index e9b29f758..000000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/.idea/scopes/scope_settings.xml b/.idea/scopes/scope_settings.xml deleted file mode 100644 index 922003b84..000000000 --- a/.idea/scopes/scope_settings.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 275077f82..000000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/ews-java-api.iml b/ews-java-api.iml deleted file mode 100644 index 4dc09d843..000000000 --- a/ews-java-api.iml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/readme.md b/readme.md index 9c512bd95..6101807c8 100644 --- a/readme.md +++ b/readme.md @@ -1,15 +1,29 @@ -[![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/OfficeDev/ews-java-api?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +# Getting Started with the EWS Java API + +[![Gitter](https://badges.gitter.im/JoinChat.svg)](https://gitter.im/OfficeDev/ews-java-api?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + [![Build Status](https://travis-ci.org/OfficeDev/ews-java-api.svg)](https://travis-ci.org/OfficeDev/ews-java-api) [![codecov.io](https://codecov.io/github/OfficeDev/ews-java-api/coverage.svg?branch=master)](https://codecov.io/github/OfficeDev/ews-java-api?branch=master) -# EWS JAVA API +The Exchange Web Services (EWS) Java API provides a managed interface for developing Java applications that use EWS. +By using the EWS Java API, you can access almost all the information stored in an Office 365, Exchange Online, or Exchange Server mailbox. However, this API is in sustaining mode, the recommended access pattern for Office 365 and Exchange online data is [Microsoft Graph](https://graph.microsoft.com) + +## Support statement + +Starting July 19th 2018, Exchange Web Services (EWS) will no longer receive feature updates. While the service will continue to receive security updates and certain non-security updates, product design and features will remain unchanged. This change also applies to the EWS SDKs for Java and .NET. More information here: https://developer.microsoft.com/en-us/graph/blogs/upcoming-changes-to-exchange-web-services-ews-api-for-office-365/ + + +## Getting started resources Please see the [Getting Started Guide](https://github.com/OfficeDev/ews-java-api/wiki/Getting-Started-Guide) on our wiki for an introduction to this library. ## Using the library -Prebuilt JARs are available in the Maven Central repository, which are easy to use with your project. Note that currently, no stable version is available yet, only snapshots in the snapshots repository. +Please see [this wiki-entry](https://github.com/OfficeDev/ews-java-api/wiki/Getting-Started-Guide#using-the-library) on how to include the library in your project ### Maven / Gradle For Documentation on how to use _ews-java-api_ with maven or gradle please refer to [this section in our wiki](https://github.com/OfficeDev/ews-java-api/wiki#maven--gradle-integration). ### Building from source To build a JAR from the source yourself, please see [this page](https://github.com/OfficeDev/ews-java-api/wiki/Building-EWS-JAVA-API). + + +This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information, see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. diff --git a/src/main/java/microsoft/exchange/webservices/data/autodiscover/AutodiscoverService.java b/src/main/java/microsoft/exchange/webservices/data/autodiscover/AutodiscoverService.java index bbb6a67de..147a61c7f 100644 --- a/src/main/java/microsoft/exchange/webservices/data/autodiscover/AutodiscoverService.java +++ b/src/main/java/microsoft/exchange/webservices/data/autodiscover/AutodiscoverService.java @@ -401,6 +401,7 @@ private URI getRedirectUrl(String domainName) request.setRequestMethod("GET"); request.setAllowAutoRedirect(false); + request.setTimeout(getTimeout()); // Do NOT allow authentication as this single request will be made over plain HTTP. request.setAllowAuthentication(false); @@ -1523,6 +1524,7 @@ private boolean tryGetEnabledEndpointsForHost(String host, request.setAllowAutoRedirect(false); request.setPreAuthenticate(false); request.setUseDefaultCredentials(this.getUseDefaultCredentials()); + request.setTimeout(getTimeout()); prepareCredentials(request); diff --git a/src/main/java/microsoft/exchange/webservices/data/core/ExchangeService.java b/src/main/java/microsoft/exchange/webservices/data/core/ExchangeService.java index 51ce1f990..529637769 100644 --- a/src/main/java/microsoft/exchange/webservices/data/core/ExchangeService.java +++ b/src/main/java/microsoft/exchange/webservices/data/core/ExchangeService.java @@ -3607,7 +3607,8 @@ private URI getAutodiscoverUrl(String emailAddress, AutodiscoverService autodiscoverService = new AutodiscoverService(this, requestedServerVersion); autodiscoverService.setWebProxy(getWebProxy()); - + autodiscoverService.setTimeout(getTimeout()); + autodiscoverService .setRedirectionUrlValidationCallback(validateRedirectionUrlCallback); autodiscoverService.setEnableScpLookup(this.getEnableScpLookup()); diff --git a/src/main/java/microsoft/exchange/webservices/data/core/ExchangeServiceBase.java b/src/main/java/microsoft/exchange/webservices/data/core/ExchangeServiceBase.java index bb01858b4..9e383c582 100644 --- a/src/main/java/microsoft/exchange/webservices/data/core/ExchangeServiceBase.java +++ b/src/main/java/microsoft/exchange/webservices/data/core/ExchangeServiceBase.java @@ -889,4 +889,8 @@ public static byte[] getSessionKey() { return ExchangeServiceBase.binarySecret; } } + + public int getMaximumPoolingConnections() { + return maximumPoolingConnections; + } } diff --git a/src/main/java/microsoft/exchange/webservices/data/core/request/ServiceRequestBase.java b/src/main/java/microsoft/exchange/webservices/data/core/request/ServiceRequestBase.java index 101d6b104..aafd48cf6 100644 --- a/src/main/java/microsoft/exchange/webservices/data/core/request/ServiceRequestBase.java +++ b/src/main/java/microsoft/exchange/webservices/data/core/request/ServiceRequestBase.java @@ -633,7 +633,13 @@ protected SoapFaultDetails readSoapFault(EwsServiceXmlReader reader) { protected HttpWebRequest validateAndEmitRequest() throws Exception { this.validate(); - HttpWebRequest request = this.buildEwsHttpWebRequest(); + HttpWebRequest request; + + if (service.getMaximumPoolingConnections() > 1) { + request = buildEwsHttpPoolingWebRequest(); + } else { + request = buildEwsHttpWebRequest(); + } try { try { diff --git a/src/main/java/microsoft/exchange/webservices/data/core/service/schema/ContactSchema.java b/src/main/java/microsoft/exchange/webservices/data/core/service/schema/ContactSchema.java index aacad6c17..da6ba708d 100644 --- a/src/main/java/microsoft/exchange/webservices/data/core/service/schema/ContactSchema.java +++ b/src/main/java/microsoft/exchange/webservices/data/core/service/schema/ContactSchema.java @@ -306,7 +306,7 @@ private interface FieldUris { * The MSExchangeCertificate. */ - String MSExchangeCertificate = "contacts:MSExchageCertificate"; + String MSExchangeCertificate = "contacts:MSExchangeCertificate"; /** * The DirectoryId. diff --git a/src/main/java/microsoft/exchange/webservices/data/util/TimeZoneUtils.java b/src/main/java/microsoft/exchange/webservices/data/util/TimeZoneUtils.java index c084aab0d..f0ab97d49 100644 --- a/src/main/java/microsoft/exchange/webservices/data/util/TimeZoneUtils.java +++ b/src/main/java/microsoft/exchange/webservices/data/util/TimeZoneUtils.java @@ -169,6 +169,7 @@ public static Map createOlsonTimeZoneToMsMap() { map.put("America/Eirunepe", "SA Pacific Standard Time"); map.put("America/El_Salvador", "Central America Standard Time"); map.put("America/Ensenada", "Pacific Standard Time"); + map.put("America/Fort_Nelson", "Mountain Standard Time"); map.put("America/Fort_Wayne", "US Eastern Standard Time"); map.put("America/Fortaleza", "SA Eastern Standard Time"); map.put("America/Glace_Bay", "Atlantic Standard Time"); diff --git a/src/test/java/microsoft/exchange/webservices/data/property/complex/OlsonTimeZoneTest.java b/src/test/java/microsoft/exchange/webservices/data/property/complex/OlsonTimeZoneTest.java index 52afc2329..3278e4b7a 100644 --- a/src/test/java/microsoft/exchange/webservices/data/property/complex/OlsonTimeZoneTest.java +++ b/src/test/java/microsoft/exchange/webservices/data/property/complex/OlsonTimeZoneTest.java @@ -20,7 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ - + package microsoft.exchange.webservices.data.property.complex; import microsoft.exchange.webservices.data.property.complex.time.OlsonTimeZoneDefinition; @@ -54,7 +54,7 @@ public void testOlsonTimeZoneConversion() { final OlsonTimeZoneDefinition olsonTimeZone = new OlsonTimeZoneDefinition(timeZone); final String olsonTimeZoneId = olsonTimeZone.getId(); - Assert.assertFalse(StringUtils.isBlank(olsonTimeZoneId)); + Assert.assertFalse("olsonTimeZoneId for " + timeZoneId + " is blank", StringUtils.isBlank(olsonTimeZoneId)); Assert.assertEquals(olsonTimeZoneToMsMap.get(timeZoneId), olsonTimeZoneId); } }