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/10/11 11:18:18 UTC

[incubator-servicecomb-java-chassis] 01/04: [SCB-956] bug fix: not support body to be a enum

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

commit 36d7dca071f3b3024c536f685af4c3f79da56917
Author: wujimin <wu...@huawei.com>
AuthorDate: Thu Oct 11 01:16:23 2018 +0800

    [SCB-956] bug fix: not support body to be a enum
---
 .../apache/servicecomb/swagger/generator/core/SwaggerGenerator.java  | 4 ++--
 .../apache/servicecomb/swagger/generator/core/utils/ParamUtils.java  | 5 +++++
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/SwaggerGenerator.java b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/SwaggerGenerator.java
index 96f0508..919711e 100644
--- a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/SwaggerGenerator.java
+++ b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/SwaggerGenerator.java
@@ -22,7 +22,7 @@ import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 import java.util.Arrays;
 import java.util.Comparator;
-import java.util.HashMap;
+import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Locale;
@@ -75,7 +75,7 @@ public class SwaggerGenerator {
    */
   protected Set<String> defaultTags = new LinkedHashSet<>();
 
-  private Map<String, OperationGenerator> operationGeneratorMap = new HashMap<>();
+  private Map<String, OperationGenerator> operationGeneratorMap = new LinkedHashMap<>();
 
   private String httpMethod;
 
diff --git a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/utils/ParamUtils.java b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/utils/ParamUtils.java
index 3046103..6f9354b 100644
--- a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/utils/ParamUtils.java
+++ b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/utils/ParamUtils.java
@@ -30,6 +30,7 @@ import org.springframework.core.MethodParameter;
 
 import io.swagger.converter.ModelConverters;
 import io.swagger.models.Model;
+import io.swagger.models.ModelImpl;
 import io.swagger.models.Swagger;
 import io.swagger.models.parameters.AbstractSerializableParameter;
 import io.swagger.models.parameters.BodyParameter;
@@ -40,6 +41,7 @@ import io.swagger.models.properties.ObjectProperty;
 import io.swagger.models.properties.Property;
 import io.swagger.models.properties.PropertyBuilder;
 import io.swagger.models.properties.RefProperty;
+import io.swagger.models.properties.StringProperty;
 
 public final class ParamUtils {
   private static DefaultParameterNameDiscoverer parameterNameDiscoverer = new DefaultParameterNameDiscoverer();
@@ -99,6 +101,9 @@ public final class ParamUtils {
 
     Property property = ModelConverters.getInstance().readAsProperty(paramType);
     Model model = PropertyBuilder.toModel(property);
+    if (model instanceof ModelImpl && property instanceof StringProperty) {
+      ((ModelImpl) model).setEnum(((StringProperty) property).getEnum());
+    }
 
     BodyParameter bodyParameter = new BodyParameter();
     bodyParameter.setName(paramName);