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 2018/08/07 12:49:00 UTC

[incubator-servicecomb-java-chassis] 04/04: SCB-688 refactor ConnectedCounter into Transport and move HighwayTransport.NAME into Const.HIGHWAY

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/incubator-servicecomb-java-chassis.git

commit 5d27dd3c819320734334cfb08de629d031e47f49
Author: zhengyangyong <ya...@huawei.com>
AuthorDate: Mon Aug 6 17:33:11 2018 +0800

    SCB-688 refactor ConnectedCounter into Transport and move HighwayTransport.NAME into Const.HIGHWAY
    
    Signed-off-by: zhengyangyong <ya...@huawei.com>
---
 .../java/org/apache/servicecomb/core/Const.java    |  2 ++
 .../org/apache/servicecomb/core/Transport.java     |  4 ++++
 .../core/transport/AbstractTransport.java          |  8 ++++++++
 .../org/apache/servicecomb/core/TestTransport.java | 17 +++++++++++------
 .../org/apache/servicecomb/it/ConsumerMain.java    |  3 +--
 .../apache/servicecomb/it/schema/DataTypePojo.java |  5 ++---
 .../transport/highway/HighwayClientConnection.java |  3 ++-
 .../transport/highway/HighwayServerVerticle.java   |  7 ++++---
 .../transport/highway/HighwayTransport.java        | 11 ++---------
 .../transport/highway/TestHighwayClient.java       | 13 +++++++------
 .../transport/highway/TestHighwayVerticle.java     | 22 +++++-----------------
 .../transport/rest/vertx/RestServerVerticle.java   |  5 +++--
 .../transport/rest/vertx/VertxRestTransport.java   |  8 --------
 13 files changed, 51 insertions(+), 57 deletions(-)

