Polishing JettyClientHttpRequestFactory
This commit is contained in:
parent
2eb8efe83b
commit
d1d79babe7
|
|
@ -19,7 +19,6 @@ package org.springframework.http.client;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.time.Duration;
|
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.concurrent.TimeoutException;
|
import java.util.concurrent.TimeoutException;
|
||||||
|
|
@ -46,12 +45,12 @@ class JettyClientHttpRequest extends AbstractStreamingClientHttpRequest {
|
||||||
|
|
||||||
private final Request request;
|
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.request = request;
|
||||||
this.timeOut = timeOut;
|
this.readTimeout = readTimeout;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -92,7 +91,7 @@ class JettyClientHttpRequest extends AbstractStreamingClientHttpRequest {
|
||||||
else {
|
else {
|
||||||
this.request.send(responseListener);
|
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());
|
return new JettyClientHttpResponse(response, responseListener.getInputStream());
|
||||||
}
|
}
|
||||||
catch (InterruptedException ex) {
|
catch (InterruptedException ex) {
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,6 @@ package org.springframework.http.client;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.time.Duration;
|
|
||||||
|
|
||||||
import org.eclipse.jetty.client.HttpClient;
|
import org.eclipse.jetty.client.HttpClient;
|
||||||
import org.eclipse.jetty.client.api.Request;
|
import org.eclipse.jetty.client.api.Request;
|
||||||
|
|
@ -41,7 +40,7 @@ public class JettyClientHttpRequestFactory implements ClientHttpRequestFactory,
|
||||||
|
|
||||||
private final boolean defaultClient;
|
private final boolean defaultClient;
|
||||||
|
|
||||||
private Duration timeOut = Duration.ofSeconds(1);
|
private int readTimeout = 1000;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -66,13 +65,20 @@ public class JettyClientHttpRequestFactory implements ClientHttpRequestFactory,
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the maximum time to wait until all headers have been received.
|
* Set the underlying connect timeout in milliseconds.
|
||||||
* The default value is 1 second.
|
* A value of 0 specifies an infinite timeout.
|
||||||
*/
|
*/
|
||||||
public void setTimeOut(Duration timeOut) {
|
public void setConnectTimeout(int connectTimeout) {
|
||||||
Assert.notNull(timeOut, "TimeOut must not be null");
|
Assert.isTrue(connectTimeout >= 0, "Timeout must be a non-negative value");
|
||||||
Assert.isTrue(!timeOut.isNegative(), "TimeOut must not be negative");
|
this.httpClient.setConnectTimeout(connectTimeout);
|
||||||
this.timeOut = timeOut;
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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
|
@Override
|
||||||
|
|
@ -105,6 +111,6 @@ public class JettyClientHttpRequestFactory implements ClientHttpRequestFactory,
|
||||||
}
|
}
|
||||||
|
|
||||||
Request request = this.httpClient.newRequest(uri).method(httpMethod.name());
|
Request request = this.httpClient.newRequest(uri).method(httpMethod.name());
|
||||||
return new JettyClientHttpRequest(request, this.timeOut);
|
return new JettyClientHttpRequest(request, this.readTimeout);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue