You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by wu...@apache.org on 2019/05/20 18:30:36 UTC

[servicecomb-java-chassis] branch master updated: [SCB-1287]refactor edge dispatcher to make them more extensible

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

wujimin 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 7d01439  [SCB-1287]refactor edge dispatcher to make them more extensible
7d01439 is described below

commit 7d0143984e1013684a368ce38baf89a9765d7ad1
Author: liubao <ba...@huawei.com>
AuthorDate: Fri May 17 12:03:42 2019 +0800

    [SCB-1287]refactor edge dispatcher to make them more extensible
---
 .../java/org/apache/servicecomb/edge/core/AbstractEdgeDispatcher.java | 4 ++++
 .../java/org/apache/servicecomb/edge/core/DefaultEdgeDispatcher.java  | 2 +-
 .../org/apache/servicecomb/edge/core/URLMappedEdgeDispatcher.java     | 2 +-
 .../apache/servicecomb/transport/rest/vertx/VertxRestDispatcher.java  | 4 ++--
 4 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/AbstractEdgeDispatcher.java b/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/AbstractEdgeDispatcher.java
index 689da10..7cdc43e 100644
--- a/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/AbstractEdgeDispatcher.java
+++ b/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/AbstractEdgeDispatcher.java
@@ -34,6 +34,10 @@ import io.vertx.ext.web.RoutingContext;
 public abstract class AbstractEdgeDispatcher extends AbstractVertxHttpDispatcher {
   private static final Logger LOGGER = LoggerFactory.getLogger(AbstractEdgeDispatcher.class);
 
+  protected EdgeInvocation createEdgeInvocation() {
+    return new EdgeInvocation();
+  }
+
   protected void onFailure(RoutingContext context) {
     LOGGER.error("edge server failed.", context.failure());
     HttpServerResponse response = context.response();
diff --git a/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/DefaultEdgeDispatcher.java b/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/DefaultEdgeDispatcher.java
index 20ecb21..b6eadfe 100644
--- a/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/DefaultEdgeDispatcher.java
+++ b/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/DefaultEdgeDispatcher.java
@@ -76,7 +76,7 @@ public class DefaultEdgeDispatcher extends AbstractEdgeDispatcher {
     String microserviceName = pathParams.get("param0");
     String path = Utils.findActualPath(context.request().path(), prefixSegmentCount);
 
-    EdgeInvocation edgeInvocation = new EdgeInvocation();
+    EdgeInvocation edgeInvocation =  createEdgeInvocation();
     if (withVersion) {
       String pathVersion = pathParams.get("param1");
       edgeInvocation.setVersionRule(versionMapper.getOrCreate(pathVersion).getVersionRule());
diff --git a/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/URLMappedEdgeDispatcher.java b/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/URLMappedEdgeDispatcher.java
index f8c1695..5f9cfb7 100644
--- a/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/URLMappedEdgeDispatcher.java
+++ b/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/URLMappedEdgeDispatcher.java
@@ -151,7 +151,7 @@ public class URLMappedEdgeDispatcher extends AbstractEdgeDispatcher {
 
     String path = Utils.findActualPath(context.request().path(), configurationItem.prefixSegmentCount);
 
-    EdgeInvocation edgeInvocation = new EdgeInvocation();
+    EdgeInvocation edgeInvocation = createEdgeInvocation();
     if (configurationItem.versionRule != null) {
       edgeInvocation.setVersionRule(configurationItem.versionRule);
     }
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 20f70bd..b90bc78 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 {
     router.route().failureHandler(this::failureHandler).handler(this::onRequest);
   }
 
-  private void failureHandler(RoutingContext context) {
+  protected void failureHandler(RoutingContext context) {
     LOGGER.error("http server failed.", context.failure());
 
     AbstractRestInvocation restProducerInvocation = context.get(RestConst.REST_PRODUCER_INVOCATION);
@@ -182,7 +182,7 @@ public class VertxRestDispatcher extends AbstractVertxHttpDispatcher {
     context.response().close();
   }
 
-  private void onRequest(RoutingContext context) {
+  protected void onRequest(RoutingContext context) {
     if (transport == null) {
       transport = CseContext.getInstance().getTransportManager().findTransport(Const.RESTFUL);
     }