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/01/20 06:01:44 UTC

[incubator-servicecomb-java-chassis] 05/10: SCB-266 unify correctClassName logic

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 0b810ddb926538f3448779415253f4aed5552509
Author: wujimin <wu...@huawei.com>
AuthorDate: Sat Jan 20 02:32:08 2018 +0800

    SCB-266 unify correctClassName logic
---
 .../servicecomb/codec/protobuf/utils/ProtobufSchemaUtils.java       | 4 +++-
 .../apache/servicecomb/swagger/generator/core/utils/ClassUtils.java | 2 +-
 .../apache/servicecomb/swagger/generator/core/TestClassUtils.java   | 6 ++++++
 3 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/common/common-protobuf/src/main/java/org/apache/servicecomb/codec/protobuf/utils/ProtobufSchemaUtils.java b/common/common-protobuf/src/main/java/org/apache/servicecomb/codec/protobuf/utils/ProtobufSchemaUtils.java
index 14fb7a3..f1c985f 100644
--- a/common/common-protobuf/src/main/java/org/apache/servicecomb/codec/protobuf/utils/ProtobufSchemaUtils.java
+++ b/common/common-protobuf/src/main/java/org/apache/servicecomb/codec/protobuf/utils/ProtobufSchemaUtils.java
@@ -158,7 +158,9 @@ public final class ProtobufSchemaUtils {
       WrapClassConfig config = new WrapClassConfig();
       config.setType(WrapType.NORMAL_WRAP);
 
-      config.setClassName("gen.wrap.protobuf." + key.replaceAll("[<>]", "_").replace("[", "array_"));
+      config.setClassName(
+          "gen.wrap.protobuf." +
+              org.apache.servicecomb.swagger.generator.core.utils.ClassUtils.correctClassName(key));
       if (!Void.TYPE.isAssignableFrom(javaType.getRawClass())) {
         config.addField("field0", javaType);
       }
diff --git a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/utils/ClassUtils.java b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/utils/ClassUtils.java
index b3b85be..a7bd83e 100644
--- a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/utils/ClassUtils.java
+++ b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/utils/ClassUtils.java
@@ -249,7 +249,7 @@ public final class ClassUtils {
         continue;
       }
 
-      part = part.replace('-', '_');
+      part = part.replaceAll("[<>-]", "_").replace("[", "array_");
       if (Character.isDigit(part.charAt(0)) || SourceVersion.isKeyword(part)) {
         part = "_" + part;
       }
diff --git a/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/TestClassUtils.java b/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/TestClassUtils.java
index efcbdab..389ae66 100644
--- a/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/TestClassUtils.java
+++ b/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/TestClassUtils.java
@@ -171,6 +171,12 @@ public class TestClassUtils {
   }
 
   @Test
+  public void testCorrectClassNameCanonical() {
+    String result = ClassUtils.correctClassName("java.util.List<java.lang.String>[");
+    Assert.assertThat(result, is("java.util.List_java.lang.String_array_"));
+  }
+
+  @Test
   public void testGetOrCreateClass() {
     String className = this.getClass().getCanonicalName();
 

-- 
To stop receiving notification emails like this one, please contact
"commits@servicecomb.apache.org" <co...@servicecomb.apache.org>.