You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by ya...@apache.org on 2020/03/09 16:14:57 UTC
[servicecomb-java-chassis] 08/19: [SCB-1691] replace RestUtils and
WebsocketUtils in ServiceRegistryClientImpl
This is an automated email from the ASF dual-hosted git repository.
yaohaishi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
commit 1a920ebf93cfb2dd8e5a0360693fcb12231def0b
Author: yhs0092 <yh...@163.com>
AuthorDate: Wed Jan 15 14:57:54 2020 +0800
[SCB-1691] replace RestUtils and WebsocketUtils in ServiceRegistryClientImpl
---
.../client/http/ServiceRegistryClientImpl.java | 50 +++++++++++---------
.../registry/RemoteServiceRegistry.java | 2 +-
.../serviceregistry/client/http/RestUtilsTest.java | 1 +
.../client/http/TestClientHttp.java | 18 ++++++--
.../client/http/TestServiceRegistryClientImpl.java | 53 +++++++++-------------
5 files changed, 65 insertions(+), 59 deletions(-)
diff --git a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/http/ServiceRegistryClientImpl.java b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/http/ServiceRegistryClientImpl.java
index ed2e369..5ab309d 100644
--- a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/http/ServiceRegistryClientImpl.java
+++ b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/http/ServiceRegistryClientImpl.java
@@ -89,8 +89,14 @@ public final class ServiceRegistryClientImpl implements ServiceRegistryClient {
// extract this, ServiceRegistryClient is better to be no status.
private Map<String, Boolean> watchServices = new ConcurrentHashMap<>();
- public ServiceRegistryClientImpl(IpPortManager ipPortManager) {
+ private RestClientUtil restClientUtil;
+
+ private WebsocketClientUtil websocketClientUtil;
+
+ public ServiceRegistryClientImpl(IpPortManager ipPortManager, ServiceRegistryConfig serviceRegistryConfig) {
this.ipPortManager = ipPortManager;
+ this.restClientUtil = new RestClientUtil(serviceRegistryConfig);
+ this.websocketClientUtil = new WebsocketClientUtil(serviceRegistryConfig);
}
private LoadingCache<String, Map<String, String>> schemaCache = CacheBuilder.newBuilder()
@@ -113,7 +119,7 @@ public final class ServiceRegistryClientImpl implements ServiceRegistryClient {
LOGGER.warn("invoke service [{}] failed, retry.", requestContext.getUri());
requestContext.setIpPort(ipPortManager.getNextAvailableAddress(requestContext.getIpPort()));
requestContext.incrementRetryTimes();
- RestUtils.httpDo(requestContext, responseHandler);
+ restClientUtil.httpDo(requestContext, responseHandler);
}
@VisibleForTesting
@@ -197,7 +203,7 @@ public final class ServiceRegistryClientImpl implements ServiceRegistryClient {
}
// temporary copy from syncHandler
- // we will use swagger invocation to replace RestUtils later.
+ // we will use swagger invocation to replace restClientUtil later.
private Handler<RestResponse> syncHandlerEx(CountDownLatch countDownLatch, Holder<ResponseWrapper> holder) {
return restResponse -> {
RequestContext requestContext = restResponse.getRequestContext();
@@ -284,7 +290,7 @@ public final class ServiceRegistryClientImpl implements ServiceRegistryClient {
IpPort ipPort = ipPortManager.getAvailableAddress();
CountDownLatch countDownLatch = new CountDownLatch(1);
- RestUtils.get(ipPort,
+ restClientUtil.get(ipPort,
Const.REGISTRY_API.MICROSERVICE_OPERATION_ALL,
new RequestParam(),
syncHandler(countDownLatch, GetAllServicesResponse.class, holder));
@@ -305,7 +311,7 @@ public final class ServiceRegistryClientImpl implements ServiceRegistryClient {
IpPort ipPort = ipPortManager.getAvailableAddress();
CountDownLatch countDownLatch = new CountDownLatch(1);
- RestUtils.get(ipPort,
+ restClientUtil.get(ipPort,
Const.REGISTRY_API.MICROSERVICE_EXISTENCE,
new RequestParam().addQueryParam("type", "microservice")
.addQueryParam("appId", appId)
@@ -334,7 +340,7 @@ public final class ServiceRegistryClientImpl implements ServiceRegistryClient {
IpPort ipPort = ipPortManager.getAvailableAddress();
CountDownLatch countDownLatch = new CountDownLatch(1);
- RestUtils.get(ipPort,
+ restClientUtil.get(ipPort,
Const.REGISTRY_API.MICROSERVICE_EXISTENCE,
new RequestParam().addQueryParam("type", "schema")
.addQueryParam("serviceId", microserviceId)
@@ -363,7 +369,7 @@ public final class ServiceRegistryClientImpl implements ServiceRegistryClient {
byte[] body = JsonUtils.writeValueAsBytes(request);
CountDownLatch countDownLatch = new CountDownLatch(1);
- RestUtils.put(ipPort,
+ restClientUtil.put(ipPort,
String.format(Const.REGISTRY_API.MICROSERVICE_SCHEMA, microserviceId, schemaId),
new RequestParam().setBody(body),
syncHandlerEx(countDownLatch, holder));
@@ -421,7 +427,7 @@ public final class ServiceRegistryClientImpl implements ServiceRegistryClient {
if (global) {
param.addQueryParam("global", "true");
}
- RestUtils.get(ipPort,
+ restClientUtil.get(ipPort,
String.format(Const.REGISTRY_API.MICROSERVICE_SCHEMA, microserviceId, schemaId),
param,
syncHandler(countDownLatch, GetSchemaResponse.class, holder));
@@ -464,7 +470,7 @@ public final class ServiceRegistryClientImpl implements ServiceRegistryClient {
requestParam.addQueryParam("global", "true");
}
- RestUtils.get(ipPort,
+ restClientUtil.get(ipPort,
String.format(url, microserviceId),
requestParam,
syncHandler(countDownLatch, GetSchemasResponse.class, holder));
@@ -500,7 +506,7 @@ public final class ServiceRegistryClientImpl implements ServiceRegistryClient {
}
CountDownLatch countDownLatch = new CountDownLatch(1);
- RestUtils.post(ipPort,
+ restClientUtil.post(ipPort,
Const.REGISTRY_API.MICROSERVICE_OPERATION_ALL,
new RequestParam().setBody(body),
syncHandler(countDownLatch, CreateServiceResponse.class, holder));
@@ -532,7 +538,7 @@ public final class ServiceRegistryClientImpl implements ServiceRegistryClient {
if (global) {
param.addQueryParam("global", "true");
}
- RestUtils.get(ipPort,
+ restClientUtil.get(ipPort,
String.format(Const.REGISTRY_API.MICROSERVICE_OPERATION_ONE, microserviceId),
param,
syncHandler(countDownLatch, GetServiceResponse.class, holder));
@@ -567,7 +573,7 @@ public final class ServiceRegistryClientImpl implements ServiceRegistryClient {
}
CountDownLatch countDownLatch = new CountDownLatch(1);
- RestUtils.post(ipPort,
+ restClientUtil.post(ipPort,
String.format(Const.REGISTRY_API.MICROSERVICE_INSTANCE_OPERATION_ALL, instance.getServiceId()),
new RequestParam().setBody(body),
syncHandler(countDownLatch, RegisterInstanceResponse.class, holder));
@@ -587,7 +593,7 @@ public final class ServiceRegistryClientImpl implements ServiceRegistryClient {
IpPort ipPort = ipPortManager.getAvailableAddress();
CountDownLatch countDownLatch = new CountDownLatch(1);
- RestUtils.get(ipPort,
+ restClientUtil.get(ipPort,
String.format(Const.REGISTRY_API.MICROSERVICE_INSTANCE_OPERATION_ALL, providerId),
new RequestParam().addHeader("X-ConsumerId", consumerId),
syncHandler(countDownLatch, GetInstancesResponse.class, holder));
@@ -608,7 +614,7 @@ public final class ServiceRegistryClientImpl implements ServiceRegistryClient {
IpPort ipPort = ipPortManager.getAvailableAddress();
CountDownLatch countDownLatch = new CountDownLatch(1);
- RestUtils.delete(ipPort,
+ restClientUtil.delete(ipPort,
String.format(Const.REGISTRY_API.MICROSERVICE_INSTANCE_OPERATION_ONE, microserviceId, microserviceInstanceId),
new RequestParam(),
syncHandler(countDownLatch, HttpClientResponse.class, holder));
@@ -635,7 +641,7 @@ public final class ServiceRegistryClientImpl implements ServiceRegistryClient {
IpPort ipPort = ipPortManager.getAvailableAddress();
CountDownLatch countDownLatch = new CountDownLatch(1);
- RestUtils.put(ipPort,
+ restClientUtil.put(ipPort,
String.format(Const.REGISTRY_API.MICROSERVICE_HEARTBEAT, microserviceId, microserviceInstanceId),
new RequestParam().setTimeout(ServiceRegistryConfig.INSTANCE.getHeartBeatRequestTimeout()),
syncHandler(countDownLatch, HttpClientResponse.class, holder));
@@ -679,7 +685,7 @@ public final class ServiceRegistryClientImpl implements ServiceRegistryClient {
String url = String.format(Const.REGISTRY_API.MICROSERVICE_WATCH, selfMicroserviceId);
IpPort ipPort = ipPortManager.getAvailableAddress();
- WebsocketUtils.open(ipPort, url, o -> {
+ websocketClientUtil.open(ipPort, url, o -> {
onOpen.success(o);
LOGGER.info(
"watching microservice {} successfully, "
@@ -753,7 +759,7 @@ public final class ServiceRegistryClientImpl implements ServiceRegistryClient {
requestParam.addQueryParam("rev", revision);
}
- RestUtils.get(ipPort,
+ restClientUtil.get(ipPort,
Const.REGISTRY_API.MICROSERVICE_INSTANCES,
requestParam,
syncHandlerForInstances(countDownLatch, microserviceInstances));
@@ -805,7 +811,7 @@ public final class ServiceRegistryClientImpl implements ServiceRegistryClient {
}
CountDownLatch countDownLatch = new CountDownLatch(1);
- RestUtils.put(ipPort,
+ restClientUtil.put(ipPort,
String.format(Const.REGISTRY_API.MICROSERVICE_PROPERTIES, microserviceId),
new RequestParam().setBody(body),
syncHandler(countDownLatch, HttpClientResponse.class, holder));
@@ -842,7 +848,7 @@ public final class ServiceRegistryClientImpl implements ServiceRegistryClient {
}
CountDownLatch countDownLatch = new CountDownLatch(1);
- RestUtils.put(ipPort,
+ restClientUtil.put(ipPort,
String.format(Const.REGISTRY_API.MICROSERVICE_INSTANCE_PROPERTIES, microserviceId, microserviceInstanceId),
new RequestParam().setBody(body),
syncHandler(countDownLatch, HttpClientResponse.class, holder));
@@ -869,7 +875,7 @@ public final class ServiceRegistryClientImpl implements ServiceRegistryClient {
Holder<MicroserviceInstanceResponse> holder = new Holder<>();
IpPort ipPort = ipPortManager.getAvailableAddress();
CountDownLatch countDownLatch = new CountDownLatch(1);
- RestUtils.get(ipPort,
+ restClientUtil.get(ipPort,
String.format(Const.REGISTRY_API.MICROSERVICE_INSTANCE_OPERATION_ONE, serviceId, instanceId),
new RequestParam().addHeader("X-ConsumerId", serviceId).addQueryParam("global", "true"),
syncHandler(countDownLatch, MicroserviceInstanceResponse.class, holder));
@@ -890,7 +896,7 @@ public final class ServiceRegistryClientImpl implements ServiceRegistryClient {
IpPort ipPort = ipPortManager.getAvailableAddress();
CountDownLatch countDownLatch = new CountDownLatch(1);
- RestUtils.get(ipPort,
+ restClientUtil.get(ipPort,
Const.REGISTRY_API.SERVICECENTER_VERSION,
new RequestParam(),
syncHandler(countDownLatch, ServiceCenterInfo.class, holder));
@@ -920,7 +926,7 @@ public final class ServiceRegistryClientImpl implements ServiceRegistryClient {
Map<String, String[]> queryParams = new HashMap<>();
queryParams.put("value", new String[] {status.toString()});
CountDownLatch countDownLatch = new CountDownLatch(1);
- RestUtils.put(ipPort, url, new RequestParam().setQueryParams(queryParams),
+ restClientUtil.put(ipPort, url, new RequestParam().setQueryParams(queryParams),
syncHandler(countDownLatch, HttpClientResponse.class, holder));
countDownLatch.await();
if (holder.value != null) {
diff --git a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/registry/RemoteServiceRegistry.java b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/registry/RemoteServiceRegistry.java
index dfeee99..b6af226 100644
--- a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/registry/RemoteServiceRegistry.java
+++ b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/registry/RemoteServiceRegistry.java
@@ -72,7 +72,7 @@ public class RemoteServiceRegistry extends AbstractServiceRegistry {
@Override
protected ServiceRegistryClient createServiceRegistryClient() {
- return new ServiceRegistryClientImpl(ipPortManager);
+ return new ServiceRegistryClientImpl(ipPortManager, serviceRegistryConfig);
}
@Override
diff --git a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/client/http/RestUtilsTest.java b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/client/http/RestUtilsTest.java
index ad72502..336a805 100644
--- a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/client/http/RestUtilsTest.java
+++ b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/client/http/RestUtilsTest.java
@@ -28,6 +28,7 @@ import org.junit.Test;
import io.vertx.core.MultiMap;
import io.vertx.core.http.HttpMethod;
+@SuppressWarnings("deprecation")
public class RestUtilsTest {
@Test
public void defaultHeadersContainServiceRegistryAndAuthentication() throws Exception {
diff --git a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestClientHttp.java b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestClientHttp.java
index b58088d..48ab807 100644
--- a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestClientHttp.java
+++ b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestClientHttp.java
@@ -63,24 +63,34 @@ public class TestClientHttp {
public void await() throws InterruptedException {
}
};
- new MockUp<RestUtils>() {
+ new MockUp<RestClientUtil>() {
@Mock
void httpDo(RequestContext requestContext, Handler<RestResponse> responseHandler) {
}
};
-
- new MockUp<WebsocketUtils>() {
+ new MockUp<WebsocketClientUtil>() {
@Mock
void open(IpPort ipPort, String url, Handler<Void> onOpen, Handler<Void> onClose,
Handler<Buffer> onMessage, Handler<Throwable> onException,
Handler<Throwable> onConnectFailed) {
}
};
+ // mock up this two client pool, since this UT case doesn't require the client pool actually boot up.
+ new MockUp<HttpClientPool>() {
+ @Mock
+ void create() {
+ }
+ };
+ new MockUp<WebsocketClientPool>() {
+ @Mock
+ void create() {
+ }
+ };
MicroserviceFactory microserviceFactory = new MicroserviceFactory();
Microservice microservice = microserviceFactory.create("app", "ms");
- ServiceRegistryClientImpl oClient = new ServiceRegistryClientImpl(manager);
+ ServiceRegistryClientImpl oClient = new ServiceRegistryClientImpl(manager, ServiceRegistryConfig.INSTANCE);
oClient.init();
oClient.registerMicroservice(microservice);
oClient.registerMicroserviceInstance(microservice.getInstance());
diff --git a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestServiceRegistryClientImpl.java b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestServiceRegistryClientImpl.java
index 3a7662b..6e260d9 100644
--- a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestServiceRegistryClientImpl.java
+++ b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestServiceRegistryClientImpl.java
@@ -45,6 +45,7 @@ import org.apache.servicecomb.serviceregistry.api.response.GetServiceResponse;
import org.apache.servicecomb.serviceregistry.client.ClientException;
import org.apache.servicecomb.serviceregistry.client.IpPortManager;
import org.apache.servicecomb.serviceregistry.client.http.ServiceRegistryClientImpl.ResponseWrapper;
+import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
import org.junit.After;
import org.junit.Assert;
@@ -60,7 +61,6 @@ import io.vertx.core.Handler;
import io.vertx.core.buffer.Buffer;
import io.vertx.core.http.HttpClientOptions;
import io.vertx.core.http.HttpClientResponse;
-import io.vertx.core.http.HttpMethod;
import io.vertx.core.json.Json;
import mockit.Deencapsulation;
import mockit.Expectations;
@@ -78,13 +78,7 @@ public class TestServiceRegistryClientImpl {
@Before
public void setUp() throws Exception {
- oClient = new ServiceRegistryClientImpl(ipPortManager);
-
- new MockUp<RestUtils>() {
- @Mock
- void httpDo(RequestContext requestContext, Handler<RestResponse> responseHandler) {
- }
- };
+ oClient = new ServiceRegistryClientImpl(ipPortManager, ServiceRegistryConfig.buildFromConfiguration());
new MockUp<RegistryUtils>() {
@Mock
@@ -216,7 +210,7 @@ public class TestServiceRegistryClientImpl {
};
}
};
- new MockUp<RestUtils>() {
+ new MockUp<RestClientUtil>() {
@Mock
void httpDo(RequestContext requestContext, Handler<RestResponse> responseHandler) {
responseHandler.handle(null);
@@ -248,7 +242,7 @@ public class TestServiceRegistryClientImpl {
};
}
};
- new MockUp<RestUtils>() {
+ new MockUp<RestClientUtil>() {
@Mock
void httpDo(RequestContext requestContext, Handler<RestResponse> responseHandler) {
responseHandler.handle(null);
@@ -304,7 +298,7 @@ public class TestServiceRegistryClientImpl {
String microserviceId = "msId";
String schemaId = "schemaId";
- new MockUp<RestUtils>() {
+ new MockUp<RestClientUtil>() {
@Mock
void httpDo(RequestContext requestContext, Handler<RestResponse> responseHandler) {
Holder<GetExistenceResponse> holder = Deencapsulation.getField(responseHandler, "arg$4");
@@ -317,7 +311,7 @@ public class TestServiceRegistryClientImpl {
@Test
public void getAggregatedMicroservice() {
String microserviceId = "msId";
- new MockUp<RestUtils>() {
+ new MockUp<RestClientUtil>() {
@Mock
void httpDo(RequestContext requestContext, Handler<RestResponse> responseHandler) {
Holder<GetServiceResponse> holder = Deencapsulation.getField(responseHandler, "arg$4");
@@ -342,7 +336,7 @@ public class TestServiceRegistryClientImpl {
String microserviceId = "msId";
String schemaId = "schemaId";
- new MockUp<RestUtils>() {
+ new MockUp<RestClientUtil>() {
@Mock
void httpDo(RequestContext requestContext, Handler<RestResponse> responseHandler) {
@@ -376,7 +370,7 @@ public class TestServiceRegistryClientImpl {
public void getSchemas() {
String microserviceId = "msId";
- new MockUp<RestUtils>() {
+ new MockUp<RestClientUtil>() {
@Mock
void httpDo(RequestContext requestContext, Handler<RestResponse> responseHandler) {
Holder<GetSchemasResponse> holder = Deencapsulation.getField(responseHandler, "arg$4");
@@ -399,7 +393,7 @@ public class TestServiceRegistryClientImpl {
public void getSchemasForNew() {
String microserviceId = "msId";
- new MockUp<RestUtils>() {
+ new MockUp<RestClientUtil>() {
@Mock
void httpDo(RequestContext requestContext, Handler<RestResponse> responseHandler) {
Holder<GetSchemasResponse> holder = Deencapsulation.getField(responseHandler, "arg$4");
@@ -422,7 +416,7 @@ public class TestServiceRegistryClientImpl {
public void getSchemasFailed() {
String microserviceId = "msId";
- new MockUp<RestUtils>() {
+ new MockUp<RestClientUtil>() {
@Mock
void httpDo(RequestContext requestContext, Handler<RestResponse> responseHandler) {
Holder<GetSchemasResponse> holder = Deencapsulation.getField(responseHandler, "arg$4");
@@ -437,7 +431,7 @@ public class TestServiceRegistryClientImpl {
@Test
public void testFindServiceInstance() {
- new MockUp<RestUtils>() {
+ new MockUp<RestClientUtil>() {
@Mock
void get(IpPort ipPort, String uri, RequestParam requestParam,
Handler<RestResponse> responseHandler) {
@@ -449,7 +443,7 @@ public class TestServiceRegistryClientImpl {
@Test
public void findServiceInstance_consumerId_null() {
- new MockUp<RestUtils>() {
+ new MockUp<RestClientUtil>() {
@Mock
void get(IpPort ipPort, String uri, RequestParam requestParam,
Handler<RestResponse> responseHandler) {
@@ -461,7 +455,7 @@ public class TestServiceRegistryClientImpl {
}
@Test
- public void findServiceInstances_microserviceNotExist(@Mocked RequestContext requestContext) {
+ public void findServiceInstances_microserviceNotExist() {
HttpClientResponse response = new MockUp<HttpClientResponse>() {
@Mock
int statusCode() {
@@ -475,18 +469,13 @@ public class TestServiceRegistryClientImpl {
return null;
}
}.getMockInstance();
- RestResponse restResponse = new RestResponse(requestContext, response);
- new MockUp<RestUtils>() {
- @Mock
- void get(IpPort ipPort, String uri, RequestParam requestParam,
- Handler<RestResponse> responseHandler) {
- Assert.assertEquals("appId=appId&global=true&serviceName=serviceName&version=0.0.0.0%2B",
- requestParam.getQueryParams());
- httpDo(RestUtils.createRequestContext(HttpMethod.GET, ipPort, uri, requestParam), responseHandler);
- }
-
+ RestResponse restResponse = new RestResponse(null, response);
+ new MockUp<RestClientUtil>() {
@Mock
void httpDo(RequestContext requestContext, Handler<RestResponse> responseHandler) {
+ Assert.assertEquals("appId=appId&global=true&serviceName=serviceName&version=0.0.0.0%2B",
+ requestContext.getParams().getQueryParams());
+ restResponse.setRequestContext(requestContext);
responseHandler.handle(restResponse);
}
};
@@ -506,7 +495,7 @@ public class TestServiceRegistryClientImpl {
serviceCenterInfo.setApiVersion("x.x.x");
serviceCenterInfo.setConfig(new ServiceCenterConfig());
- new MockUp<RestUtils>() {
+ new MockUp<RestClientUtil>() {
@Mock
void httpDo(RequestContext requestContext, Handler<RestResponse> responseHandler) {
Holder<ServiceCenterInfo> holder = Deencapsulation.getField(responseHandler, "arg$4");
@@ -550,7 +539,7 @@ public class TestServiceRegistryClientImpl {
return 200;
}
}.getMockInstance();
- new MockUp<RestUtils>() {
+ new MockUp<RestClientUtil>() {
@Mock
void put(IpPort ipPort, String uri, RequestParam requestParam, Handler<RestResponse> responseHandler) {
Holder<HttpClientResponse> holder = Deencapsulation.getField(responseHandler, "arg$4");
@@ -571,7 +560,7 @@ public class TestServiceRegistryClientImpl {
return 400;
}
}.getMockInstance();
- new MockUp<RestUtils>() {
+ new MockUp<RestClientUtil>() {
@Mock
void put(IpPort ipPort, String uri, RequestParam requestParam, Handler<RestResponse> responseHandler) {
Holder<HttpClientResponse> holder = Deencapsulation.getField(responseHandler, "arg$4");