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/05/16 02:06:36 UTC

[incubator-servicecomb-java-chassis] branch master updated: [SCB-534] remove generate generic class from swagger related comments and code

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


The following commit(s) were added to refs/heads/master by this push:
     new 61cda00  [SCB-534] remove generate generic class from swagger related comments and code
61cda00 is described below

commit 61cda009b7ac8539364bd0f1d1855d804ea4dd27
Author: wujimin <wu...@huawei.com>
AuthorDate: Fri May 11 09:38:13 2018 +0800

    [SCB-534] remove generate generic class from swagger related comments and code
---
 .../swagger/converter/AbstractConverter.java       | 32 +---------------------
 .../swagger/converter/SwaggerToClassGenerator.java | 12 ++------
 2 files changed, 4 insertions(+), 40 deletions(-)

diff --git a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/converter/AbstractConverter.java b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/converter/AbstractConverter.java
index fbd9e48..fa2f0a3 100644
--- a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/converter/AbstractConverter.java
+++ b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/converter/AbstractConverter.java
@@ -20,24 +20,17 @@ package org.apache.servicecomb.swagger.converter;
 import java.util.Map;
 
 import org.apache.servicecomb.swagger.generator.core.utils.ClassUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.springframework.util.StringUtils;
 
 import com.fasterxml.jackson.databind.JavaType;
-import com.fasterxml.jackson.databind.type.TypeFactory;
 
 public abstract class AbstractConverter implements Converter {
-  private static final Logger LOGGER = LoggerFactory.getLogger(AbstractConverter.class);
-
   protected abstract Map<String, Object> findVendorExtensions(Object def);
 
   protected abstract JavaType doConvert(SwaggerToClassGenerator swaggerToClassGenerator, Object def);
 
   @Override
   public JavaType convert(SwaggerToClassGenerator swaggerToClassGenerator, Object def) {
-    TypeFactory typeFactory = swaggerToClassGenerator.getTypeFactory();
-
     Map<String, Object> vendorExtensions = findVendorExtensions(def);
     String canonical = ClassUtils.getClassName(vendorExtensions);
     if (!StringUtils.isEmpty(canonical)) {
@@ -48,29 +41,6 @@ public abstract class AbstractConverter implements Converter {
       }
     }
 
-    // ensure all depend model exist
-    // maybe create dynamic class by canonical
-    JavaType result = doConvert(swaggerToClassGenerator, def);
-
-    String rawClassName = ClassUtils.getRawClassName(canonical);
-    if (StringUtils.isEmpty(rawClassName)) {
-      return result;
-    }
-
-    try {
-      JavaType rawType = typeFactory.constructFromCanonical(rawClassName);
-
-      if (rawType.getRawClass().getTypeParameters().length > 0) {
-        return typeFactory.constructFromCanonical(canonical);
-      }
-
-      return result;
-    } catch (IllegalArgumentException e) {
-      LOGGER.info("failed to load generic class {}, use {}. cause: {}.",
-          rawClassName,
-          result.getGenericSignature(),
-          e.getMessage());
-      return result;
-    }
+    return doConvert(swaggerToClassGenerator, def);
   }
 }
diff --git a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/converter/SwaggerToClassGenerator.java b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/converter/SwaggerToClassGenerator.java
index 1db2db3..e94f8bc 100644
--- a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/converter/SwaggerToClassGenerator.java
+++ b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/converter/SwaggerToClassGenerator.java
@@ -45,24 +45,18 @@ import javassist.CtClass;
 
 /**
  * generate interface from swagger<br>
- * specially should support:<br>
+ * specially should support: recursive dependency<br>
  * <pre>
- * 1. recursive dependency:
- *   1). class A {
+ * 1.class A {
  *     A a;
  *   }
- *   2). circular dependency:
- *   class A {
+ * 2.class A {
  *     B b;
  *   }
  *   class B {
  *     A a;
  *   }
- * 2. CustomerGeneric&lt;T1, T2&gt;
- *    should generate 3 classes: CustomerGeneric/T1/T2
- *    this can avoid unnecessary convert between consumer/contract/producer
  * </pre>
- *
  * javassist can create normal dynamic class to classloader<br>
  * but can not create recursive dependency dynamic class to classloader directly<br>
  * to support recursive dependency, must save all class to byte[], and then convert to class<br>

-- 
To stop receiving notification emails like this one, please contact
liubao@apache.org.