[
https://issues.apache.org/jira/browse/SCB-534?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16476722#comment-16476722
]
ASF GitHub Bot commented on SCB-534:
------------------------------------
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:
[email protected]
> generic class generate optimize
> -------------------------------
>
> Key: SCB-534
> URL: https://issues.apache.org/jira/browse/SCB-534
> Project: Apache ServiceComb
> Issue Type: Sub-task
> Components: Java-Chassis
> Reporter: wujimin
> Assignee: wujimin
> Priority: Major
> Fix For: java-chassis-1.0.0-m2
>
>
> {code:java}
> Generic<User>
> {code}
> will not generate to be one class: Generic_User any more,
> but to be two class: Generic and User
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)