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;
}
-
}