Browse Source

Polishing JettyClientHttpRequestFactory

pull/30772/head
Arjen Poutsma 3 years ago
parent
commit
d1d79babe7
  1. 9
      spring-web/src/main/java/org/springframework/http/client/JettyClientHttpRequest.java
  2. 24
      spring-web/src/main/java/org/springframework/http/client/JettyClientHttpRequestFactory.java

9
spring-web/src/main/java/org/springframework/http/client/JettyClientHttpRequest.java

@ -19,7 +19,6 @@ package org.springframework.http.client; @@ -19,7 +19,6 @@ package org.springframework.http.client;
import java.io.IOException;
import java.io.OutputStream;
import java.net.URI;
import java.time.Duration;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
@ -46,12 +45,12 @@ class JettyClientHttpRequest extends AbstractStreamingClientHttpRequest { @@ -46,12 +45,12 @@ class JettyClientHttpRequest extends AbstractStreamingClientHttpRequest {
private final Request request;
private final Duration timeOut;
private final int readTimeout;
public JettyClientHttpRequest(Request request, Duration timeOut) {
public JettyClientHttpRequest(Request request, int readTimeout) {
this.request = request;
this.timeOut = timeOut;
this.readTimeout = readTimeout;
}
@Override
@ -92,7 +91,7 @@ class JettyClientHttpRequest extends AbstractStreamingClientHttpRequest { @@ -92,7 +91,7 @@ class JettyClientHttpRequest extends AbstractStreamingClientHttpRequest {
else {
this.request.send(responseListener);
}
Response response = responseListener.get(TimeUnit.MILLISECONDS.convert(this.timeOut), TimeUnit.MILLISECONDS);
Response response = responseListener.get(this.readTimeout, TimeUnit.MILLISECONDS);
return new JettyClientHttpResponse(response, responseListener.getInputStream());
}
catch (InterruptedException ex) {

24
spring-web/src/main/java/org/springframework/http/client/JettyClientHttpRequestFactory.java

@ -18,7 +18,6 @@ package org.springframework.http.client; @@ -18,7 +18,6 @@ package org.springframework.http.client;
import java.io.IOException;
import java.net.URI;
import java.time.Duration;
import org.eclipse.jetty.client.HttpClient;
import org.eclipse.jetty.client.api.Request;
@ -41,7 +40,7 @@ public class JettyClientHttpRequestFactory implements ClientHttpRequestFactory, @@ -41,7 +40,7 @@ public class JettyClientHttpRequestFactory implements ClientHttpRequestFactory,
private final boolean defaultClient;
private Duration timeOut = Duration.ofSeconds(1);
private int readTimeout = 1000;
/**
@ -66,13 +65,20 @@ public class JettyClientHttpRequestFactory implements ClientHttpRequestFactory, @@ -66,13 +65,20 @@ public class JettyClientHttpRequestFactory implements ClientHttpRequestFactory,
/**
* Sets the maximum time to wait until all headers have been received.
* The default value is 1 second.
* Set the underlying connect timeout in milliseconds.
* A value of 0 specifies an infinite timeout.
*/
public void setTimeOut(Duration timeOut) {
Assert.notNull(timeOut, "TimeOut must not be null");
Assert.isTrue(!timeOut.isNegative(), "TimeOut must not be negative");
this.timeOut = timeOut;
public void setConnectTimeout(int connectTimeout) {
Assert.isTrue(connectTimeout >= 0, "Timeout must be a non-negative value");
this.httpClient.setConnectTimeout(connectTimeout);
}
/**
* Set the underlying read timeout in milliseconds.
*/
public void setReadTimeout(int readTimeout) {
Assert.isTrue(readTimeout > 0, "Timeout must be a positive value");
this.readTimeout = readTimeout;
}
@Override
@ -105,6 +111,6 @@ public class JettyClientHttpRequestFactory implements ClientHttpRequestFactory, @@ -105,6 +111,6 @@ public class JettyClientHttpRequestFactory implements ClientHttpRequestFactory,
}
Request request = this.httpClient.newRequest(uri).method(httpMethod.name());
return new JettyClientHttpRequest(request, this.timeOut);
return new JettyClientHttpRequest(request, this.readTimeout);
}
}

Loading…
Cancel
Save