You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2020/05/28 11:38:26 UTC

[servicecomb-java-chassis] branch master updated: [SCB-1951] enhance HttpTransportContext

This is an automated email from the ASF dual-hosted git repository.

liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git


The following commit(s) were added to refs/heads/master by this push:
     new 87aedb9  [SCB-1951] enhance HttpTransportContext
87aedb9 is described below

commit 87aedb97533bf4b414ea5bc4385b3721dc69c4d8
Author: wujimin <wu...@huawei.com>
AuthorDate: Thu May 28 16:38:57 2020 +0800

    [SCB-1951] enhance HttpTransportContext
---
 .../apache/servicecomb/common/rest/HttpTransportContext.java  | 11 ++++++++++-
 .../servicecomb/common/rest/VertxHttpTransportContext.java    |  5 +++--
 .../apache/servicecomb/common/rest/VertxRestInvocation.java   |  5 +++--
 .../transport/rest/servlet/RestServletProducerInvocation.java |  2 +-
 .../servicecomb/transport/rest/vertx/VertxRestDispatcher.java |  8 ++++----
 5 files changed, 21 insertions(+), 10 deletions(-)

diff --git a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/HttpTransportContext.java b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/HttpTransportContext.java
index 4e048a8..4cfb259 100644
--- a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/HttpTransportContext.java
+++ b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/HttpTransportContext.java
@@ -16,6 +16,7 @@
  */
 package org.apache.servicecomb.common.rest;
 
+import org.apache.servicecomb.common.rest.codec.produce.ProduceProcessor;
 import org.apache.servicecomb.foundation.vertx.http.HttpServletRequestEx;
 import org.apache.servicecomb.foundation.vertx.http.HttpServletResponseEx;
 import org.apache.servicecomb.swagger.invocation.context.TransportContext;
