Skip to content

Commit 4426c00

Browse files
AvromAvrom
authored andcommitted
Fixes for Javadoc, code
1 parent 6faa53d commit 4426c00

2 files changed

Lines changed: 110 additions & 72 deletions

File tree

src/main/java/microsoft/exchange/webservices/data/core/ExchangeService.java

Lines changed: 49 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,52 @@
2323

2424
package microsoft.exchange.webservices.data.core;
2525

26+
import java.net.URI;
27+
import java.net.URISyntaxException;
28+
import java.util.ArrayList;
29+
import java.util.Arrays;
30+
import java.util.Collection;
31+
import java.util.Date;
32+
import java.util.EnumSet;
33+
import java.util.HashMap;
34+
import java.util.Iterator;
35+
import java.util.List;
36+
import java.util.Locale;
37+
import java.util.TimeZone;
38+
2639
import microsoft.exchange.webservices.data.autodiscover.AutodiscoverService;
2740
import microsoft.exchange.webservices.data.autodiscover.IAutodiscoverRedirectionUrl;
41+
import microsoft.exchange.webservices.data.autodiscover.enumeration.UserSettingName;
2842
import microsoft.exchange.webservices.data.autodiscover.exception.AutodiscoverLocalException;
2943
import microsoft.exchange.webservices.data.autodiscover.request.ApplyConversationActionRequest;
3044
import microsoft.exchange.webservices.data.autodiscover.response.GetUserSettingsResponse;
45+
import microsoft.exchange.webservices.data.core.enumeration.availability.AvailabilityData;
46+
import microsoft.exchange.webservices.data.core.enumeration.misc.ConversationActionType;
47+
import microsoft.exchange.webservices.data.core.enumeration.misc.DateTimePrecision;
48+
import microsoft.exchange.webservices.data.core.enumeration.misc.ExchangeVersion;
49+
import microsoft.exchange.webservices.data.core.enumeration.misc.IdFormat;
50+
import microsoft.exchange.webservices.data.core.enumeration.misc.TraceFlags;
51+
import microsoft.exchange.webservices.data.core.enumeration.misc.UserConfigurationProperties;
52+
import microsoft.exchange.webservices.data.core.enumeration.notification.EventType;
53+
import microsoft.exchange.webservices.data.core.enumeration.property.BodyType;
54+
import microsoft.exchange.webservices.data.core.enumeration.property.WellKnownFolderName;
55+
import microsoft.exchange.webservices.data.core.enumeration.search.ResolveNameSearchLocation;
56+
import microsoft.exchange.webservices.data.core.enumeration.service.ConflictResolutionMode;
57+
import microsoft.exchange.webservices.data.core.enumeration.service.DeleteMode;
58+
import microsoft.exchange.webservices.data.core.enumeration.service.MeetingRequestsDeliveryScope;
59+
import microsoft.exchange.webservices.data.core.enumeration.service.MessageDisposition;
60+
import microsoft.exchange.webservices.data.core.enumeration.service.SendCancellationsMode;
61+
import microsoft.exchange.webservices.data.core.enumeration.service.SendInvitationsMode;
62+
import microsoft.exchange.webservices.data.core.enumeration.service.SendInvitationsOrCancellationsMode;
63+
import microsoft.exchange.webservices.data.core.enumeration.service.SyncFolderItemsScope;
64+
import microsoft.exchange.webservices.data.core.enumeration.service.calendar.AffectedTaskOccurrence;
65+
import microsoft.exchange.webservices.data.core.enumeration.service.error.ServiceErrorHandling;
66+
import microsoft.exchange.webservices.data.core.exception.misc.ArgumentOutOfRangeException;
67+
import microsoft.exchange.webservices.data.core.exception.service.local.ServiceLocalException;
68+
import microsoft.exchange.webservices.data.core.exception.service.local.ServiceValidationException;
69+
import microsoft.exchange.webservices.data.core.exception.service.remote.AccountIsLockedException;
70+
import microsoft.exchange.webservices.data.core.exception.service.remote.ServiceRemoteException;
71+
import microsoft.exchange.webservices.data.core.exception.service.remote.ServiceResponseException;
3172
import microsoft.exchange.webservices.data.core.request.AddDelegateRequest;
3273
import microsoft.exchange.webservices.data.core.request.ConvertIdRequest;
3374
import microsoft.exchange.webservices.data.core.request.CopyFolderRequest;
@@ -101,34 +142,6 @@
101142
import microsoft.exchange.webservices.data.core.service.item.Appointment;
102143
import microsoft.exchange.webservices.data.core.service.item.Conversation;
103144
import microsoft.exchange.webservices.data.core.service.item.Item;
104-
import microsoft.exchange.webservices.data.core.enumeration.service.calendar.AffectedTaskOccurrence;
105-
import microsoft.exchange.webservices.data.core.enumeration.availability.AvailabilityData;
106-
import microsoft.exchange.webservices.data.core.enumeration.property.BodyType;
107-
import microsoft.exchange.webservices.data.core.enumeration.service.ConflictResolutionMode;
108-
import microsoft.exchange.webservices.data.core.enumeration.misc.ConversationActionType;
109-
import microsoft.exchange.webservices.data.core.enumeration.misc.DateTimePrecision;
110-
import microsoft.exchange.webservices.data.core.enumeration.service.DeleteMode;
111-
import microsoft.exchange.webservices.data.core.enumeration.notification.EventType;
112-
import microsoft.exchange.webservices.data.core.enumeration.misc.ExchangeVersion;
113-
import microsoft.exchange.webservices.data.core.enumeration.misc.IdFormat;
114-
import microsoft.exchange.webservices.data.core.enumeration.service.MeetingRequestsDeliveryScope;
115-
import microsoft.exchange.webservices.data.core.enumeration.service.MessageDisposition;
116-
import microsoft.exchange.webservices.data.core.enumeration.search.ResolveNameSearchLocation;
117-
import microsoft.exchange.webservices.data.core.enumeration.service.SendCancellationsMode;
118-
import microsoft.exchange.webservices.data.core.enumeration.service.SendInvitationsMode;
119-
import microsoft.exchange.webservices.data.core.enumeration.service.SendInvitationsOrCancellationsMode;
120-
import microsoft.exchange.webservices.data.core.enumeration.service.error.ServiceErrorHandling;
121-
import microsoft.exchange.webservices.data.core.enumeration.service.SyncFolderItemsScope;
122-
import microsoft.exchange.webservices.data.core.enumeration.misc.TraceFlags;
123-
import microsoft.exchange.webservices.data.core.enumeration.misc.UserConfigurationProperties;
124-
import microsoft.exchange.webservices.data.autodiscover.enumeration.UserSettingName;
125-
import microsoft.exchange.webservices.data.core.enumeration.property.WellKnownFolderName;
126-
import microsoft.exchange.webservices.data.core.exception.service.remote.AccountIsLockedException;
127-
import microsoft.exchange.webservices.data.core.exception.misc.ArgumentOutOfRangeException;
128-
import microsoft.exchange.webservices.data.core.exception.service.local.ServiceLocalException;
129-
import microsoft.exchange.webservices.data.core.exception.service.remote.ServiceRemoteException;
130-
import microsoft.exchange.webservices.data.core.exception.service.remote.ServiceResponseException;
131-
import microsoft.exchange.webservices.data.core.exception.service.local.ServiceValidationException;
132145
import microsoft.exchange.webservices.data.messaging.UnifiedMessaging;
133146
import microsoft.exchange.webservices.data.misc.AsyncCallback;
134147
import microsoft.exchange.webservices.data.misc.AsyncRequestResult;
@@ -178,24 +191,12 @@
178191
import microsoft.exchange.webservices.data.sync.ChangeCollection;
179192
import microsoft.exchange.webservices.data.sync.FolderChange;
180193
import microsoft.exchange.webservices.data.sync.ItemChange;
194+
181195
import org.apache.commons.logging.Log;
182196
import org.apache.commons.logging.LogFactory;
183197
import org.w3c.dom.Document;
184198
import org.w3c.dom.Node;
185199

