added trace logging

This commit is contained in:
2019-06-14 19:16:44 +02:00
parent 2a75d2a1fe
commit aa478dbf9f

View File

@ -7,12 +7,14 @@ import de.muehlencord.shared.network.mail.MailReaderConnectionException;
import de.muehlencord.shared.network.mail.MailReaderException;
import java.net.URI;
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.Iterator;
import java.util.List;
import microsoft.exchange.webservices.data.autodiscover.IAutodiscoverRedirectionUrl;
import microsoft.exchange.webservices.data.core.ExchangeService;
import microsoft.exchange.webservices.data.core.PropertySet;
import microsoft.exchange.webservices.data.core.enumeration.misc.ExchangeVersion;
import microsoft.exchange.webservices.data.core.enumeration.misc.TraceFlags;
import microsoft.exchange.webservices.data.core.enumeration.property.BasePropertySet;
import microsoft.exchange.webservices.data.core.enumeration.property.WellKnownFolderName;
import microsoft.exchange.webservices.data.core.exception.service.local.ServiceLocalException;
@ -21,6 +23,7 @@ import microsoft.exchange.webservices.data.core.service.item.Item;
import microsoft.exchange.webservices.data.core.service.schema.EmailMessageSchema;
import microsoft.exchange.webservices.data.credential.ExchangeCredentials;
import microsoft.exchange.webservices.data.credential.WebCredentials;
import microsoft.exchange.webservices.data.misc.ITraceListener;
import microsoft.exchange.webservices.data.property.complex.InternetMessageHeaderCollection;
import microsoft.exchange.webservices.data.search.FindFoldersResults;
import microsoft.exchange.webservices.data.search.FindItemsResults;
@ -35,7 +38,7 @@ import org.slf4j.LoggerFactory;
* @author Joern Muehlencord <joern at muehlencord.de>
*/
public class ExchangeMailReader implements MailReader {
private static final Logger LOGGER = LoggerFactory.getLogger(ExchangeMailReader.class);
private final MailReaderConfiguration configuration;
private ExchangeService service = null;
@ -53,10 +56,21 @@ public class ExchangeMailReader implements MailReader {
String emailAddress = getConfiguration().getEmailAddress();
service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
// enable trace logging
service.setTraceEnabled(true);
service.setTraceFlags(EnumSet.allOf(TraceFlags.class)); // can also be restricted
service.setTraceListener(new ITraceListener() {
public void trace(String traceType, String traceMessage) {
if (LOGGER.isTraceEnabled()) {
LOGGER.trace("Type: {}, Message: {}", traceType, traceMessage);
}
}
});
service.getHttpHeaders().put("cookie-policy", "standard");
ExchangeCredentials credentials = new WebCredentials(userName, password);
service.setCredentials(credentials);
if ((hostName == null) || (hostName.trim().equals (""))) {
if ((hostName == null) || (hostName.trim().equals(""))) {
service.autodiscoverUrl(emailAddress, new RedirectionUrlCallback());
} else {
service.setUrl(new URI(hostName));
@ -245,15 +259,15 @@ public class ExchangeMailReader implements MailReader {
}
class RedirectionUrlCallback implements IAutodiscoverRedirectionUrl {
private static final Logger LOGGER = LoggerFactory.getLogger(RedirectionUrlCallback.class);
@Override
public boolean autodiscoverRedirectionUrlValidationCallback(String redirectionUrl) {
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("redirectUrl found: {}", redirectionUrl);
}
LOGGER.debug("redirectUrl found: {}", redirectionUrl);
}
return redirectionUrl.toLowerCase().startsWith("https://");
}
}