Polishing

This commit is contained in:
Juergen Hoeller 2016-02-16 13:57:08 +01:00
parent e36b7531d8
commit 5e5bf7f518
3 changed files with 23 additions and 27 deletions

View File

@ -69,14 +69,12 @@ class OkHttpAsyncClientHttpRequest extends AbstractBufferingAsyncClientHttpReque
protected ListenableFuture<ClientHttpResponse> executeInternal(HttpHeaders headers, byte[] content)
throws IOException {
Request request = OkHttpClientHttpRequestFactory
.buildRequest(headers, content, this.uri, this.method);
Request request = OkHttpClientHttpRequestFactory.buildRequest(headers, content, this.uri, this.method);
return new OkHttpListenableFuture(this.client.newCall(request));
}
private static class OkHttpListenableFuture
extends SettableListenableFuture<ClientHttpResponse> {
private static class OkHttpListenableFuture extends SettableListenableFuture<ClientHttpResponse> {
private final Call call;
@ -87,7 +85,6 @@ class OkHttpAsyncClientHttpRequest extends AbstractBufferingAsyncClientHttpReque
public void onResponse(Response response) {
set(new OkHttpClientHttpResponse(response));
}
@Override
public void onFailure(Request request, IOException ex) {
setException(ex);

View File

@ -62,12 +62,8 @@ class OkHttpClientHttpRequest extends AbstractBufferingClientHttpRequest {
@Override
protected ClientHttpResponse executeInternal(HttpHeaders headers, byte[] content)
throws IOException {
Request request = OkHttpClientHttpRequestFactory
.buildRequest(headers, content, this.uri, this.method);
protected ClientHttpResponse executeInternal(HttpHeaders headers, byte[] content) throws IOException {
Request request = OkHttpClientHttpRequestFactory.buildRequest(headers, content, this.uri, this.method);
return new OkHttpClientHttpResponse(this.client.newCall(request).execute());
}

View File

@ -16,6 +16,7 @@
package org.springframework.http.client;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URL;
@ -62,7 +63,7 @@ public class OkHttpClientHttpRequestFactory
* @param client the client to use
*/
public OkHttpClientHttpRequestFactory(OkHttpClient client) {
Assert.notNull(client, "'client' must not be null");
Assert.notNull(client, "OkHttpClient must not be null");
this.client = client;
this.defaultClient = false;
}
@ -106,11 +107,24 @@ public class OkHttpClientHttpRequestFactory
return new OkHttpAsyncClientHttpRequest(this.client, uri, httpMethod);
}
@Override
public void destroy() throws IOException {
if (this.defaultClient) {
// Clean up the client if we created it in the constructor
if (this.client.getCache() != null) {
this.client.getCache().close();
}
this.client.getDispatcher().getExecutorService().shutdown();
}
}
static Request buildRequest(HttpHeaders headers, byte[] content, URI uri,
HttpMethod method) throws MalformedURLException {
com.squareup.okhttp.MediaType contentType = getContentType(headers);
RequestBody body =
(content.length > 0 ? RequestBody.create(contentType, content) : null);
RequestBody body = (content.length > 0 ? RequestBody.create(contentType, content) : null);
URL url = uri.toURL();
String methodName = method.name();
@ -122,6 +136,7 @@ public class OkHttpClientHttpRequestFactory
builder.addHeader(headerName, headerValue);
}
}
return builder.build();
}
@ -131,16 +146,4 @@ public class OkHttpClientHttpRequestFactory
com.squareup.okhttp.MediaType.parse(rawContentType) : null);
}
@Override
public void destroy() throws Exception {
if (this.defaultClient) {
// Clean up the client if we created it in the constructor
if (this.client.getCache() != null) {
this.client.getCache().close();
}
this.client.getDispatcher().getExecutorService().shutdown();
}
}
}