Skip to content

Commit 27e0f00

Browse files
author
Stephane Landelle
committed
Remove deprecated PerRequestConfig
1 parent 9c14ba0 commit 27e0f00

File tree

10 files changed

+50
-168
lines changed

10 files changed

+50
-168
lines changed

api/src/main/java/com/ning/http/client/PerRequestConfig.java

Lines changed: 0 additions & 48 deletions
This file was deleted.

api/src/main/java/com/ning/http/client/Request.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -207,11 +207,11 @@ public static interface EntityWriter {
207207
public boolean isRedirectOverrideSet();
208208

209209
/**
210-
* Return Per request configuration.
210+
* Return the request time out in milliseconds.
211211
*
212-
* @return Per request configuration.
212+
* @return requestTimeoutInMs.
213213
*/
214-
public PerRequestConfig getPerRequestConfig();
214+
public int getRequestTimeoutInMs();
215215

216216
/**
217217
* Return the HTTP Range header value, or

api/src/main/java/com/ning/http/client/RequestBuilderBase.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,11 @@ public abstract class RequestBuilderBase<T extends RequestBuilderBase<T>> {
4949

5050
private static final class RequestImpl implements Request {
5151
private String method;
52-
private URI originalUri = null;
53-
private URI uri = null;
54-
private URI rawUri = null;
55-
private InetAddress address = null;
56-
private InetAddress localAddress = null;
52+
private URI originalUri;
53+
private URI uri;
54+
private URI rawUri;
55+
private InetAddress address;
56+
private InetAddress localAddress;
5757
private FluentCaseInsensitiveStringsMap headers = new FluentCaseInsensitiveStringsMap();
5858
private Collection<Cookie> cookies = new ArrayList<Cookie>();
5959
private byte[] byteData;
@@ -70,10 +70,10 @@ private static final class RequestImpl implements Request {
7070
private Realm realm;
7171
private File file;
7272
private Boolean followRedirects;
73-
private PerRequestConfig perRequestConfig;
74-
private long rangeOffset = 0;
73+
private int requestTimeoutInMs;
74+
private long rangeOffset;
7575
public String charset;
76-
private boolean useRawUrl = false;
76+
private boolean useRawUrl;
7777
private ConnectionPoolKeyStrategy connectionPoolKeyStrategy = DefaultConnectionPoolStrategy.INSTANCE;
7878

7979
public RequestImpl(boolean useRawUrl) {
@@ -102,7 +102,7 @@ public RequestImpl(Request prototype) {
102102
this.realm = prototype.getRealm();
103103
this.file = prototype.getFile();
104104
this.followRedirects = prototype.isRedirectOverrideSet()? prototype.isRedirectEnabled() : null;
105-
this.perRequestConfig = prototype.getPerRequestConfig();
105+
this.requestTimeoutInMs = prototype.getRequestTimeoutInMs();
106106
this.rangeOffset = prototype.getRangeOffset();
107107
this.charset = prototype.getBodyEncoding();
108108
this.useRawUrl = prototype.isUseRawUrl();
@@ -299,8 +299,8 @@ public boolean isRedirectOverrideSet(){
299299
return followRedirects != null;
300300
}
301301

302-
public PerRequestConfig getPerRequestConfig() {
303-
return perRequestConfig;
302+
public int getRequestTimeoutInMs() {
303+
return requestTimeoutInMs;
304304
}
305305

306306
public long getRangeOffset() {
@@ -610,8 +610,8 @@ public T setFollowRedirects(boolean followRedirects) {
610610
return derived.cast(this);
611611
}
612612

613-
public T setPerRequestConfig(PerRequestConfig perRequestConfig) {
614-
request.perRequestConfig = perRequestConfig;
613+
public T setRequestTimeoutInMs(int requestTimeoutInMs) {
614+
request.requestTimeoutInMs = requestTimeoutInMs;
615615
return derived.cast(this);
616616
}
617617

api/src/main/java/com/ning/http/client/providers/jdk/JDKAsyncHttpProvider.java

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import com.ning.http.client.HttpResponseStatus;
2626
import com.ning.http.client.ListenableFuture;
2727
import com.ning.http.client.MaxRedirectException;
28-
import com.ning.http.client.PerRequestConfig;
2928
import com.ning.http.client.ProgressAsyncHandler;
3029
import com.ning.http.client.ProxyServer;
3130
import com.ning.http.client.Realm;
@@ -143,9 +142,7 @@ public <T> ListenableFuture<T> execute(Request request, AsyncHandler<T> handler,
143142

144143
HttpURLConnection urlConnection = createUrlConnection(request);
145144

146-
PerRequestConfig conf = request.getPerRequestConfig();
147-
int requestTimeout = (conf != null && conf.getRequestTimeoutInMs() != 0) ?
148-
conf.getRequestTimeoutInMs() : config.getRequestTimeoutInMs();
145+
int requestTimeout = AsyncHttpProviderUtils.requestTimeout(config, request);
149146

150147
JDKDelegateFuture<T> delegate = null;
151148
if (future != null) {
@@ -428,12 +425,8 @@ private Throwable filterException(Throwable t) {
428425
}
429426

430427
if (SocketTimeoutException.class.isAssignableFrom(t.getClass())) {
431-
int responseTimeoutInMs = config.getRequestTimeoutInMs();
432-
433-
if (request.getPerRequestConfig() != null && request.getPerRequestConfig().getRequestTimeoutInMs() != -1) {
434-
responseTimeoutInMs = request.getPerRequestConfig().getRequestTimeoutInMs();
435-
}
436-
t = new TimeoutException(String.format("No response received after %s", responseTimeoutInMs));
428+
int requestTimeout = AsyncHttpProviderUtils.requestTimeout(config, request);
429+
t = new TimeoutException("No response received after " + requestTimeout);
437430
}
438431

439432
if (SSLHandshakeException.class.isAssignableFrom(t.getClass())) {
@@ -447,14 +440,12 @@ private Throwable filterException(Throwable t) {
447440

448441
private void configure(URI uri, HttpURLConnection urlConnection, Request request) throws IOException, AuthenticationException {
449442

450-
PerRequestConfig conf = request.getPerRequestConfig();
451-
int requestTimeout = (conf != null && conf.getRequestTimeoutInMs() != 0) ?
452-
conf.getRequestTimeoutInMs() : config.getRequestTimeoutInMs();
443+
int requestTimeout = AsyncHttpProviderUtils.requestTimeout(config, request);
453444

454-
urlConnection.setConnectTimeout(config.getConnectionTimeoutInMs());
455-
456-
if (requestTimeout != -1)
445+
if (requestTimeout != 0) {
446+
urlConnection.setConnectTimeout(requestTimeout);
457447
urlConnection.setReadTimeout(requestTimeout);
448+
}
458449

459450
urlConnection.setInstanceFollowRedirects(false);
460451
String host = uri.getHost();

api/src/main/java/com/ning/http/util/AsyncHttpProviderUtils.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.ning.http.client.FluentStringsMap;
2121
import com.ning.http.client.HttpResponseBodyPart;
2222
import com.ning.http.client.Part;
23+
import com.ning.http.client.Request;
2324
import com.ning.http.client.StringPart;
2425
import com.ning.http.multipart.ByteArrayPartSource;
2526
import com.ning.http.multipart.MultipartRequestEntity;
@@ -603,4 +604,8 @@ public static void checkBodyParts(int statusCode, Collection<HttpResponseBodyPar
603604
public static String keepAliveHeaderValue(AsyncHttpClientConfig config) {
604605
return config.getAllowPoolingConnection() ? "keep-alive" : "close";
605606
}
607+
608+
public static int requestTimeout(AsyncHttpClientConfig config, Request request) {
609+
return request.getRequestTimeoutInMs() != 0 ? request.getRequestTimeoutInMs() : config.getRequestTimeoutInMs();
610+
}
606611
}

api/src/test/java/com/ning/http/client/async/PerRequestTimeoutTest.java

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import com.ning.http.client.AsyncHttpClient;
2020
import com.ning.http.client.AsyncHttpClientConfig;
2121
import com.ning.http.client.HttpResponseBodyPart;
22-
import com.ning.http.client.PerRequestConfig;
2322
import com.ning.http.client.Response;
2423
import org.eclipse.jetty.continuation.Continuation;
2524
import org.eclipse.jetty.continuation.ContinuationSupport;
@@ -99,12 +98,9 @@ public void run() {
9998
public void testRequestTimeout() throws IOException {
10099
AsyncHttpClient client = getAsyncHttpClient(null);
101100
try {
102-
PerRequestConfig requestConfig = new PerRequestConfig();
103-
requestConfig.setRequestTimeoutInMs(100);
104-
Future<Response> responseFuture = client.prepareGet(getTargetUrl()).setPerRequestConfig(requestConfig).execute();
101+
Future<Response> responseFuture = client.prepareGet(getTargetUrl()).setRequestTimeoutInMs(100).execute();
105102
Response response = responseFuture.get(2000, TimeUnit.MILLISECONDS);
106103
assertNull(response);
107-
client.close();
108104
} catch (InterruptedException e) {
109105
fail("Interrupted.", e);
110106
} catch (ExecutionException e) {
@@ -121,12 +117,9 @@ public void testRequestTimeout() throws IOException {
121117
public void testGlobalDefaultPerRequestInfiniteTimeout() throws IOException {
122118
AsyncHttpClient client = getAsyncHttpClient(new AsyncHttpClientConfig.Builder().setRequestTimeoutInMs(100).build());
123119
try {
124-
PerRequestConfig requestConfig = new PerRequestConfig();
125-
requestConfig.setRequestTimeoutInMs(-1);
126-
Future<Response> responseFuture = client.prepareGet(getTargetUrl()).setPerRequestConfig(requestConfig).execute();
120+
Future<Response> responseFuture = client.prepareGet(getTargetUrl()).setRequestTimeoutInMs(-1).execute();
127121
Response response = responseFuture.get();
128122
assertNotNull(response);
129-
client.close();
130123
} catch (InterruptedException e) {
131124
fail("Interrupted.", e);
132125
} catch (ExecutionException e) {
@@ -144,7 +137,6 @@ public void testGlobalRequestTimeout() throws IOException {
144137
Future<Response> responseFuture = client.prepareGet(getTargetUrl()).execute();
145138
Response response = responseFuture.get(2000, TimeUnit.MILLISECONDS);
146139
assertNull(response);
147-
client.close();
148140
} catch (InterruptedException e) {
149141
fail("Interrupted.", e);
150142
} catch (ExecutionException e) {

providers/apache/src/main/java/com/ning/http/client/providers/apache/ApacheAsyncHttpProvider.java

Lines changed: 5 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import com.ning.http.client.ListenableFuture;
2929
import com.ning.http.client.MaxRedirectException;
3030
import com.ning.http.client.Part;
31-
import com.ning.http.client.PerRequestConfig;
3231
import com.ning.http.client.ProgressAsyncHandler;
3332
import com.ning.http.client.ProxyServer;
3433
import com.ning.http.client.Realm;
@@ -185,7 +184,7 @@ public <T> ListenableFuture<T> execute(Request request, AsyncHandler<T> handler)
185184
idleConnectionTimeoutThread = null;
186185
}
187186

188-
int requestTimeout = requestTimeout(config, request.getPerRequestConfig());
187+
int requestTimeout = AsyncHttpProviderUtils.requestTimeout(config, request);
189188
if (config.getIdleConnectionTimeoutInMs() > 0 && requestTimeout != -1 && requestTimeout < config.getIdleConnectionTimeoutInMs()) {
190189
idleConnectionTimeoutThread = new IdleConnectionTimeoutThread();
191190
idleConnectionTimeoutThread.setConnectionTimeout(config.getIdleConnectionTimeoutInMs());
@@ -453,7 +452,7 @@ public T call() {
453452
uri = AsyncHttpProviderUtils.createUri(request.getUrl());
454453
}
455454

456-
int delay = requestTimeout(config, future.getRequest().getPerRequestConfig());
455+
int delay = AsyncHttpProviderUtils.requestTimeout(config, future.getRequest());
457456
if (delay != -1) {
458457
ReaperFuture reaperFuture = new ReaperFuture(future);
459458
Future<?> scheduledFuture = config.reaper().scheduleAtFixedRate(reaperFuture, delay, 500, TimeUnit.MILLISECONDS);
@@ -649,12 +648,8 @@ private Throwable filterException(Throwable t) {
649648
}
650649

651650
if (NoHttpResponseException.class.isAssignableFrom(t.getClass())) {
652-
int responseTimeoutInMs = config.getRequestTimeoutInMs();
653-
654-
if (request.getPerRequestConfig() != null && request.getPerRequestConfig().getRequestTimeoutInMs() != -1) {
655-
responseTimeoutInMs = request.getPerRequestConfig().getRequestTimeoutInMs();
656-
}
657-
t = new TimeoutException(String.format("No response received after %s", responseTimeoutInMs));
651+
int requestTimeout = AsyncHttpProviderUtils.requestTimeout(config, request);
652+
t = new TimeoutException(String.format("No response received after %s", requestTimeout));
658653
}
659654

660655
if (SSLHandshakeException.class.isAssignableFrom(t.getClass())) {
@@ -861,26 +856,11 @@ public synchronized void run() {
861856
if (this.apacheResponseFuture != null && this.apacheResponseFuture.hasExpired()) {
862857
logger.debug("Request Timeout expired for {}", this.apacheResponseFuture);
863858

864-
int requestTimeout = config.getRequestTimeoutInMs();
865-
PerRequestConfig p = this.apacheResponseFuture.getRequest().getPerRequestConfig();
866-
if (p != null && p.getRequestTimeoutInMs() != -1) {
867-
requestTimeout = p.getRequestTimeoutInMs();
868-
}
859+
int requestTimeout = AsyncHttpProviderUtils.requestTimeout(config, apacheResponseFuture.getRequest());
869860
apacheResponseFuture.abort(new TimeoutException(String.format("No response received after %s", requestTimeout)));
870861

871862
this.apacheResponseFuture = null;
872863
}
873864
}
874865
}
875-
876-
protected static int requestTimeout(AsyncHttpClientConfig config, PerRequestConfig perRequestConfig) {
877-
int result;
878-
if (perRequestConfig != null) {
879-
int prRequestTimeout = perRequestConfig.getRequestTimeoutInMs();
880-
result = (prRequestTimeout != 0 ? prRequestTimeout : config.getRequestTimeoutInMs());
881-
} else {
882-
result = config.getRequestTimeoutInMs();
883-
}
884-
return result;
885-
}
886866
}

providers/grizzly/src/main/java/com/ning/http/client/providers/grizzly/GrizzlyAsyncHttpProvider.java

Lines changed: 8 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import com.ning.http.client.ListenableFuture;
3131
import com.ning.http.client.MaxRedirectException;
3232
import com.ning.http.client.Part;
33-
import com.ning.http.client.PerRequestConfig;
3433
import com.ning.http.client.ProxyServer;
3534
import com.ning.http.client.Realm;
3635
import com.ning.http.client.Request;
@@ -340,12 +339,9 @@ public long getTimeout(FilterChainContext ctx) {
340339
if (context.isWSRequest) {
341340
return clientConfig.getWebSocketIdleTimeoutInMs();
342341
}
343-
final PerRequestConfig config = context.request.getPerRequestConfig();
344-
if (config != null) {
345-
final long timeout = config.getRequestTimeoutInMs();
346-
if (timeout > 0) {
347-
return timeout;
348-
}
342+
int requestTimeout = AsyncHttpProviderUtils.requestTimeout(clientConfig, context.request);
343+
if (requestTimeout > 0) {
344+
return requestTimeout;
349345
}
350346
}
351347
return timeout;
@@ -426,21 +422,10 @@ public void onTimeout(Connection connection) {
426422

427423
void touchConnection(final Connection c, final Request request) {
428424

429-
final PerRequestConfig config = request.getPerRequestConfig();
430-
if (config != null) {
431-
final long timeout = config.getRequestTimeoutInMs();
432-
if (timeout > 0) {
433-
final long newTimeout = System.currentTimeMillis() + timeout;
434-
if (resolver != null) {
435-
resolver.setTimeoutMillis(c, newTimeout);
436-
}
437-
}
438-
} else {
439-
final long timeout = clientConfig.getRequestTimeoutInMs();
440-
if (timeout > 0) {
441-
if (resolver != null) {
442-
resolver.setTimeoutMillis(c, System.currentTimeMillis() + timeout);
443-
}
425+
int requestTimeout = AsyncHttpProviderUtils.requestTimeout(clientConfig, request);
426+
if (requestTimeout > 0) {
427+
if (resolver != null) {
428+
resolver.setTimeoutMillis(c, System.currentTimeMillis() + requestTimeout);
444429
}
445430
}
446431

@@ -2935,7 +2920,4 @@ public int hashCode() {
29352920
}
29362921
} // END AHCWebSocketListenerAdapter
29372922

2938-
}
2939-
2940-
2941-
2923+
}

0 commit comments

Comments
 (0)