This is an automated email from the ASF dual-hosted git repository. ningjiang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git
commit f888e8d572f4d28bd74d5c3d9f850826cdd63026 Author: zhengyangyong <[email protected]> AuthorDate: Wed Jan 3 09:26:10 2018 +0800 SCB-156 Improvement SpringMVC Integration Test and InvokeUtils Signed-off-by: zhengyangyong <[email protected]> --- .../core/provider/consumer/InvokerUtils.java | 7 ++-- .../demo/springmvc/client/SpringmvcClient.java | 46 +++++++++++----------- 2 files changed, 25 insertions(+), 28 deletions(-) diff --git a/core/src/main/java/io/servicecomb/core/provider/consumer/InvokerUtils.java b/core/src/main/java/io/servicecomb/core/provider/consumer/InvokerUtils.java index 3a9b310..a7662bb 100644 --- a/core/src/main/java/io/servicecomb/core/provider/consumer/InvokerUtils.java +++ b/core/src/main/java/io/servicecomb/core/provider/consumer/InvokerUtils.java @@ -87,12 +87,11 @@ public final class InvokerUtils { ReactiveResponseExecutor respExecutor = new ReactiveResponseExecutor(); invocation.setResponseExecutor(respExecutor); - AsyncResponse wrappedAsyncResponse = response -> { + invocation.next(ar -> { invocation.triggerFinishedEvent(); - asyncResp.handle(response); - }; + asyncResp.handle(ar); + }); - invocation.next(wrappedAsyncResponse); } catch (Throwable e) { invocation.triggerFinishedEvent(); LOGGER.error("invoke failed, {}", invocation.getOperationMeta().getMicroserviceQualifiedName()); diff --git a/demo/demo-springmvc/springmvc-client/src/main/java/io/servicecomb/demo/springmvc/client/SpringmvcClient.java b/demo/demo-springmvc/springmvc-client/src/main/java/io/servicecomb/demo/springmvc/client/SpringmvcClient.java index 5364f37..d4f8a2c 100644 --- a/demo/demo-springmvc/springmvc-client/src/main/java/io/servicecomb/demo/springmvc/client/SpringmvcClient.java +++ b/demo/demo-springmvc/springmvc-client/src/main/java/io/servicecomb/demo/springmvc/client/SpringmvcClient.java @@ -19,6 +19,7 @@ package io.servicecomb.demo.springmvc.client; import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; @@ -64,7 +65,6 @@ public class SpringmvcClient { controller = BeanUtils.getBean("controller"); metricsPublisher = BeanUtils.getBean("metricsPublisher"); - String prefix = "cse://springmvc"; try { @@ -97,24 +97,22 @@ public class SpringmvcClient { TestMgr.check(String.valueOf(true), String.valueOf(resultMap.get("CPU and Memory").contains("heapUsed="))); - TestMgr.check(resultMap.get("totalRequestProvider OPERATIONAL_LEVEL"), - "{springmvc.codeFirst.saySomething=3, springmvc.codeFirst.testRawJsonAnnotation=3, " + - "springmvc.codeFirst.sayHi2=3, springmvc.codeFirst.responseEntity=6, springmvc.codeFirst.fileUpload=3, " + - "springmvc.codeFirst.responseEntityPATCH=3, springmvc.codeFirst.textPlain=3, " + - "springmvc.codeFirst.metricsForTest=1, springmvc.codeFirst.testform=6, " + - "springmvc.controller.saySomething=6, springmvc.codeFirst.fallbackReturnNull=6, " + - "springmvc.codeFirst.addString=3, springmvc.codeFirst.reduce=3, springmvc.codeFirst.sayHi=3, " + - "springmvc.codeFirst.cseResponse=6, springmvc.codeFirst.bytes=3, springmvc.controller.sayHei=3, " + - "springmvc.codeFirst.fallbackThrowException=9, springmvc.codeFirst.testModelWithIgnoreField=1, " + - "springmvc.codeFirst.testUserMap=3, springmvc.codeFirst.isTrue=3, springmvc.codeFirst.add=3, " + - "springmvc.codeFirst.fallbackFromCache=6, springmvc.controller.sayHi=17, springmvc.codeFirst.sayHello=6," - + - " springmvc.controller.sayHello=6, springmvc.codeFirst.addDate=3}"); - - TestMgr.check(String.valueOf(resultMap.get("RequestQueueRelated").contains("springmvc.codeFirst.saySomething")), - String.valueOf(true)); - TestMgr.check(String.valueOf(resultMap.get("RequestQueueRelated").contains("springmvc.controller.sayHi")), - String.valueOf(true)); + String[] requestProviders = resultMap.get("totalRequestProvider OPERATIONAL_LEVEL").replace("{", "") + .replace("}", "").split(","); + Map<String, Integer> requests = new HashMap<>(); + for (String requestProvider : requestProviders) { + String[] requestKeyAndValues = requestProvider.split("="); + requests.put(requestKeyAndValues[0], Integer.parseInt(requestKeyAndValues[1])); + } + + for (Entry<String, Integer> request : requests.entrySet()) { + TestMgr.check(String.valueOf(true), String.valueOf(request.getValue() > 0)); + } + + TestMgr.check(String.valueOf(true), + String.valueOf(resultMap.get("RequestQueueRelated").contains("springmvc.codeFirst.saySomething"))); + TestMgr.check(String.valueOf(true), + String.valueOf(resultMap.get("RequestQueueRelated").contains("springmvc.controller.sayHi"))); } catch (Exception e) { TestMgr.check("true", "false"); } @@ -123,11 +121,11 @@ public class SpringmvcClient { try { RegistryMetric metric = metricsPublisher.metrics(); - TestMgr.check(String.valueOf(metric.getInstanceMetric().getSystemMetric().getHeapUsed() != 0), "true"); - TestMgr.check(String.valueOf(metric.getProducerMetrics().size() == 28), "true"); - TestMgr.check(String.valueOf( - metric.getProducerMetrics().get("springmvc.codeFirst.saySomething").getProducerCall().getTotal() == 3), - "true"); + TestMgr + .check(String.valueOf(true), String.valueOf(metric.getInstanceMetric().getSystemMetric().getHeapUsed() != 0)); + TestMgr.check(String.valueOf(true), String.valueOf(metric.getProducerMetrics().size() > 0)); + TestMgr.check(String.valueOf(true), String.valueOf( + metric.getProducerMetrics().get("springmvc.codeFirst.saySomething").getProducerCall().getTotal() > 0)); } catch (Exception e) { TestMgr.check("true", "false"); } -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
