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;