You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by je...@apache.org on 2018/08/17 07:47:11 UTC

[incubator-dubbo] branch master updated: replace the method httpclient which is annotated with “@Deprecated” (#2103)

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 <mc...@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;
     }
-
 }