186-
import java.net.URI;
187-
import java.net.URISyntaxException;
188-
import java.util.ArrayList;
189-
import java.util.Arrays;
190-
import java.util.Collection;
191-
import java.util.Date;
192-
import java.util.EnumSet;
193-
import java.util.HashMap;
194-
import java.util.Iterator;
195-
import java.util.List;
196-
import java.util.Locale;
197-
import java.util.TimeZone;
198-
199200
/**
200201
* Represents a binding to the Exchange Web Services.
201202
*/
@@ -3744,6 +3745,13 @@ public HttpWebRequest prepareHttpWebRequest()
37443745
.getAcceptGzipEncoding(), true);
37453746
}
37463747

3748+
/**
3749+
* Prepares a http web request from a pooling connection manager, used for subscriptions.
3750+
*
3751+
* @return A http web request
3752+
* @throws ServiceLocalException The service local exception
3753+
* @throws java.net.URISyntaxException the uRI syntax exception
3754+
*/
37473755
public HttpWebRequest prepareHttpPoolingWebRequest()
37483756
throws ServiceLocalException, URISyntaxException {
37493757
try {

src/main/java/microsoft/exchange/webservices/data/core/ExchangeServiceBase.java

Lines changed: 61 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,41 @@
2323

2424
package microsoft.exchange.webservices.data.core;
2525

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+
2647
import microsoft.exchange.webservices.data.EWSConstants;
27-
import microsoft.exchange.webservices.data.core.request.HttpClientWebRequest;
28-
import microsoft.exchange.webservices.data.core.request.HttpWebRequest;
29-
import microsoft.exchange.webservices.data.credential.ExchangeCredentials;
3048
import microsoft.exchange.webservices.data.core.enumeration.misc.ExchangeVersion;
3149
import microsoft.exchange.webservices.data.core.enumeration.misc.TraceFlags;
32-
import microsoft.exchange.webservices.data.core.exception.service.remote.AccountIsLockedException;
3350
import microsoft.exchange.webservices.data.core.exception.http.EWSHttpException;
3451
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;
3556
import microsoft.exchange.webservices.data.misc.EwsTraceListener;
3657
import microsoft.exchange.webservices.data.misc.ITraceListener;
3758

59+
import org.apache.commons.logging.Log;
60+
import org.apache.commons.logging.LogFactory;
3861
import org.apache.http.client.AuthenticationStrategy;
3962
import org.apache.http.client.CookieStore;
4063
import org.apache.http.client.protocol.HttpClientContext;
@@ -49,31 +72,13 @@
4972
import org.apache.http.impl.conn.BasicHttpClientConnectionManager;
5073
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
5174

52-
import javax.xml.stream.XMLStreamException;
53-
import javax.xml.stream.XMLStreamWriter;
54-
55-
import java.io.ByteArrayOutputStream;
56-
import java.io.Closeable;
57-
import java.io.File;
58-
import java.io.IOException;
59-
import java.net.MalformedURLException;
60-
import java.net.URI;
61-
import java.net.URISyntaxException;
62-
import java.security.GeneralSecurityException;
63-
import java.text.DateFormat;
64-
import java.text.SimpleDateFormat;
65-
import java.util.Date;
66-
import java.util.EnumSet;
67-
import java.util.HashMap;
68-
import java.util.List;
69-
import java.util.Map;
70-
import java.util.Random;
71-
import java.util.TimeZone;
72-
7375
/**
7476
* Represents an abstract binding to an Exchange Service.
7577
*/
7678
public abstract class ExchangeServiceBase implements Closeable {
79+
80+
private static final Log LOG = LogFactory.getLog(ExchangeService.class);
81+
7782
/**
7883
* The credential.
7984
*/
@@ -146,7 +151,7 @@ public abstract class ExchangeServiceBase implements Closeable {
146151

147152
protected CloseableHttpClient httpPoolingClient;
148153

149-
private int maximumPoolingConnections = 10;
154+
private int maximumPoolingConnections = 10;
150155

151156

152157
// protected HttpClientWebRequest request = null;
@@ -215,12 +220,17 @@ private void initializeHttpPoolingClient() {
215220

216221

217222
/**
218-
* Sets the maximum number of connections for the pooling connection manager which is used for subscriptions.
223+
* Sets the maximum number of connections for the pooling connection manager which is used for
224+
* subscriptions.
219225
* <p>
220226
* Default is 10.
221-
* @param maximumPoolConnections
227+
* </p>
228+
*
229+
* @param maximumPoolingConnections Maximum number of pooling connections
222230
*/
223231
public void setMaximumPoolingConnections(int maximumPoolingConnections) {
232+
if (maximumPoolingConnections < 1)
233+
throw new IllegalArgumentException("maximumPoolingConnections must be 1 or greater");
224234
this.maximumPoolingConnections = maximumPoolingConnections;
225235
}
226236

@@ -257,10 +267,16 @@ private void initializeHttpContext() {
257267
public void close() {
258268
try {
259269
httpClient.close();
260-
if (httpPoolingClient != null)
261-
httpPoolingClient.close();
262270
} catch (IOException e) {
263-
// Ignore exception while closing the HttpClient.
271+
LOG.debug(e);
272+
}
273+
274+
if (httpPoolingClient != null) {
275+
try {
276+
httpPoolingClient.close();
277+
} catch (IOException e) {
278+
LOG.debug(e);
279+
}
264280
}
265281
}
266282

@@ -313,6 +329,20 @@ protected HttpWebRequest prepareHttpWebRequestForUrl(URI url, boolean acceptGzip
313329
return request;
314330
}
315331

332+
/**
333+
* Creates an HttpWebRequest instance from a pooling connection manager and initialises it with
334+
* the appropriate parameters, based on the configuration of this service object.
335+
* <p>
336+
* This is used for subscriptions.
337+
* </p>
338+
*
339+
* @param url The URL that the HttpWebRequest should target.
340+
* @param acceptGzipEncoding If true, ask server for GZip compressed content.
341+
* @param allowAutoRedirect If true, redirection response will be automatically followed.
342+
* @return An initialised instance of HttpWebRequest.
343+
* @throws ServiceLocalException the service local exception
344+
* @throws java.net.URISyntaxException the uRI syntax exception
345+
*/
316346
protected HttpWebRequest prepareHttpPoolingWebRequestForUrl(URI url, boolean acceptGzipEncoding,
317347
boolean allowAutoRedirect) throws ServiceLocalException, URISyntaxException {
318348
// Verify that the protocol is something that we can handle

0 commit comments

Comments
 (0)