mirror of
https://github.com/moparisthebest/davmail
synced 2025-01-12 05:58:48 -05:00
Configure Maven reports and fix some checkstyle detected errors
git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@58 3d1905a2-6b24-0410-a738-b14d5a86fcbd
This commit is contained in:
parent
0445e4bcde
commit
f6594bcd55
@ -1,5 +1,5 @@
|
||||
<project name="DavMail" default="dist" basedir=".">
|
||||
<property name="version" value="1.0.2"/>
|
||||
<property name="version" value="1.0.3"/>
|
||||
|
||||
<path id="classpath">
|
||||
<pathelement location="classes"/>
|
||||
|
78
pom.xml
78
pom.xml
@ -1,10 +1,11 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>davmail</groupId>
|
||||
<artifactId>davmail</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.0.1</version>
|
||||
<version>1.0.3</version>
|
||||
<name>davmail</name>
|
||||
<url>http://www.sourceforge.net/projects/davmail</url>
|
||||
<description>
|
||||
@ -14,7 +15,7 @@
|
||||
</description>
|
||||
<developers>
|
||||
<developer>
|
||||
<name>Mickaël Guessant</name>
|
||||
<name>Mickaël Guessant</name>
|
||||
<email>mguessan@free.fr</email>
|
||||
<url>http://mguessan.free.fr</url>
|
||||
<roles>
|
||||
@ -23,6 +24,13 @@
|
||||
</roles>
|
||||
</developer>
|
||||
</developers>
|
||||
<licenses>
|
||||
<license>
|
||||
<name>GNU General Public License</name>
|
||||
<url>http://www.gnu.org/licenses/gpl.html</url>
|
||||
<distribution>repo</distribution>
|
||||
</license>
|
||||
</licenses>
|
||||
<mailingLists>
|
||||
<mailingList>
|
||||
<name>DavMail User List</name>
|
||||
@ -114,4 +122,70 @@
|
||||
<url>scpexe://shell.sourceforge.net/home/groups/d/da/davmail/htdocs</url>
|
||||
</site>
|
||||
</distributionManagement>
|
||||
<reporting>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-project-info-reports-plugin</artifactId>
|
||||
<reportSets>
|
||||
<reportSet>
|
||||
<reports>
|
||||
<report>project-team</report>
|
||||
<report>mailing-list</report>
|
||||
<report>issue-tracking</report>
|
||||
<report>dependencies</report>
|
||||
<report>license</report>
|
||||
<report>scm</report>
|
||||
<!--report>cim</report-->
|
||||
</reports>
|
||||
</reportSet>
|
||||
</reportSets>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
</plugin>
|
||||
<!--plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-changelog-plugin</artifactId>
|
||||
</plugin-->
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>findbugs-maven-plugin</artifactId>
|
||||
<version>1.0-beta-1</version>
|
||||
<configuration>
|
||||
<!-- High|Normal|Low|Exp|Ignore -->
|
||||
<threshold>Normal</threshold>
|
||||
<!-- Min|Default|Max -->
|
||||
<effort>Default</effort>
|
||||
<excludeFilterFile>
|
||||
findbugs-exclude.xml
|
||||
</excludeFilterFile>
|
||||
<includeFilterFile>
|
||||
findbugs-include.xml
|
||||
</includeFilterFile>
|
||||
<visitors>
|
||||
FindDeadLocalStores,UnreadFields
|
||||
</visitors>
|
||||
<omitVisitors>
|
||||
FindDeadLocalStores,UnreadFields
|
||||
</omitVisitors>
|
||||
<pluginList>
|
||||
/libs/fb-contrib/fb-contrib-2.8.0.jar
|
||||
</pluginList>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-checkstyle-plugin</artifactId>
|
||||
<configuration>
|
||||
<configLocation>src/checkstyle/checkstyle-configuration.xml</configLocation>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jxr-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</reporting>
|
||||
</project>
|
||||
|
192
src/checkstyle/checkstyle-configuration.xml
Normal file
192
src/checkstyle/checkstyle-configuration.xml
Normal file
@ -0,0 +1,192 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/*
|
||||
* Copyright 2001-2004 The Apache Software Foundation.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
-->
|
||||
|
||||
<!DOCTYPE module PUBLIC
|
||||
"-//Puppy Crawl//DTD Check Configuration 1.1//EN"
|
||||
"http://www.puppycrawl.com/dtds/configuration_1_1.dtd">
|
||||
|
||||
<!--
|
||||
|
||||
Checkstyle configuration that checks the sun coding conventions from:
|
||||
|
||||
- the Java Language Specification at
|
||||
http://java.sun.com/docs/books/jls/second_edition/html/index.html
|
||||
|
||||
- the Sun Code Conventions at http://java.sun.com/docs/codeconv/
|
||||
|
||||
- the Javadoc guidelines at
|
||||
http://java.sun.com/j2se/javadoc/writingdoccomments/index.html
|
||||
|
||||
- the JDK Api documentation http://java.sun.com/j2se/docs/api/index.html
|
||||
|
||||
- some best practices
|
||||
|
||||
Checkstyle is very configurable. Be sure to read the documentation at
|
||||
http://checkstyle.sf.net (or in your downloaded distribution).
|
||||
|
||||
Most Checks are configurable, be sure to consult the documentation.
|
||||
|
||||
To completely disable a check, just comment it out or delete it from the file.
|
||||
|
||||
Finally, it is worth reading the documentation.
|
||||
|
||||
-->
|
||||
|
||||
<module name="Checker">
|
||||
|
||||
<!-- Checks that a package.html file exists for each package. -->
|
||||
<!-- See http://checkstyle.sf.net/config_javadoc.html#PackageHtml
|
||||
<module name="PackageHtml"/>-->
|
||||
|
||||
<!-- Checks whether files end with a new line. -->
|
||||
<!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
|
||||
<!-- <module name="NewlineAtEndOfFile"/> -->
|
||||
|
||||
<!-- Checks that property files contain the same keys. -->
|
||||
<!-- See http://checkstyle.sf.net/config_misc.html#Translation -->
|
||||
<module name="Translation"/>
|
||||
|
||||
|
||||
<module name="TreeWalker">
|
||||
|
||||
<!--property name="cacheFile" value="${checkstyle.cache.file}"/-->
|
||||
|
||||
<!-- Checks for Javadoc comments. -->
|
||||
<!-- See http://checkstyle.sf.net/config_javadoc.html
|
||||
<module name="JavadocMethod"/>
|
||||
<module name="JavadocType"/>
|
||||
<module name="JavadocVariable"/>
|
||||
<module name="JavadocStyle"/>
|
||||
-->
|
||||
|
||||
|
||||
<!-- Checks for Naming Conventions. -->
|
||||
<!-- See http://checkstyle.sf.net/config_naming.html -->
|
||||
<module name="ConstantName"/>
|
||||
<module name="LocalFinalVariableName"/>
|
||||
<module name="LocalVariableName"/>
|
||||
<module name="MemberName"/>
|
||||
<module name="MethodName"/>
|
||||
<module name="PackageName"/>
|
||||
<module name="ParameterName"/>
|
||||
<module name="StaticVariableName"/>
|
||||
<module name="TypeName"/>
|
||||
|
||||
|
||||
<!-- Checks for Headers -->
|
||||
<!-- See http://checkstyle.sf.net/config_header.html -->
|
||||
<!--module name="Header"-->
|
||||
<!-- The follow property value demonstrates the ability -->
|
||||
<!-- to have access to ANT properties. In this case it uses -->
|
||||
<!-- the ${basedir} property to allow Checkstyle to be run -->
|
||||
<!-- from any directory within a project. See property -->
|
||||
<!-- expansion, -->
|
||||
<!-- http://checkstyle.sf.net/config.html#properties -->
|
||||
<!-- <property -->
|
||||
<!-- name="headerFile" -->
|
||||
<!-- value="${basedir}/java.header"/> -->
|
||||
<!--property name="headerFile" value="${checkstyle.header.file}"/>
|
||||
</module-->
|
||||
|
||||
<!-- Following interprets the header file as regular expressions. -->
|
||||
<!-- <module name="RegexpHeader"/> -->
|
||||
|
||||
|
||||
<!-- Checks for imports -->
|
||||
<!-- See http://checkstyle.sf.net/config_import.html -->
|
||||
<!--module name="AvoidStarImport"/-->
|
||||
<module name="IllegalImport"/> <!-- defaults to sun.* packages -->
|
||||
<module name="RedundantImport"/>
|
||||
<module name="UnusedImports"/>
|
||||
|
||||
|
||||
<!-- Checks for Size Violations. -->
|
||||
<!-- See http://checkstyle.sf.net/config_sizes.html -->
|
||||
<module name="FileLength"/>
|
||||
<!--<module name="LineLength"/>-->
|
||||
<module name="MethodLength"/>
|
||||
<module name="ParameterNumber"/>
|
||||
|
||||
|
||||
<!-- Checks for whitespace -->
|
||||
<!-- See http://checkstyle.sf.net/config_whitespace.html -->
|
||||
<!-- <module name="EmptyForIteratorPad"/>
|
||||
<module name="NoWhitespaceAfter"/>
|
||||
<module name="NoWhitespaceBefore"/>
|
||||
<module name="OperatorWrap"/>
|
||||
<module name="ParenPad"/>
|
||||
<module name="TypecastParenPad"/>
|
||||
<module name="TabCharacter"/>
|
||||
<module name="WhitespaceAfter"/>
|
||||
<module name="WhitespaceAround"/>-->
|
||||
|
||||
|
||||
<!-- Modifier Checks -->
|
||||
<!-- See http://checkstyle.sf.net/config_modifiers.html -->
|
||||
<module name="ModifierOrder"/>
|
||||
<module name="RedundantModifier"/>
|
||||
|
||||
|
||||
<!-- Checks for blocks. You know, those {}'s -->
|
||||
<!-- See http://checkstyle.sf.net/config_blocks.html -->
|
||||
<module name="AvoidNestedBlocks"/>
|
||||
<module name="EmptyBlock"/>
|
||||
<module name="LeftCurly"/>
|
||||
<module name="NeedBraces"/>
|
||||
<module name="RightCurly"/>
|
||||
|
||||
|
||||
<!-- Checks for common coding problems -->
|
||||
<!-- See http://checkstyle.sf.net/config_coding.html -->
|
||||
<module name="AvoidInlineConditionals"/>
|
||||
<module name="DoubleCheckedLocking"/> <!-- MY FAVOURITE -->
|
||||
<module name="EmptyStatement"/>
|
||||
<module name="EqualsHashCode"/>
|
||||
<!-- <module name="HiddenField"/> -->
|
||||
<module name="IllegalInstantiation"/>
|
||||
<module name="InnerAssignment"/>
|
||||
<module name="MagicNumber"/>
|
||||
<module name="MissingSwitchDefault"/>
|
||||
<module name="RedundantThrows"/>
|
||||
<module name="SimplifyBooleanExpression"/>
|
||||
<module name="SimplifyBooleanReturn"/>
|
||||
|
||||
<!-- Checks for class design -->
|
||||
<!-- See http://checkstyle.sf.net/config_design.html -->
|
||||
<!-- <module name="DesignForExtension"/> -->
|
||||
<module name="FinalClass"/>
|
||||
<module name="HideUtilityClassConstructor"/>
|
||||
<module name="InterfaceIsType"/>
|
||||
<module name="VisibilityModifier"/>
|
||||
|
||||
|
||||
<!-- Miscellaneous other checks. -->
|
||||
<!-- See http://checkstyle.sf.net/config_misc.html -->
|
||||
<module name="ArrayTypeStyle"/>
|
||||
<!-- <module name="FinalParameters"/> -->
|
||||
<!-- <module name="GenericIllegalRegexp">
|
||||
<property name="format" value="\s+$"/>
|
||||
<property name="message" value="Line has trailing spaces."/>
|
||||
</module> -->
|
||||
<module name="TodoComment"/>
|
||||
<module name="UpperEll"/>
|
||||
|
||||
</module>
|
||||
|
||||
</module>
|
@ -1,15 +1,15 @@
|
||||
package davmail;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.ServerSocket;
|
||||
import java.net.Socket;
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* Generic abstract server common to SMTP and POP3 implementations
|
||||
*/
|
||||
public abstract class AbstractServer extends Thread {
|
||||
protected int port;
|
||||
protected ServerSocket serverSocket;
|
||||
private int port;
|
||||
private ServerSocket serverSocket;
|
||||
|
||||
/**
|
||||
* Create a ServerSocket to listen for connections.
|
||||
|
@ -22,6 +22,7 @@ import org.w3c.tidy.Tidy;
|
||||
import javax.mail.MessagingException;
|
||||
import javax.mail.internet.MimeUtility;
|
||||
import java.io.*;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
@ -31,60 +32,60 @@ import java.util.*;
|
||||
* Exchange session through Outlook Web Access (DAV)
|
||||
*/
|
||||
public class ExchangeSession {
|
||||
protected static final Logger logger = Logger.getLogger("davmail.exchange.ExchangeSession");
|
||||
protected static final Logger LOGGER = Logger.getLogger("davmail.exchange.ExchangeSession");
|
||||
|
||||
/**
|
||||
* exchange message properties needed to rebuild mime message
|
||||
*/
|
||||
protected static final Vector<String> messageRequestProperties = new Vector<String>();
|
||||
protected static final Vector<String> MESSAGE_REQUEST_PROPERTIES = new Vector<String>();
|
||||
|
||||
static {
|
||||
messageRequestProperties.add("DAV:uid");
|
||||
messageRequestProperties.add("urn:schemas:httpmail:subject");
|
||||
messageRequestProperties.add("urn:schemas:mailheader:mime-version");
|
||||
messageRequestProperties.add("urn:schemas:mailheader:content-class");
|
||||
messageRequestProperties.add("urn:schemas:httpmail:hasattachment");
|
||||
MESSAGE_REQUEST_PROPERTIES.add("DAV:uid");
|
||||
MESSAGE_REQUEST_PROPERTIES.add("urn:schemas:httpmail:subject");
|
||||
MESSAGE_REQUEST_PROPERTIES.add("urn:schemas:mailheader:mime-version");
|
||||
MESSAGE_REQUEST_PROPERTIES.add("urn:schemas:mailheader:content-class");
|
||||
MESSAGE_REQUEST_PROPERTIES.add("urn:schemas:httpmail:hasattachment");
|
||||
|
||||
// needed only when full headers not found
|
||||
messageRequestProperties.add("urn:schemas:mailheader:received");
|
||||
messageRequestProperties.add("urn:schemas:mailheader:date");
|
||||
messageRequestProperties.add("urn:schemas:mailheader:message-id");
|
||||
messageRequestProperties.add("urn:schemas:mailheader:thread-topic");
|
||||
messageRequestProperties.add("urn:schemas:mailheader:thread-index");
|
||||
messageRequestProperties.add("urn:schemas:mailheader:from");
|
||||
messageRequestProperties.add("urn:schemas:mailheader:to");
|
||||
messageRequestProperties.add("urn:schemas:httpmail:priority");
|
||||
MESSAGE_REQUEST_PROPERTIES.add("urn:schemas:mailheader:received");
|
||||
MESSAGE_REQUEST_PROPERTIES.add("urn:schemas:mailheader:date");
|
||||
MESSAGE_REQUEST_PROPERTIES.add("urn:schemas:mailheader:message-id");
|
||||
MESSAGE_REQUEST_PROPERTIES.add("urn:schemas:mailheader:thread-topic");
|
||||
MESSAGE_REQUEST_PROPERTIES.add("urn:schemas:mailheader:thread-index");
|
||||
MESSAGE_REQUEST_PROPERTIES.add("urn:schemas:mailheader:from");
|
||||
MESSAGE_REQUEST_PROPERTIES.add("urn:schemas:mailheader:to");
|
||||
MESSAGE_REQUEST_PROPERTIES.add("urn:schemas:httpmail:priority");
|
||||
|
||||
// full headers
|
||||
messageRequestProperties.add("http://schemas.microsoft.com/mapi/proptag/x0007D001E");
|
||||
MESSAGE_REQUEST_PROPERTIES.add("http://schemas.microsoft.com/mapi/proptag/x0007D001E");
|
||||
// mail body
|
||||
messageRequestProperties.add("http://schemas.microsoft.com/mapi/proptag/x01000001E");
|
||||
MESSAGE_REQUEST_PROPERTIES.add("http://schemas.microsoft.com/mapi/proptag/x01000001E");
|
||||
// html body
|
||||
messageRequestProperties.add("urn:schemas:httpmail:htmldescription");
|
||||
MESSAGE_REQUEST_PROPERTIES.add("urn:schemas:httpmail:htmldescription");
|
||||
// same as htmldescription, remove
|
||||
// messageRequestProperties.add("http://schemas.microsoft.com/mapi/proptag/x01013001E");
|
||||
// MESSAGE_REQUEST_PROPERTIES.add("http://schemas.microsoft.com/mapi/proptag/x01013001E");
|
||||
// size
|
||||
messageRequestProperties.add("http://schemas.microsoft.com/mapi/proptag/x0e080003");
|
||||
MESSAGE_REQUEST_PROPERTIES.add("http://schemas.microsoft.com/mapi/proptag/x0e080003");
|
||||
// only for calendar events
|
||||
messageRequestProperties.add("urn:schemas:calendar:location");
|
||||
messageRequestProperties.add("urn:schemas:calendar:dtstart");
|
||||
messageRequestProperties.add("urn:schemas:calendar:dtend");
|
||||
messageRequestProperties.add("urn:schemas:calendar:instancetype");
|
||||
messageRequestProperties.add("urn:schemas:calendar:busystatus");
|
||||
messageRequestProperties.add("urn:schemas:calendar:meetingstatus");
|
||||
messageRequestProperties.add("urn:schemas:calendar:alldayevent");
|
||||
messageRequestProperties.add("urn:schemas:calendar:responserequested");
|
||||
messageRequestProperties.add("urn:schemas:mailheader:cc");
|
||||
MESSAGE_REQUEST_PROPERTIES.add("urn:schemas:calendar:location");
|
||||
MESSAGE_REQUEST_PROPERTIES.add("urn:schemas:calendar:dtstart");
|
||||
MESSAGE_REQUEST_PROPERTIES.add("urn:schemas:calendar:dtend");
|
||||
MESSAGE_REQUEST_PROPERTIES.add("urn:schemas:calendar:instancetype");
|
||||
MESSAGE_REQUEST_PROPERTIES.add("urn:schemas:calendar:busystatus");
|
||||
MESSAGE_REQUEST_PROPERTIES.add("urn:schemas:calendar:meetingstatus");
|
||||
MESSAGE_REQUEST_PROPERTIES.add("urn:schemas:calendar:alldayevent");
|
||||
MESSAGE_REQUEST_PROPERTIES.add("urn:schemas:calendar:responserequested");
|
||||
MESSAGE_REQUEST_PROPERTIES.add("urn:schemas:mailheader:cc");
|
||||
|
||||
}
|
||||
|
||||
public static HashMap<String, String> priorities = new HashMap<String, String>();
|
||||
public static final HashMap<String, String> PRIORITIES = new HashMap<String, String>();
|
||||
|
||||
static {
|
||||
priorities.put("-2", "5 (Lowest)");
|
||||
priorities.put("-1", "4 (Low)");
|
||||
priorities.put("1", "2 (High)");
|
||||
priorities.put("2", "1 (Highest)");
|
||||
PRIORITIES.put("-2", "5 (Lowest)");
|
||||
PRIORITIES.put("-1", "4 (Low)");
|
||||
PRIORITIES.put("1", "2 (High)");
|
||||
PRIORITIES.put("2", "1 (Highest)");
|
||||
}
|
||||
|
||||
public static final String CONTENT_TYPE_HEADER = "content-type: ";
|
||||
@ -95,26 +96,26 @@ public class ExchangeSession {
|
||||
/**
|
||||
* Date parser from Exchange format
|
||||
*/
|
||||
public final SimpleDateFormat dateParser;
|
||||
private final SimpleDateFormat dateParser;
|
||||
/**
|
||||
* Date formatter to MIME format
|
||||
*/
|
||||
public final SimpleDateFormat dateFormatter;
|
||||
private final SimpleDateFormat dateFormatter;
|
||||
|
||||
/**
|
||||
* Various standard mail boxes Urls
|
||||
*/
|
||||
protected String inboxUrl;
|
||||
protected String deleteditemsUrl;
|
||||
protected String sendmsgUrl;
|
||||
protected String draftsUrl;
|
||||
private String inboxUrl;
|
||||
private String deleteditemsUrl;
|
||||
private String sendmsgUrl;
|
||||
private String draftsUrl;
|
||||
|
||||
/**
|
||||
* Base user mailboxes path (used to select folder)
|
||||
*/
|
||||
protected String mailPath;
|
||||
protected String currentFolderUrl;
|
||||
WebdavResource wdr = null;
|
||||
private String mailPath;
|
||||
private String currentFolderUrl;
|
||||
private WebdavResource wdr = null;
|
||||
|
||||
/**
|
||||
* Create an exchange session for the given URL.
|
||||
@ -183,7 +184,7 @@ public class ExchangeSession {
|
||||
testMethod.setFollowRedirects(false);
|
||||
int status = httpClient.executeMethod(testMethod);
|
||||
testMethod.releaseConnection();
|
||||
logger.debug("Test configuration status: " + status);
|
||||
LOGGER.debug("Test configuration status: " + status);
|
||||
if (status != HttpStatus.SC_OK && status != HttpStatus.SC_UNAUTHORIZED
|
||||
&& status != HttpStatus.SC_MOVED_TEMPORARILY) {
|
||||
throw new IOException("Unable to connect to OWA at " + url + ", status code " +
|
||||
@ -191,7 +192,7 @@ public class ExchangeSession {
|
||||
}
|
||||
|
||||
} catch (Exception exc) {
|
||||
logger.error("DavMail configuration exception: \n" + exc.getMessage(), exc);
|
||||
LOGGER.error("DavMail configuration exception: \n" + exc.getMessage(), exc);
|
||||
throw new IOException("DavMail configuration exception: \n" + exc.getMessage(), exc);
|
||||
}
|
||||
|
||||
@ -236,7 +237,7 @@ public class ExchangeSession {
|
||||
wdr.executeHttpRequestMethod(httpClient,
|
||||
initmethod);
|
||||
if (initmethod.getPath().indexOf("exchweb/bin") > 0) {
|
||||
logger.debug("** Form based authentication detected");
|
||||
LOGGER.debug("** Form based authentication detected");
|
||||
|
||||
PostMethod logonMethod = new PostMethod(
|
||||
"/exchweb/bin/auth/owaauth.dll?" +
|
||||
@ -257,7 +258,7 @@ public class ExchangeSession {
|
||||
Header locationHeader = logonMethod.getResponseHeader(
|
||||
"Location");
|
||||
|
||||
if (logonMethod.getStatusCode() != 302 ||
|
||||
if (logonMethod.getStatusCode() != HttpURLConnection.HTTP_MOVED_TEMP ||
|
||||
locationHeader == null ||
|
||||
!url.equals(locationHeader.getValue())) {
|
||||
throw new HttpException("Authentication failed");
|
||||
@ -333,9 +334,9 @@ public class ExchangeSession {
|
||||
// set current folder to Inbox
|
||||
currentFolderUrl = inboxUrl;
|
||||
|
||||
logger.debug("Inbox URL : " + inboxUrl);
|
||||
logger.debug("Trash URL : " + deleteditemsUrl);
|
||||
logger.debug("Send URL : " + sendmsgUrl);
|
||||
LOGGER.debug("Inbox URL : " + inboxUrl);
|
||||
LOGGER.debug("Trash URL : " + deleteditemsUrl);
|
||||
LOGGER.debug("Send URL : " + sendmsgUrl);
|
||||
deleteditemsUrl = URIUtil.getPath(deleteditemsUrl);
|
||||
wdr.setPath(URIUtil.getPath(inboxUrl));
|
||||
|
||||
@ -363,10 +364,10 @@ public class ExchangeSession {
|
||||
message.append(webdavStatusMessage);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("Exception getting status from " + wdr);
|
||||
LOGGER.error("Exception getting status from " + wdr);
|
||||
}
|
||||
|
||||
logger.error(message.toString());
|
||||
LOGGER.error(message.toString());
|
||||
throw new IOException(message.toString());
|
||||
}
|
||||
|
||||
@ -411,14 +412,14 @@ public class ExchangeSession {
|
||||
|
||||
int code = wdr.retrieveSessionInstance().executeMethod(putmethod);
|
||||
|
||||
if (code == 200) {
|
||||
logger.warn("Overwritten message " + messageUrl);
|
||||
} else if (code != 201) {
|
||||
if (code == HttpURLConnection.HTTP_OK) {
|
||||
LOGGER.warn("Overwritten message " + messageUrl);
|
||||
} else if (code != HttpURLConnection.HTTP_CREATED) {
|
||||
throw new IOException("Unable to create message " + code + " " + putmethod.getStatusLine());
|
||||
}
|
||||
}
|
||||
|
||||
protected Message buildMessage(ResponseEntity responseEntity) throws URIException {
|
||||
protected Message buildMessage(ResponseEntity responseEntity) throws IOException {
|
||||
Message message = new Message();
|
||||
message.messageUrl = URIUtil.decode(responseEntity.getHref());
|
||||
Enumeration propertiesEnum = responseEntity.getProperties();
|
||||
@ -458,7 +459,7 @@ public class ExchangeSession {
|
||||
} else if ("subject".equals(prop.getLocalName())) {
|
||||
message.subject = prop.getPropertyAsString();
|
||||
} else if ("priority".equals(prop.getLocalName())) {
|
||||
String priorityLabel = priorities.get(prop.getPropertyAsString());
|
||||
String priorityLabel = PRIORITIES.get(prop.getPropertyAsString());
|
||||
if (priorityLabel != null) {
|
||||
message.priority = priorityLabel;
|
||||
}
|
||||
@ -477,11 +478,12 @@ public class ExchangeSession {
|
||||
wdr.setDebug(4);
|
||||
wdr.propfindMethod(messageUrl, 0);
|
||||
|
||||
Enumeration messageEnum = wdr.propfindMethod(messageUrl, 0, messageRequestProperties);
|
||||
Enumeration messageEnum = wdr.propfindMethod(messageUrl, 0, MESSAGE_REQUEST_PROPERTIES);
|
||||
wdr.setDebug(0);
|
||||
|
||||
// 201 created in some cases ?!?
|
||||
if ((wdr.getStatusCode() != 200 && wdr.getStatusCode() != 201) || !messageEnum.hasMoreElements()) {
|
||||
if ((wdr.getStatusCode() != HttpURLConnection.HTTP_OK && wdr.getStatusCode() != HttpURLConnection.HTTP_CREATED)
|
||||
|| !messageEnum.hasMoreElements()) {
|
||||
throw new IOException("Unable to get message: " + wdr.getStatusCode()
|
||||
+ " " + wdr.getStatusMessage());
|
||||
}
|
||||
@ -496,7 +498,7 @@ public class ExchangeSession {
|
||||
wdr.setDebug(4);
|
||||
wdr.propfindMethod(currentFolderUrl, 1);
|
||||
|
||||
Enumeration folderEnum = wdr.propfindMethod(currentFolderUrl, 1, messageRequestProperties);
|
||||
Enumeration folderEnum = wdr.propfindMethod(currentFolderUrl, 1, MESSAGE_REQUEST_PROPERTIES);
|
||||
wdr.setDebug(0);
|
||||
while (folderEnum.hasMoreElements()) {
|
||||
ResponseEntity entity = (ResponseEntity) folderEnum.nextElement();
|
||||
@ -526,7 +528,7 @@ public class ExchangeSession {
|
||||
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.add(Calendar.DAY_OF_MONTH, -keepDelay);
|
||||
logger.debug("Keep message not before " + cal.getTime());
|
||||
LOGGER.debug("Keep message not before " + cal.getTime());
|
||||
long keepTimestamp = cal.getTimeInMillis();
|
||||
|
||||
Vector<String> deleteRequestProperties = new Vector<String>();
|
||||
@ -555,11 +557,11 @@ public class ExchangeSession {
|
||||
try {
|
||||
parsedDate = dateParser.parse(lastModifiedString);
|
||||
if (parsedDate.getTime() < keepTimestamp) {
|
||||
logger.debug("Delete " + messageUrl + " last modified " + parsedDate);
|
||||
LOGGER.debug("Delete " + messageUrl + " last modified " + parsedDate);
|
||||
wdr.deleteMethod(messageUrl);
|
||||
}
|
||||
} catch (ParseException e) {
|
||||
logger.warn("Invalid message modified date " + lastModifiedString + " on " + messageUrl);
|
||||
LOGGER.warn("Invalid message modified date " + lastModifiedString + " on " + messageUrl);
|
||||
}
|
||||
}
|
||||
|
||||
@ -913,7 +915,7 @@ public class ExchangeSession {
|
||||
if (attachment == null) {
|
||||
// only warn, could happen depending on IIS config
|
||||
//throw new IOException("Attachment " + partHeader.name + " not found in " + messageUrl);
|
||||
logger.warn("Attachment " + partHeader.name + " not found in " + messageUrl);
|
||||
LOGGER.warn("Attachment " + partHeader.name + " not found in " + messageUrl);
|
||||
} else {
|
||||
writeAttachment(os, partHeader, attachment);
|
||||
}
|
||||
@ -1057,7 +1059,7 @@ public class ExchangeSession {
|
||||
public void delete() throws IOException {
|
||||
// TODO : refactor
|
||||
String destination = deleteditemsUrl + messageUrl.substring(messageUrl.lastIndexOf("/"));
|
||||
logger.debug("Deleting : " + messageUrl + " to " + destination);
|
||||
LOGGER.debug("Deleting : " + messageUrl + " to " + destination);
|
||||
/*
|
||||
// first try without webdav library
|
||||
GetMethod moveMethod = new GetMethod(URIUtil.encodePathQuery(messageUrl)) {
|
||||
@ -1092,7 +1094,7 @@ public class ExchangeSession {
|
||||
}
|
||||
}
|
||||
|
||||
logger.debug("Deleted to :" + destination + " " + wdr.getStatusCode() + " " + wdr.getStatusMessage());
|
||||
LOGGER.debug("Deleted to :" + destination + " " + wdr.getStatusCode() + " " + wdr.getStatusMessage());
|
||||
|
||||
}
|
||||
|
||||
@ -1140,7 +1142,7 @@ public class ExchangeSession {
|
||||
String result;
|
||||
try {
|
||||
String decodedPath = URIUtil.decode(attachmentUrl);
|
||||
logger.debug("Head " + decodedPath);
|
||||
LOGGER.debug("Head " + decodedPath);
|
||||
|
||||
ConnectionCloseHeadMethod method = new ConnectionCloseHeadMethod(URIUtil.encodePathQuery(decodedPath));
|
||||
wdr.retrieveSessionInstance().executeMethod(method);
|
||||
@ -1190,7 +1192,7 @@ public class ExchangeSession {
|
||||
}
|
||||
xmlDocument.load(builder.build(w3cDocument));
|
||||
} catch (Exception ex1) {
|
||||
logger.error("Exception parsing document", ex1);
|
||||
LOGGER.error("Exception parsing document", ex1);
|
||||
}
|
||||
return xmlDocument;
|
||||
}
|
||||
@ -1263,11 +1265,11 @@ public class ExchangeSession {
|
||||
attachment.href = attachmentHref;
|
||||
|
||||
attachmentsMap.put(attachmentName, attachment);
|
||||
logger.debug("Attachment " + attachmentIndex + " : " + attachmentName);
|
||||
LOGGER.debug("Attachment " + attachmentIndex + " : " + attachmentName);
|
||||
// add a second count based map entry
|
||||
attachmentsMap.put(String.valueOf(attachmentIndex++), attachment);
|
||||
} else {
|
||||
logger.warn("Message URL : " + messageUrl + " is not a substring of attachment URL : " + attachmentHref);
|
||||
LOGGER.warn("Message URL : " + messageUrl + " is not a substring of attachment URL : " + attachmentHref);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1339,13 +1341,13 @@ public class ExchangeSession {
|
||||
htmlBody = htmlBody.replaceFirst(attachment.contentid, "cid:" + attachment.contentid);
|
||||
}
|
||||
} else {
|
||||
logger.warn("More images in OWA body !");
|
||||
LOGGER.warn("More images in OWA body !");
|
||||
}
|
||||
// add only inline images
|
||||
if (attachment.contentid != null) {
|
||||
attachmentsMap.put(attachmentName, attachment);
|
||||
}
|
||||
logger.debug("Inline image attachment ID:" + attachment.contentid
|
||||
LOGGER.debug("Inline image attachment ID:" + attachment.contentid
|
||||
+ " name: " + attachment.name + " href: " + attachment.href);
|
||||
}
|
||||
}
|
||||
|
@ -9,7 +9,7 @@ import java.net.Socket;
|
||||
* Pop3 server
|
||||
*/
|
||||
public class PopServer extends AbstractServer {
|
||||
public final static int DEFAULT_PORT = 110;
|
||||
public static final int DEFAULT_PORT = 110;
|
||||
|
||||
/**
|
||||
* Create a ServerSocket to listen for connections.
|
||||
|
@ -1,12 +1,11 @@
|
||||
package davmail.smtp;
|
||||
|
||||
import davmail.AbstractServer;
|
||||
|
||||
import java.net.Socket;
|
||||
|
||||
import davmail.AbstractServer;
|
||||
import davmail.Settings;
|
||||
|
||||
public class SmtpServer extends AbstractServer {
|
||||
public final static int DEFAULT_PORT = 25;
|
||||
public static final int DEFAULT_PORT = 25;
|
||||
|
||||
/**
|
||||
* Create a ServerSocket to listen for connections.
|
||||
|
@ -19,6 +19,6 @@
|
||||
<item name="SourceForge site" href="http://sourceforge.net/projects/davmail"/>
|
||||
</menu>
|
||||
|
||||
${reports}
|
||||
<menu ref="reports"/>
|
||||
</body>
|
||||
</project>
|
||||
|
Loading…
Reference in New Issue
Block a user