@@ -25,9 +26,13 @@ public class HttpTransportContext implements TransportContext {
 
   private HttpServletResponseEx responseEx;
 
-  public HttpTransportContext(HttpServletRequestEx requestEx, HttpServletResponseEx responseEx) {
+  private ProduceProcessor produceProcessor;
+
+  public HttpTransportContext(HttpServletRequestEx requestEx, HttpServletResponseEx responseEx,
+      ProduceProcessor produceProcessor) {
     this.requestEx = requestEx;
     this.responseEx = responseEx;
+    this.produceProcessor = produceProcessor;
   }
 
   public HttpServletRequestEx getRequestEx() {
@@ -37,4 +42,8 @@ public class HttpTransportContext implements TransportContext {
   public HttpServletResponseEx getResponseEx() {
     return responseEx;
   }
+
+  public ProduceProcessor getProduceProcessor() {
+    return produceProcessor;
+  }
 }
diff --git a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/VertxHttpTransportContext.java b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/VertxHttpTransportContext.java
index 5e2b01b..607dccb 100644
--- a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/VertxHttpTransportContext.java
+++ b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/VertxHttpTransportContext.java
@@ -16,6 +16,7 @@
  */
 package org.apache.servicecomb.common.rest;
 
+import org.apache.servicecomb.common.rest.codec.produce.ProduceProcessor;
 import org.apache.servicecomb.foundation.vertx.http.HttpServletRequestEx;
 import org.apache.servicecomb.foundation.vertx.http.HttpServletResponseEx;
 import org.apache.servicecomb.swagger.invocation.context.VertxTransportContext;
@@ -30,8 +31,8 @@ public class VertxHttpTransportContext extends HttpTransportContext implements V
   private Context vertxContext;
 
   public VertxHttpTransportContext(RoutingContext routingContext, HttpServletRequestEx requestEx,
-      HttpServletResponseEx responseEx) {
-    super(requestEx, responseEx);
+      HttpServletResponseEx responseEx, ProduceProcessor produceProcessor) {
+    super(requestEx, responseEx, produceProcessor);
 
     this.routingContext = routingContext;
     this.vertxContext = Vertx.currentContext();
diff --git a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/VertxRestInvocation.java b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/VertxRestInvocation.java
index b6e5534..c2a664a 100644
--- a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/VertxRestInvocation.java
+++ b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/VertxRestInvocation.java
@@ -27,8 +27,9 @@ public class VertxRestInvocation extends RestProducerInvocation {
     super.createInvocation();
 
     RoutingContext routingContext = ((VertxServerRequestToHttpServletRequest) this.requestEx).getContext();
-    VertxHttpTransportContext transportContext = new VertxHttpTransportContext(routingContext, requestEx, responseEx);
-    
+    VertxHttpTransportContext transportContext = new VertxHttpTransportContext(routingContext, requestEx, responseEx,
+        produceProcessor);
+
     invocation.setTransportContext(transportContext);
     routingContext.put(RestConst.REST_INVOCATION_CONTEXT, this.invocation);
   }
diff --git a/transports/transport-rest/transport-rest-servlet/src/main/java/org/apache/servicecomb/transport/rest/servlet/RestServletProducerInvocation.java b/transports/transport-rest/transport-rest-servlet/src/main/java/org/apache/servicecomb/transport/rest/servlet/RestServletProducerInvocation.java
index 0be644c..50909b3 100644
--- a/transports/transport-rest/transport-rest-servlet/src/main/java/org/apache/servicecomb/transport/rest/servlet/RestServletProducerInvocation.java
+++ b/transports/transport-rest/transport-rest-servlet/src/main/java/org/apache/servicecomb/transport/rest/servlet/RestServletProducerInvocation.java
@@ -45,6 +45,6 @@ public class RestServletProducerInvocation extends RestProducerInvocation {
   protected void createInvocation() {
     super.createInvocation();
 
-    invocation.setTransportContext(new HttpTransportContext(requestEx, responseEx));
+    invocation.setTransportContext(new HttpTransportContext(requestEx, responseEx, produceProcessor));
   }
 }
diff --git a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/VertxRestDispatcher.java b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/VertxRestDispatcher.java
index 235a71d..e152cff 100644
--- a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/VertxRestDispatcher.java
+++ b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/VertxRestDispatcher.java
@@ -68,7 +68,7 @@ public class VertxRestDispatcher extends AbstractVertxHttpDispatcher {
   public void init(Router router) {
     // cookies handler are enabled by default start from 3.8.3
     String pattern = DynamicPropertyFactory.getInstance().getStringProperty(KEY_PATTERN, null).get();
-    if(pattern == null) {
+    if (pattern == null) {
       router.route().handler(createBodyHandler());
       router.route().failureHandler(this::failureHandler).handler(this::onRequest);
     } else {
@@ -82,9 +82,9 @@ public class VertxRestDispatcher extends AbstractVertxHttpDispatcher {
 
     AbstractRestInvocation restProducerInvocation = context.get(RestConst.REST_PRODUCER_INVOCATION);
     Throwable e = context.failure();
-    if (ErrorDataDecoderException.class.isInstance(e)) {
+    if (e instanceof ErrorDataDecoderException) {
       Throwable cause = e.getCause();
-      if (InvocationException.class.isInstance(cause)) {
+      if (cause instanceof InvocationException) {
         e = cause;
       }
     }
@@ -138,7 +138,7 @@ public class VertxRestDispatcher extends AbstractVertxHttpDispatcher {
    * Use routingContext to send failure information in throwable.
    */
   private void sendExceptionByRoutingContext(RoutingContext context, Throwable e) {
-    if (InvocationException.class.isInstance(e)) {
+    if (e instanceof InvocationException) {
       InvocationException invocationException = (InvocationException) e;
       context.response().putHeader(HttpHeaders.CONTENT_TYPE, MediaType.WILDCARD)
           .setStatusCode(invocationException.getStatusCode()).setStatusMessage(invocationException.getReasonPhrase())