diff --git a/core/src/main/java/org/apache/servicecomb/core/Const.java b/core/src/main/java/org/apache/servicecomb/core/Const.java
index 08fcf7c..e46cc82 100644
--- a/core/src/main/java/org/apache/servicecomb/core/Const.java
+++ b/core/src/main/java/org/apache/servicecomb/core/Const.java
@@ -27,6 +27,8 @@ public final class Const {
 
   public static final String RESTFUL = "rest";
 
+  public static final String HIGHWAY = "highway";
+
   public static final String ANY_TRANSPORT = "";
 
   public static final String VERSION_RULE_LATEST = DefinitionConst.VERSION_RULE_LATEST;
diff --git a/core/src/main/java/org/apache/servicecomb/core/Transport.java b/core/src/main/java/org/apache/servicecomb/core/Transport.java
index ed9ade4..026ed7c 100644
--- a/core/src/main/java/org/apache/servicecomb/core/Transport.java
+++ b/core/src/main/java/org/apache/servicecomb/core/Transport.java
@@ -17,6 +17,8 @@
 
 package org.apache.servicecomb.core;
 
+import java.util.concurrent.atomic.AtomicInteger;
+
 import org.apache.servicecomb.swagger.invocation.AsyncResponse;
 
 // TODO:感觉要拆成显式的client、server才好些
@@ -49,4 +51,6 @@ public interface Transport {
   Endpoint getPublishEndpoint() throws Exception;
 
   void send(Invocation invocation, AsyncResponse asyncResp) throws Exception;
+
+  AtomicInteger getConnectedCounter();
 }
diff --git a/core/src/main/java/org/apache/servicecomb/core/transport/AbstractTransport.java b/core/src/main/java/org/apache/servicecomb/core/transport/AbstractTransport.java
index d75570e..ff5370a 100644
--- a/core/src/main/java/org/apache/servicecomb/core/transport/AbstractTransport.java
+++ b/core/src/main/java/org/apache/servicecomb/core/transport/AbstractTransport.java
@@ -23,6 +23,7 @@ import java.net.URISyntaxException;
 import java.net.URLDecoder;
 import java.nio.charset.StandardCharsets;
 import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 
 import org.apache.http.client.utils.URLEncodedUtils;
@@ -65,6 +66,8 @@ public abstract class AbstractTransport implements Transport {
 
   protected Endpoint publishEndpoint;
 
+  private final AtomicInteger connectedCounter = new AtomicInteger(0);
+
   @Override
   public Endpoint getPublishEndpoint() {
     return publishEndpoint;
@@ -75,6 +78,11 @@ public abstract class AbstractTransport implements Transport {
     return endpoint;
   }
 
+  @Override
+  public AtomicInteger getConnectedCounter() {
+    return connectedCounter;
+  }
+
   protected void setListenAddressWithoutSchema(String addressWithoutSchema) {
     setListenAddressWithoutSchema(addressWithoutSchema, null);
   }
diff --git a/core/src/test/java/org/apache/servicecomb/core/TestTransport.java b/core/src/test/java/org/apache/servicecomb/core/TestTransport.java
index c1bca1f..abfa202 100644
--- a/core/src/test/java/org/apache/servicecomb/core/TestTransport.java
+++ b/core/src/test/java/org/apache/servicecomb/core/TestTransport.java
@@ -21,6 +21,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.servicecomb.core.endpoint.EndpointsCache;
 import org.apache.servicecomb.core.transport.TransportManager;
@@ -43,7 +44,12 @@ public class TestTransport {
     Endpoint oEndpoint = new Endpoint(new Transport() {
 
       @Override
-      public void send(Invocation invocation, AsyncResponse asyncResp) throws Exception {
+      public void send(Invocation invocation, AsyncResponse asyncResp) {
+      }
+
+      @Override
+      public AtomicInteger getConnectedCounter() {
+        return new AtomicInteger(0);
       }
 
       @Override
@@ -52,7 +58,7 @@ public class TestTransport {
       }
 
       @Override
-      public boolean init() throws Exception {
+      public boolean init() {
         return true;
       }
 
@@ -67,7 +73,7 @@ public class TestTransport {
       }
 
       @Override
-      public Endpoint getPublishEndpoint() throws Exception {
+      public Endpoint getPublishEndpoint() {
         return (new Endpoint(this, "testEndpoint"));
       }
     }, "rest://127.0.0.1:8080");
@@ -75,14 +81,13 @@ public class TestTransport {
     Assert.assertEquals("rest://127.0.0.1:8080", oEndpoint.getEndpoint());
     Assert.assertEquals("127.0.0.1", oEndpoint.getAddress());
     Assert.assertEquals("test", oEndpoint.getTransport().getName());
-    Assert.assertEquals("rest://127.0.0.1:8080", oEndpoint.getEndpoint().toString());
+    Assert.assertEquals("rest://127.0.0.1:8080", oEndpoint.getEndpoint());
   }
 
   @Test
   public void testAbstractTransport(@Mocked Microservice microservice,
       @Injectable InstanceCacheManager instanceCacheManager, @Injectable TransportManager transportManager,
-      @Mocked InstanceCache instanceCache, @Injectable MicroserviceInstance instance)
-      throws Exception {
+      @Mocked InstanceCache instanceCache, @Injectable MicroserviceInstance instance) {
     EndpointsCache.init(instanceCacheManager, transportManager);
     EndpointsCache oEndpointsCache = new EndpointsCache("app", "testname", "test", "rest");
 
diff --git a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/ConsumerMain.java b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/ConsumerMain.java
index ded64d1..528f972 100644
--- a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/ConsumerMain.java
+++ b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/ConsumerMain.java
@@ -27,7 +27,6 @@ import org.apache.servicecomb.it.junit.ITJUnitUtils;
 import org.apache.servicecomb.it.testcase.base.TestDataTypePojo;
 import org.apache.servicecomb.it.testcase.base.TestDataTypeRest;
 import org.apache.servicecomb.it.testcase.support.ProducerDevMode;
-import org.apache.servicecomb.transport.highway.HighwayTransport;
 
 
 public class ConsumerMain {
@@ -69,7 +68,7 @@ public class ConsumerMain {
     //   run rest
     //   run native restTemplate to edge/zuul
     // stop standalone base-producer
-    transports = Arrays.asList(HighwayTransport.NAME, Const.RESTFUL);
+    transports = Arrays.asList(Const.HIGHWAY, Const.RESTFUL);
     testStandalone();
 
     transports = Arrays.asList(Const.RESTFUL);
diff --git a/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/DataTypePojo.java b/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/DataTypePojo.java
index 9027573..47d91e0 100644
--- a/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/DataTypePojo.java
+++ b/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/DataTypePojo.java
@@ -21,7 +21,6 @@ import javax.servlet.http.HttpServletRequest;
 import org.apache.servicecomb.core.Const;
 import org.apache.servicecomb.provider.pojo.RpcSchema;
 import org.apache.servicecomb.provider.rest.common.InvocationToHttpServletRequest;
-import org.apache.servicecomb.transport.highway.HighwayTransport;
 
 import io.swagger.annotations.SwaggerDefinition;
 
@@ -29,8 +28,8 @@ import io.swagger.annotations.SwaggerDefinition;
 @SwaggerDefinition(basePath = "/v1/dataTypePojo")
 public class DataTypePojo {
   public String checkTransport(HttpServletRequest request) {
-    if (InvocationToHttpServletRequest.class.isInstance(request)) {
-      return HighwayTransport.NAME;
+    if (request instanceof InvocationToHttpServletRequest) {
+      return Const.HIGHWAY;
     }
 
     return Const.RESTFUL;
diff --git a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayClientConnection.java b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayClientConnection.java
index 4473188..b08d99c 100644
--- a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayClientConnection.java
+++ b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayClientConnection.java
@@ -16,6 +16,7 @@
  */
 package org.apache.servicecomb.transport.highway;
 
+import org.apache.servicecomb.core.Const;
 import org.apache.servicecomb.foundation.vertx.client.tcp.AbstractTcpClientPackage;
 import org.apache.servicecomb.foundation.vertx.client.tcp.NetClientWrapper;
 import org.apache.servicecomb.foundation.vertx.client.tcp.TcpClientConnection;
@@ -51,7 +52,7 @@ public class HighwayClientConnection extends TcpClientConnection {
       header.setMsgType(MsgType.LOGIN);
 
       LoginRequest login = new LoginRequest();
-      login.setProtocol(HighwayTransport.NAME);
+      login.setProtocol(Const.HIGHWAY);
       login.setUseProtobufMapCodec(true);
 
       HighwayOutputStream os = new HighwayOutputStream(AbstractTcpClientPackage.getAndIncRequestId(), null);
diff --git a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayServerVerticle.java b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayServerVerticle.java
index 162c63f..9a17081 100644
--- a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayServerVerticle.java
+++ b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayServerVerticle.java
@@ -20,10 +20,11 @@ package org.apache.servicecomb.transport.highway;
 import java.net.InetSocketAddress;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import org.apache.servicecomb.core.Const;
+import org.apache.servicecomb.core.CseContext;
 import org.apache.servicecomb.core.Endpoint;
 import org.apache.servicecomb.core.transport.AbstractTransport;
 import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
-import org.apache.servicecomb.foundation.common.utils.BeanUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -44,7 +45,7 @@ public class HighwayServerVerticle extends AbstractVerticle {
   private final AtomicInteger connectedCounter;
 
   public HighwayServerVerticle() {
-    this(((HighwayTransport) BeanUtils.getBean("highwayTransport")).getConnectedCounter());
+    this(CseContext.getInstance().getTransportManager().findTransport(Const.HIGHWAY).getConnectedCounter());
   }
 
   public HighwayServerVerticle(AtomicInteger connectedCounter) {
@@ -89,7 +90,7 @@ public class HighwayServerVerticle extends AbstractVerticle {
         return;
       }
 
-      LOGGER.error(HighwayTransport.NAME, ar.cause());
+      LOGGER.error(Const.HIGHWAY, ar.cause());
       startFuture.fail(ar.cause());
     });
   }
diff --git a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayTransport.java b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayTransport.java
index 956275c..f4bbcd1 100644
--- a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayTransport.java
+++ b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayTransport.java
@@ -18,8 +18,8 @@
 package org.apache.servicecomb.transport.highway;
 
 import java.util.Collections;
-import java.util.concurrent.atomic.AtomicInteger;
 
+import org.apache.servicecomb.core.Const;
 import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.core.transport.AbstractTransport;
 import org.apache.servicecomb.foundation.vertx.SimpleJsonObject;
@@ -32,19 +32,12 @@ import io.vertx.core.DeploymentOptions;
 
 @Component
 public class HighwayTransport extends AbstractTransport {
-  public static final String NAME = "highway";
 
   private HighwayClient highwayClient = new HighwayClient();
 
-  private final AtomicInteger connectedCounter = new AtomicInteger(0);
-
-  public AtomicInteger getConnectedCounter() {
-    return connectedCounter;
-  }
-
   @Override
   public String getName() {
-    return NAME;
+    return Const.HIGHWAY;
   }
 
   public boolean init() throws Exception {
diff --git a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayClient.java b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayClient.java
index eb037e6..0b88ba5 100644
--- a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayClient.java
+++ b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayClient.java
@@ -24,6 +24,7 @@ import org.apache.commons.configuration.AbstractConfiguration;
 import org.apache.servicecomb.codec.protobuf.definition.OperationProtobuf;
 import org.apache.servicecomb.codec.protobuf.definition.ProtobufManager;
 import org.apache.servicecomb.config.ConfigUtil;
+import org.apache.servicecomb.core.Const;
 import org.apache.servicecomb.core.Endpoint;
 import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.core.definition.OperationMeta;
@@ -92,7 +93,7 @@ public class TestHighwayClient {
       @Mock
       <VERTICLE extends AbstractVerticle> boolean blockDeploy(Vertx vertx,
           Class<VERTICLE> cls,
-          DeploymentOptions options) throws InterruptedException {
+          DeploymentOptions options) {
         return true;
       }
     };
@@ -109,7 +110,7 @@ public class TestHighwayClient {
       @Mock
       <VERTICLE extends AbstractVerticle> boolean blockDeploy(Vertx vertx,
           Class<VERTICLE> cls,
-          DeploymentOptions options) throws InterruptedException {
+          DeploymentOptions options) {
         return true;
       }
     };
@@ -123,7 +124,7 @@ public class TestHighwayClient {
 
     new MockUp<ProtobufManager>() {
       @Mock
-      public OperationProtobuf getOrCreateOperation(OperationMeta operationMeta) throws Exception {
+      public OperationProtobuf getOrCreateOperation(OperationMeta operationMeta) {
         return operationProtobuf;
       }
     };
@@ -138,14 +139,14 @@ public class TestHighwayClient {
     new MockUp<HighwayCodec>() {
       @Mock
       public Buffer encodeRequest(Invocation invocation, OperationProtobuf operationProtobuf,
-          long msgId) throws Exception {
+          long msgId) {
         return null;
       }
 
       @Mock
       Response decodeResponse(Invocation invocation, OperationProtobuf operationProtobuf,
           TcpData tcpData, ProtobufFeature protobufFeature) throws Throwable {
-        if (Response.class.isInstance(decodedResponse)) {
+        if (decodedResponse instanceof Response) {
           return (Response) decodedResponse;
         }
 
@@ -243,6 +244,6 @@ public class TestHighwayClient {
     Assert.assertEquals(MsgType.LOGIN, header.getMsgType());
 
     LoginRequest login = LoginRequest.readObject(bodyBuffer);
-    Assert.assertEquals(HighwayTransport.NAME, login.getProtocol());
+    Assert.assertEquals(Const.HIGHWAY, login.getProtocol());
   }
 }
diff --git a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayVerticle.java b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayVerticle.java
index 1aeb092..95019d8 100644
--- a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayVerticle.java
+++ b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayVerticle.java
@@ -17,15 +17,15 @@
 
 package org.apache.servicecomb.transport.highway;
 
+import static org.junit.Assert.assertTrue;
+
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.servicecomb.core.Endpoint;
 import org.apache.servicecomb.core.Transport;
 import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
 import org.apache.servicecomb.transport.common.MockUtil;
-import org.junit.After;
 import org.junit.Assert;
-import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mockito;
 
@@ -37,22 +37,10 @@ import mockit.Expectations;
 import mockit.Mocked;
 
 public class TestHighwayVerticle {
-
-  private HighwayServerVerticle highwayVerticle = null;
-
-  @Before
-  public void setUp() {
-    highwayVerticle = new HighwayServerVerticle(new AtomicInteger());
-  }
-
-  @After
-  public void tearDown() {
-    highwayVerticle = null;
-  }
-
   @Test
   public void testHighwayVerticle(@Mocked Transport transport, @Mocked Vertx vertx, @Mocked Context context,
       @Mocked JsonObject json) {
+    HighwayServerVerticle highwayVerticle = new HighwayServerVerticle(new AtomicInteger());
     URIEndpointObject endpiontObject = new URIEndpointObject("highway://127.0.0.1:9090");
     new Expectations() {
       {
@@ -79,9 +67,9 @@ public class TestHighwayVerticle {
     MockUtil.getInstance().mockHighwayConfig();
     try {
       highwayVerticle.startListen(startFuture);
-      Assert.assertTrue(true);
+      assertTrue(true);
     } catch (Exception e) {
-      Assert.assertTrue(false);
+      Assert.fail();
     }
   }
 }
diff --git a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java
index 10024f0..53c3890 100644
--- a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java
+++ b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java
@@ -21,11 +21,12 @@ import java.util.List;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import org.apache.servicecomb.core.Const;
+import org.apache.servicecomb.core.CseContext;
 import org.apache.servicecomb.core.Endpoint;
 import org.apache.servicecomb.core.transport.AbstractTransport;
 import org.apache.servicecomb.foundation.common.event.EventManager;
 import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
-import org.apache.servicecomb.foundation.common.utils.BeanUtils;
 import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
 import org.apache.servicecomb.foundation.ssl.SSLCustom;
 import org.apache.servicecomb.foundation.ssl.SSLOption;
@@ -63,7 +64,7 @@ public class RestServerVerticle extends AbstractVerticle {
   private final AtomicInteger connectedCounter;
 
   public RestServerVerticle() {
-    this(((VertxRestTransport) BeanUtils.getBean("vertxRestTransport")).getConnectedCounter());
+    this(CseContext.getInstance().getTransportManager().findTransport(Const.RESTFUL).getConnectedCounter());
   }
 
   public RestServerVerticle(AtomicInteger connectedCounter) {
diff --git a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/VertxRestTransport.java b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/VertxRestTransport.java
index 9a306b6..8ec17c1 100644
--- a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/VertxRestTransport.java
+++ b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/VertxRestTransport.java
@@ -17,8 +17,6 @@
 
 package org.apache.servicecomb.transport.rest.vertx;
 
-import java.util.concurrent.atomic.AtomicInteger;
-
 import org.apache.servicecomb.core.Const;
 import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.core.transport.AbstractTransport;
@@ -41,12 +39,6 @@ public class VertxRestTransport extends AbstractTransport {
 
   private RestTransportClient restClient;
 
-  private final AtomicInteger connectedCounter = new AtomicInteger(0);
-
-  public AtomicInteger getConnectedCounter() {
-    return connectedCounter;
-  }
-
   @Override
   public String getName() {
     return Const.RESTFUL;