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<T1, T2> - * 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