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
commit 704386e0b33737729615162d33b326eac5694c10 Author: liubao <[email protected]> AuthorDate: Sun Jan 19 19:17:16 2020 +0800 [SCB-1726]fix all TODOs in demos --- .../src/main/resources/archetype-resources/pom.xml | 4 + .../src/main/resources/archetype-resources/pom.xml | 4 + .../src/main/resources/archetype-resources/pom.xml | 4 + .../converter/SwaggerToProtoGenerator.java | 12 +- .../converter/TestSwaggerToProtoGenerator.java | 8 ++ .../protobuf/utils/TestProtobufSchemaUtils.java | 145 --------------------- coverage-reports/pom.xml | 4 + demo/perf/pom.xml | 4 + .../org/apache/servicecomb/it/ConsumerMain.java | 2 +- .../apache/servicecomb/it/junit/ITJUnitUtils.java | 3 +- .../servicecomb/it/schema/generic/MyEndpoint.java | 2 +- .../it/schema/generic/MyEndpointWithInterface.java | 4 +- .../demo/pojo/test/endpoints/SmartCareImpl.java | 2 - integration-tests/pom.xml | 7 + java-chassis-distribution/pom.xml | 4 + solutions/solution-basic/pom.xml | 4 + .../services/org.apache.servicecomb.core.Transport | 1 - .../transport/highway/TestHighwayClient.java | 34 ----- .../transport/highway/TestHighwayCodec.java | 1 + 19 files changed, 61 insertions(+), 188 deletions(-) diff --git a/archetypes/business-service-jaxrs/src/main/resources/archetype-resources/pom.xml b/archetypes/business-service-jaxrs/src/main/resources/archetype-resources/pom.xml index 81064f7..38bf5f8 100644 --- a/archetypes/business-service-jaxrs/src/main/resources/archetype-resources/pom.xml +++ b/archetypes/business-service-jaxrs/src/main/resources/archetype-resources/pom.xml @@ -49,6 +49,10 @@ </dependency> <dependency> <groupId>org.apache.servicecomb</groupId> + <artifactId>transport-highway</artifactId> + </dependency> + <dependency> + <groupId>org.apache.servicecomb</groupId> <artifactId>provider-jaxrs</artifactId> </dependency> <dependency> diff --git a/archetypes/business-service-pojo/src/main/resources/archetype-resources/pom.xml b/archetypes/business-service-pojo/src/main/resources/archetype-resources/pom.xml index 4f33529..5824e4a 100644 --- a/archetypes/business-service-pojo/src/main/resources/archetype-resources/pom.xml +++ b/archetypes/business-service-pojo/src/main/resources/archetype-resources/pom.xml @@ -48,6 +48,10 @@ </dependency> <dependency> <groupId>org.apache.servicecomb</groupId> + <artifactId>transport-highway</artifactId> + </dependency> + <dependency> + <groupId>org.apache.servicecomb</groupId> <artifactId>provider-pojo</artifactId> </dependency> <dependency> diff --git a/archetypes/business-service-springmvc/src/main/resources/archetype-resources/pom.xml b/archetypes/business-service-springmvc/src/main/resources/archetype-resources/pom.xml index fecb804..f08fa06 100644 --- a/archetypes/business-service-springmvc/src/main/resources/archetype-resources/pom.xml +++ b/archetypes/business-service-springmvc/src/main/resources/archetype-resources/pom.xml @@ -48,6 +48,10 @@ </dependency> <dependency> <groupId>org.apache.servicecomb</groupId> + <artifactId>transport-highway</artifactId> + </dependency> + <dependency> + <groupId>org.apache.servicecomb</groupId> <artifactId>provider-springmvc</artifactId> </dependency> <dependency> diff --git a/common/common-protobuf/src/main/java/org/apache/servicecomb/codec/protobuf/internal/converter/SwaggerToProtoGenerator.java b/common/common-protobuf/src/main/java/org/apache/servicecomb/codec/protobuf/internal/converter/SwaggerToProtoGenerator.java index 7859617..7f38649 100644 --- a/common/common-protobuf/src/main/java/org/apache/servicecomb/codec/protobuf/internal/converter/SwaggerToProtoGenerator.java +++ b/common/common-protobuf/src/main/java/org/apache/servicecomb/codec/protobuf/internal/converter/SwaggerToProtoGenerator.java @@ -71,7 +71,7 @@ public class SwaggerToProtoGenerator { // not java package // better to be: app_${app}.mid_{microservice}.sid_{schemaId} public SwaggerToProtoGenerator(String protoPackage, Swagger swagger) { - this.protoPackage = protoPackage; + this.protoPackage = escapePackageName(protoPackage); this.swagger = swagger; } @@ -92,6 +92,14 @@ public class SwaggerToProtoGenerator { return createProto(); } + public static String escapePackageName(String name) { + return name.replaceAll("\\-", "_"); + } + + public static String escapeMessageName(String name) { + return name.replaceAll("\\.", "_"); + } + private void convertDefinitions() { if (swagger.getDefinitions() == null) { return; @@ -217,7 +225,7 @@ public class SwaggerToProtoGenerator { } // message name cannot have . (package separator) - return prefix + StringUtils.capitalize(convertSwaggerType(adapter).replaceAll("\\.", "_")); + return prefix + StringUtils.capitalize(escapeMessageName(convertSwaggerType(adapter))); } private void wrapPropertyToMessage(String protoName, Object property) { diff --git a/common/common-protobuf/src/test/java/org/apache/servicecomb/codec/protobuf/internal/converter/TestSwaggerToProtoGenerator.java b/common/common-protobuf/src/test/java/org/apache/servicecomb/codec/protobuf/internal/converter/TestSwaggerToProtoGenerator.java index 8fc1650..9fdc15f 100644 --- a/common/common-protobuf/src/test/java/org/apache/servicecomb/codec/protobuf/internal/converter/TestSwaggerToProtoGenerator.java +++ b/common/common-protobuf/src/test/java/org/apache/servicecomb/codec/protobuf/internal/converter/TestSwaggerToProtoGenerator.java @@ -45,4 +45,12 @@ public class TestSwaggerToProtoGenerator { Assert.assertEquals(protoContent.replaceAll("\r\n", "\n"), new ProtoToStringGenerator(proto).protoToString().replaceAll("\r\n", "\n")); } + + @Test + public void testEscape() { + Assert.assertEquals("hello_my_service", SwaggerToProtoGenerator.escapeMessageName("hello.my.service")); + Assert.assertEquals("hello_my_service", SwaggerToProtoGenerator.escapeMessageName("hello_my_service")); + Assert.assertEquals("hello.my_service", SwaggerToProtoGenerator.escapePackageName("hello.my-service")); + Assert.assertEquals("hello.test.test", SwaggerToProtoGenerator.escapePackageName("hello.test.test")); + } } diff --git a/common/common-protobuf/src/test/java/org/apache/servicecomb/codec/protobuf/utils/TestProtobufSchemaUtils.java b/common/common-protobuf/src/test/java/org/apache/servicecomb/codec/protobuf/utils/TestProtobufSchemaUtils.java deleted file mode 100644 index fe27f6f..0000000 --- a/common/common-protobuf/src/test/java/org/apache/servicecomb/codec/protobuf/utils/TestProtobufSchemaUtils.java +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.servicecomb.codec.protobuf.utils; - -//import java.lang.reflect.Array; -//import java.util.HashMap; -//import java.util.Map; -// -//import org.apache.servicecomb.common.javassist.FieldConfig; -//import org.hamcrest.Matchers; -//import org.junit.Assert; -//import org.junit.Test; -// -//import io.protostuff.ByteArrayInput; -//import io.protostuff.Input; -//import io.protostuff.LinkedBuffer; -//import io.protostuff.ProtobufOutput; - -public class TestProtobufSchemaUtils { - // TODO : WK add unit test case for different WrapSchema -// class MyClassLoader extends ClassLoader { -// public MyClassLoader() { -// super(Thread.currentThread().getContextClassLoader()); -// } -// } -// -// ScopedProtobufSchemaManager scopedProtobufSchemaManager = ScopedProtobufSchemaManager.INSTANCE; -// -// public static class TestMap { -// public Map<String, String> map = new HashMap<>(); -// -// public TestMap() { -// map.put("asdf", "jjj"); -// } -// } -// -// @Test -// public void testMap() throws Exception { -// TestMap tm = new TestMap(); -// TestMap tmResult = writeThenRead(tm); -// Assert.assertEquals(tm.map, tmResult.map); -// -// Map<String, String> map = new HashMap<>(); -// map.put("aaa", "bbb"); -// testSchema(map); -// } -// -// @Test -// public void wrapPrimitive() throws Exception { -// Assert.assertNotNull(WrapType.ARGS_WRAP); -// Assert.assertNotNull(WrapType.NORMAL_WRAP); -// testSchema(1); -// testSchema("test"); -// testSchema(WrapType.ARGS_WRAP); -// Assert.assertTrue(true); -// } -// -// @Test -// public void wrapArray() throws Exception { -// Assert.assertNotNull(WrapType.ARGS_WRAP); -// Assert.assertNotNull(WrapType.NORMAL_WRAP); -// testArraySchema(new byte[] {0, 1, 2}); -// testArraySchema(new int[] {0, 1, 2}); -// testArraySchema(new String[] {"a", "b"}); -// testArraySchema(new WrapType[] {WrapType.ARGS_WRAP, WrapType.NORMAL_WRAP}); -// Assert.assertTrue(true); -// } -// -// @Test -// public void notWrap() throws Exception { -// FieldConfig expect = new FieldConfig(); -// expect.setName("test"); -// -// FieldConfig result = writeThenRead(expect); -// Assert.assertEquals(expect.getName(), result.getName()); -// } -// -// private void testSchema(Object expect) throws Exception { -// Object result = writeThenRead(expect); -// Assert.assertEquals(expect, result); -// } -// -// private void testArraySchema(Object expect) throws Exception { -// Object result = writeThenRead(expect); -// -// int expectLen = Array.getLength(expect); -// Assert.assertEquals(expectLen, Array.getLength(result)); -// for (int idx = 0; idx < expectLen; idx++) { -// Assert.assertEquals(Array.get(expect, idx), Array.get(result, idx)); -// } -// } -// -// @SuppressWarnings("unchecked") -// private <T> T writeThenRead(T value) throws Exception { -// WrapSchema schema = scopedProtobufSchemaManager.getOrCreateSchema(value.getClass()); -// -// byte[] bytes = toByteArray(schema, value); -// Object result = toObject(schema, bytes); -// return (T) result; -// } -// -// private byte[] toByteArray(WrapSchema schema, Object value) throws Exception { -// LinkedBuffer linkedBuffer = LinkedBuffer.allocate(); -// ProtobufOutput output = new ProtobufOutput(linkedBuffer); -// -// schema.writeObject(output, value); -// return output.toByteArray(); -// } -// -// private Object toObject(WrapSchema schema, byte[] bytes) throws Exception { -// Input input = new ByteArrayInput(bytes, false); -// -// return schema.readObject(input); -// } -// -// @Test -// public void object() throws Exception { -// WrapSchema schema = scopedProtobufSchemaManager.getOrCreateSchema(Object.class); -// -// LinkedBuffer linkedBuf = LinkedBuffer.allocate(); -// ProtobufOutput output = new ProtobufOutput(linkedBuf); -// schema.writeObject(output, 1); -// -// Input input = new ByteArrayInput(output.toByteArray(), false); -// Object result = schema.readObject(input); -// -// Assert.assertEquals(1, result); -// Assert.assertThat(result, Matchers.instanceOf(Integer.class)); -// } -} diff --git a/coverage-reports/pom.xml b/coverage-reports/pom.xml index df81a76..7aab075 100644 --- a/coverage-reports/pom.xml +++ b/coverage-reports/pom.xml @@ -108,6 +108,10 @@ </dependency> <dependency> <groupId>org.apache.servicecomb</groupId> + <artifactId>transport-highway</artifactId> + </dependency> + <dependency> + <groupId>org.apache.servicecomb</groupId> <artifactId>common-protobuf</artifactId> </dependency> <dependency> diff --git a/demo/perf/pom.xml b/demo/perf/pom.xml index a983b18..144113f 100644 --- a/demo/perf/pom.xml +++ b/demo/perf/pom.xml @@ -42,6 +42,10 @@ </dependency> <dependency> <groupId>org.apache.servicecomb</groupId> + <artifactId>transport-highway</artifactId> + </dependency> + <dependency> + <groupId>org.apache.servicecomb</groupId> <artifactId>inspector</artifactId> </dependency> 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 7f03569..ef852b0 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 @@ -109,7 +109,7 @@ public class ConsumerMain { ITJUnitUtils.runWithHighwayAndRest(TestChangeTransport.class); ITJUnitUtils.runWithHighwayAndRest(TestDataTypePrimitive.class); ITJUnitUtils.runWithHighwayAndRest(TestAnnotatedAttribute.class); - // TODO fix SCB-1448 later + // TODO : WEAK RPC & highway both not support this now , need fix it // ITJUnitUtils.runWithHighwayAndRest(TestMyService.class); // only rest support default value feature diff --git a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/junit/ITJUnitUtils.java b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/junit/ITJUnitUtils.java index 4735006..346f961 100644 --- a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/junit/ITJUnitUtils.java +++ b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/junit/ITJUnitUtils.java @@ -160,7 +160,8 @@ public final class ITJUnitUtils { } public static void runWithHighwayAndRest(Class<?>... classes) throws Throwable { - //runWithTransports(Arrays.asList(Const.HIGHWAY, Const.RESTFUL), classes); + // TODO: WEAK recover highway integration tests +// runWithTransports(Arrays.asList(Const.HIGHWAY, Const.RESTFUL), classes); runWithTransports(Arrays.asList(Const.RESTFUL), classes); } diff --git a/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/generic/MyEndpoint.java b/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/generic/MyEndpoint.java index 77b3221..c206569 100644 --- a/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/generic/MyEndpoint.java +++ b/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/generic/MyEndpoint.java @@ -19,7 +19,7 @@ package org.apache.servicecomb.it.schema.generic; import org.springframework.beans.factory.annotation.Autowired; -// TODO fix SCB-1448 later +// TODO : WEAK RPC & highway both not support this now , need fix it //@RpcSchema(schemaId = "MyEndpoint") public class MyEndpoint extends AbstractBaseService<PersonBean> implements IMyService { public MyEndpoint(@Autowired IMyService other) { diff --git a/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/generic/MyEndpointWithInterface.java b/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/generic/MyEndpointWithInterface.java index 5e4fc71..b016b17 100644 --- a/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/generic/MyEndpointWithInterface.java +++ b/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/generic/MyEndpointWithInterface.java @@ -18,9 +18,11 @@ package org.apache.servicecomb.it.schema.generic; import java.util.List; +import org.apache.servicecomb.provider.pojo.RpcSchema; + import io.swagger.annotations.ApiOperation; -// TODO fix SCB-1448 later +// TODO : WEAK RPC & highway both not support this now , need fix it //@RpcSchema(schemaId = "MyEndpointWithInterface") public class MyEndpointWithInterface implements IMyService { @Override diff --git a/integration-tests/pojo-test/src/test/java/org/apache/servicecomb/demo/pojo/test/endpoints/SmartCareImpl.java b/integration-tests/pojo-test/src/test/java/org/apache/servicecomb/demo/pojo/test/endpoints/SmartCareImpl.java index 3b62907..ca45b0a 100644 --- a/integration-tests/pojo-test/src/test/java/org/apache/servicecomb/demo/pojo/test/endpoints/SmartCareImpl.java +++ b/integration-tests/pojo-test/src/test/java/org/apache/servicecomb/demo/pojo/test/endpoints/SmartCareImpl.java @@ -31,7 +31,6 @@ public class SmartCareImpl implements SmartCare { @Override public Response addApplication(Application application) { - // TODO: add application LOG.info(application.toString()); Response resp = new Response(); @@ -43,7 +42,6 @@ public class SmartCareImpl implements SmartCare { @SuppressWarnings("divzero") @Override public Response delApplication(String appName) { - // TODO: delete application LOG.info(appName); try { diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml index 7617afe..30cadb1 100644 --- a/integration-tests/pom.xml +++ b/integration-tests/pom.xml @@ -95,6 +95,13 @@ <groupId>org.apache.servicecomb</groupId> <artifactId>transport-rest-vertx</artifactId> </dependency> + <!-- TODO : WEAK recover highway integration tests --> + <!-- + <dependency> + <groupId>org.apache.servicecomb</groupId> + <artifactId>transport-highway</artifactId> + </dependency> + --> <dependency> <groupId>org.apache.servicecomb</groupId> <artifactId>provider-springmvc</artifactId> diff --git a/java-chassis-distribution/pom.xml b/java-chassis-distribution/pom.xml index 564cda6..4f97aee 100644 --- a/java-chassis-distribution/pom.xml +++ b/java-chassis-distribution/pom.xml @@ -255,6 +255,10 @@ </dependency> <dependency> <groupId>org.apache.servicecomb</groupId> + <artifactId>transport-highway</artifactId> + </dependency> + <dependency> + <groupId>org.apache.servicecomb</groupId> <artifactId>transport-rest-servlet</artifactId> </dependency> <dependency> diff --git a/solutions/solution-basic/pom.xml b/solutions/solution-basic/pom.xml index 9559521..a3606e1 100644 --- a/solutions/solution-basic/pom.xml +++ b/solutions/solution-basic/pom.xml @@ -51,6 +51,10 @@ </dependency> <dependency> <groupId>org.apache.servicecomb</groupId> + <artifactId>transport-highway</artifactId> + </dependency> + <dependency> + <groupId>org.apache.servicecomb</groupId> <artifactId>transport-rest-servlet</artifactId> </dependency> diff --git a/transports/transport-highway/src/main/resources/META-INF/services/org.apache.servicecomb.core.Transport b/transports/transport-highway/src/main/resources/META-INF/services/org.apache.servicecomb.core.Transport index 3e91266..25f1bb2 100644 --- a/transports/transport-highway/src/main/resources/META-INF/services/org.apache.servicecomb.core.Transport +++ b/transports/transport-highway/src/main/resources/META-INF/services/org.apache.servicecomb.core.Transport @@ -15,5 +15,4 @@ # limitations under the License. # -# TODO: turn on highway transport org.apache.servicecomb.transport.highway.HighwayTransport 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 cf609a2..823c87b 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 @@ -32,7 +32,6 @@ import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils; import org.apache.servicecomb.foundation.vertx.VertxUtils; import org.apache.servicecomb.foundation.vertx.client.ClientPoolManager; 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.TcpClientConfig; import org.apache.servicecomb.foundation.vertx.client.tcp.TcpData; import org.apache.servicecomb.foundation.vertx.client.tcp.TcpResponseCallback; @@ -244,37 +243,4 @@ public class TestHighwayClient { Assert.assertEquals(nanoTime, invocationStageTrace.getStartClientFiltersResponse()); Assert.assertEquals(nanoTime, invocationStageTrace.getFinishClientFiltersResponse()); } - - @Test - public void testCreateLogin(@Mocked NetClientWrapper netClientWrapper) throws Exception { - // TODO : WK unit test - -// ProtobufCompatibleUtils.init(); -// -// HighwayClientConnection connection = -// new HighwayClientConnection(null, netClientWrapper, "highway://127.0.0.1:7890"); -// TcpOutputStream os = connection.createLogin(); -// ByteBuf buf = os.getBuffer().getByteBuf(); -// -// byte[] magic = new byte[TcpParser.TCP_MAGIC.length]; -// buf.readBytes(magic); -// Assert.assertArrayEquals(TcpParser.TCP_MAGIC, magic); -// Assert.assertEquals(os.getMsgId(), buf.readLong()); -// -// int start = TcpParser.TCP_HEADER_LENGTH; -// int totalLen = buf.readInt(); -// int headerLen = buf.readInt(); -// Buffer headerBuffer = -// os.getBuffer().slice(start, start + headerLen); -// int end = start + totalLen; -// start += headerLen; -// Buffer bodyBuffer = os.getBuffer().slice(start, end); - - -// RequestHeader header = RequestHeader.readObject(headerBuffer); -// Assert.assertEquals(MsgType.LOGIN, header.getMsgType()); -// -// LoginRequest login = LoginRequest.readObject(bodyBuffer); -// Assert.assertEquals(Const.HIGHWAY, login.getProtocol()); - } } diff --git a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayCodec.java b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayCodec.java index e77d364..e0cd2df 100644 --- a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayCodec.java +++ b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayCodec.java @@ -47,6 +47,7 @@ import io.netty.buffer.ByteBuf; import io.vertx.core.buffer.Buffer; import mockit.Mocked; +@SuppressWarnings({"unchecked", "rawtypes"}) public class TestHighwayCodec { private OperationProtobuf operationProtobuf = null;
