|
23 | 23 |
|
24 | 24 | package microsoft.exchange.webservices.data.core; |
25 | 25 |
|
26 | | -import java.io.ByteArrayOutputStream; |
27 | | -import java.io.Closeable; |
28 | | -import java.io.File; |
29 | | -import java.io.IOException; |
30 | | -import java.net.MalformedURLException; |
31 | | -import java.net.URI; |
32 | | -import java.net.URISyntaxException; |
33 | | -import java.security.GeneralSecurityException; |
34 | | -import java.text.DateFormat; |
35 | | -import java.text.SimpleDateFormat; |
36 | | -import java.util.Date; |
37 | | -import java.util.EnumSet; |
38 | | -import java.util.HashMap; |
39 | | -import java.util.List; |
40 | | -import java.util.Map; |
41 | | -import java.util.Random; |
42 | | -import java.util.TimeZone; |
43 | | - |
44 | | -import javax.xml.stream.XMLStreamException; |
45 | | -import javax.xml.stream.XMLStreamWriter; |
46 | | - |
47 | | -import microsoft.exchange.webservices.data.EWSConstants; |
48 | | -import microsoft.exchange.webservices.data.core.enumeration.misc.ExchangeVersion; |
49 | | -import microsoft.exchange.webservices.data.core.enumeration.misc.TraceFlags; |
50 | | -import microsoft.exchange.webservices.data.core.exception.http.EWSHttpException; |
51 | | -import microsoft.exchange.webservices.data.core.exception.service.local.ServiceLocalException; |
52 | | -import microsoft.exchange.webservices.data.core.exception.service.remote.AccountIsLockedException; |
53 | | -import microsoft.exchange.webservices.data.core.request.HttpClientWebRequest; |
54 | | -import microsoft.exchange.webservices.data.core.request.HttpWebRequest; |
55 | | -import microsoft.exchange.webservices.data.credential.ExchangeCredentials; |
56 | | -import microsoft.exchange.webservices.data.misc.EwsTraceListener; |
57 | | -import microsoft.exchange.webservices.data.misc.ITraceListener; |
58 | | - |
59 | | -import org.apache.commons.io.IOUtils; |
60 | | -import org.apache.commons.logging.Log; |
61 | | -import org.apache.commons.logging.LogFactory; |
62 | | -import org.apache.http.client.AuthenticationStrategy; |
| 26 | +import microsoft.exchange.webservices.data.*; |
| 27 | +import microsoft.exchange.webservices.data.core.enumeration.misc.*; |
| 28 | +import microsoft.exchange.webservices.data.core.exception.http.*; |
| 29 | +import microsoft.exchange.webservices.data.core.exception.service.local.*; |
| 30 | +import microsoft.exchange.webservices.data.core.exception.service.remote.*; |
| 31 | +import microsoft.exchange.webservices.data.core.request.*; |
| 32 | +import microsoft.exchange.webservices.data.credential.*; |
| 33 | +import microsoft.exchange.webservices.data.misc.*; |
| 34 | +import org.apache.commons.io.*; |
| 35 | +import org.apache.commons.logging.*; |
63 | 36 | import org.apache.http.client.CookieStore; |
64 | | -import org.apache.http.client.protocol.HttpClientContext; |
65 | | -import org.apache.http.config.Registry; |
66 | | -import org.apache.http.config.RegistryBuilder; |
67 | | -import org.apache.http.conn.HttpClientConnectionManager; |
68 | | -import org.apache.http.conn.socket.ConnectionSocketFactory; |
69 | | -import org.apache.http.conn.socket.PlainConnectionSocketFactory; |
70 | | -import org.apache.http.impl.client.BasicCookieStore; |
71 | | -import org.apache.http.impl.client.CloseableHttpClient; |
72 | | -import org.apache.http.impl.client.HttpClients; |
73 | | -import org.apache.http.impl.conn.BasicHttpClientConnectionManager; |
74 | | -import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; |
| 37 | +import org.apache.http.client.*; |
| 38 | +import org.apache.http.client.protocol.*; |
| 39 | +import org.apache.http.config.*; |
| 40 | +import org.apache.http.conn.*; |
| 41 | +import org.apache.http.conn.socket.*; |
| 42 | +import org.apache.http.impl.client.*; |
| 43 | +import org.apache.http.impl.conn.*; |
| 44 | + |
| 45 | +import javax.xml.stream.*; |
| 46 | +import java.io.*; |
| 47 | +import java.net.*; |
| 48 | +import java.security.*; |
| 49 | +import java.text.*; |
| 50 | +import java.util.*; |
75 | 51 |
|
76 | 52 | /** |
77 | 53 | * Represents an abstract binding to an Exchange Service. |
@@ -168,6 +144,8 @@ public abstract class ExchangeServiceBase implements Closeable { |
168 | 144 | */ |
169 | 145 | private static String defaultUserAgent = "ExchangeServicesClient/" + EwsUtilities.getBuildVersion(); |
170 | 146 |
|
| 147 | + private ServiceRequestTraceListener serviceRequestTraceListener; |
| 148 | + |
171 | 149 | /** |
172 | 150 | * Initializes a new instance. |
173 | 151 | * |
@@ -650,6 +628,10 @@ public void setTraceListener(ITraceListener traceListener) { |
650 | 628 | this.traceEnabled = (traceListener != null); |
651 | 629 | } |
652 | 630 |
|
| 631 | + public void setServiceRequestTracer(ServiceRequestTraceListener serviceRequestTraceListener) { |
| 632 | + this.serviceRequestTraceListener = serviceRequestTraceListener; |
| 633 | + } |
| 634 | + |
653 | 635 | /** |
654 | 636 | * Gets the credential used to authenticate with the Exchange Web Services. |
655 | 637 | * |
@@ -929,4 +911,25 @@ public static byte[] getSessionKey() { |
929 | 911 | public int getMaximumPoolingConnections() { |
930 | 912 | return maximumPoolingConnections; |
931 | 913 | } |
| 914 | + |
| 915 | + public <T> void traceServiceRequestStart(ServiceRequestBase<T> serviceRequest, HttpWebRequest request) { |
| 916 | + if (serviceRequestTraceListener == null) { |
| 917 | + return; |
| 918 | + } |
| 919 | + serviceRequestTraceListener.requestStart(serviceRequest, request); |
| 920 | + } |
| 921 | + |
| 922 | + public <T> void traceServiceRequestError(ServiceRequestBase<T> serviceRequest, HttpWebRequest request, Exception e) { |
| 923 | + if (serviceRequestTraceListener == null) { |
| 924 | + return; |
| 925 | + } |
| 926 | + serviceRequestTraceListener.requestError(serviceRequest, request, e); |
| 927 | + } |
| 928 | + |
| 929 | + public <T> void traceServiceRequestSuccess(ServiceRequestBase<T> serviceRequest, HttpWebRequest request) { |
| 930 | + if (serviceRequestTraceListener == null) { |
| 931 | + return; |
| 932 | + } |
| 933 | + serviceRequestTraceListener.requestFinish(serviceRequest, request); |
| 934 | + } |
932 | 935 | } |
0 commit comments