You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by ni...@apache.org on 2018/01/03 13:57:49 UTC

[incubator-servicecomb-java-chassis] 01/02: SCB-156 Improvement SpringMVC Integration Test and InvokeUtils

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 <ya...@huawei.com>
AuthorDate: Wed Jan 3 09:26:10 2018 +0800

    SCB-156 Improvement SpringMVC Integration Test and InvokeUtils
    
    Signed-off-by: zhengyangyong <ya...@huawei.com>
---
 .../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
"commits@servicecomb.apache.org" <co...@servicecomb.apache.org>.