This is an automated email from the ASF dual-hosted git repository. jerrick pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git
The following commit(s) were added to refs/heads/master by this push: new 64f4adb replace the method httpclient which is annotated with “@Deprecated” (#2103) 64f4adb is described below commit 64f4adb5e6a71fd8d7cc9276ae6cf6963014b69a Author: Mccrea <mccrea....@gmail.com> AuthorDate: Fri Aug 17 15:47:07 2018 +0800 replace the method httpclient which is annotated with “@Deprecated” (#2103) --- .../dubbo/rpc/protocol/hessian/HessianProtocol.java | 4 +++- .../rpc/protocol/hessian/HttpClientConnectionFactory.java | 15 ++++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/dubbo-rpc/dubbo-rpc-hessian/src/main/java/org/apache/dubbo/rpc/protocol/hessian/HessianProtocol.java b/dubbo-rpc/dubbo-rpc-hessian/src/main/java/org/apache/dubbo/rpc/protocol/hessian/HessianProtocol.java index ebe1cbd..8a7e0e9 100644 --- a/dubbo-rpc/dubbo-rpc-hessian/src/main/java/org/apache/dubbo/rpc/protocol/hessian/HessianProtocol.java +++ b/dubbo-rpc/dubbo-rpc-hessian/src/main/java/org/apache/dubbo/rpc/protocol/hessian/HessianProtocol.java @@ -109,7 +109,9 @@ public class HessianProtocol extends AbstractProxyProtocol { hessianProxyFactory.setOverloadEnabled(isOverloadEnabled); String client = url.getParameter(Constants.CLIENT_KEY, Constants.DEFAULT_HTTP_CLIENT); if ("httpclient".equals(client)) { - hessianProxyFactory.setConnectionFactory(new HttpClientConnectionFactory()); + HessianConnectionFactory factory = new HttpClientConnectionFactory(); + factory.setHessianProxyFactory(hessianProxyFactory); + hessianProxyFactory.setConnectionFactory(factory); } else if (client != null && client.length() > 0 && !Constants.DEFAULT_HTTP_CLIENT.equals(client)) { throw new IllegalStateException("Unsupported http protocol client=\"" + client + "\"!"); } else { diff --git a/dubbo-rpc/dubbo-rpc-hessian/src/main/java/org/apache/dubbo/rpc/protocol/hessian/HttpClientConnectionFactory.java b/dubbo-rpc/dubbo-rpc-hessian/src/main/java/org/apache/dubbo/rpc/protocol/hessian/HttpClientConnectionFactory.java index 24becb4..36b1e2b 100644 --- a/dubbo-rpc/dubbo-rpc-hessian/src/main/java/org/apache/dubbo/rpc/protocol/hessian/HttpClientConnectionFactory.java +++ b/dubbo-rpc/dubbo-rpc-hessian/src/main/java/org/apache/dubbo/rpc/protocol/hessian/HttpClientConnectionFactory.java @@ -18,11 +18,14 @@ package org.apache.dubbo.rpc.protocol.hessian; import org.apache.dubbo.common.Constants; import org.apache.dubbo.rpc.RpcContext; + import com.caucho.hessian.client.HessianConnection; import com.caucho.hessian.client.HessianConnectionFactory; import com.caucho.hessian.client.HessianProxyFactory; import org.apache.http.client.HttpClient; +import org.apache.http.client.config.RequestConfig; import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.params.HttpConnectionParams; import java.io.IOException; @@ -33,16 +36,19 @@ import java.net.URL; */ public class HttpClientConnectionFactory implements HessianConnectionFactory { - private final HttpClient httpClient = new DefaultHttpClient(); + private HttpClient httpClient; @Override public void setHessianProxyFactory(HessianProxyFactory factory) { - HttpConnectionParams.setConnectionTimeout(httpClient.getParams(), (int) factory.getConnectTimeout()); - HttpConnectionParams.setSoTimeout(httpClient.getParams(), (int) factory.getReadTimeout()); + RequestConfig requestConfig = RequestConfig.custom() + .setConnectionRequestTimeout((int) factory.getConnectTimeout()) + .setSocketTimeout((int) factory.getReadTimeout()) + .build(); + httpClient = HttpClientBuilder.create().setDefaultRequestConfig(requestConfig).build(); } @Override - public HessianConnection open(URL url) throws IOException { + public HessianConnection open(URL url) { HttpClientConnection httpClientConnection = new HttpClientConnection(httpClient, url); RpcContext context = RpcContext.getContext(); for (String key : context.getAttachments().keySet()) { @@ -50,5 +56,4 @@ public class HttpClientConnectionFactory implements HessianConnectionFactory { } return httpClientConnection; } - }