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())