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<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>
--
To stop receiving notification emails like this one, please contact
liubao@apache.org.