liubao68 closed pull request #701: [SCB-534] remove generate generic class from 
swagger related comments…
URL: https://github.com/apache/incubator-servicecomb-java-chassis/pull/701
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

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 f23f8daec..a844f8ef7 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 @@
 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)) {
@@ -47,29 +40,6 @@ public JavaType convert(SwaggerToClassGenerator 
swaggerToClassGenerator, Object
       }
     }
 
-    // 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 3205c0227..cbe839a09 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
@@ -42,24 +42,18 @@
 
 /**
  * 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>


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to