[ 
https://issues.apache.org/jira/browse/SCB-956?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16646290#comment-16646290
 ] 

ASF GitHub Bot commented on SCB-956:
------------------------------------

liubao68 closed pull request #948: [SCB-956] Not support body to be a enum
URL: https://github.com/apache/incubator-servicecomb-java-chassis/pull/948
 
 
   

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/foundations/foundation-protobuf/pom.xml 
b/foundations/foundation-protobuf/pom.xml
index a5e1416d3..7ee177f1b 100644
--- a/foundations/foundation-protobuf/pom.xml
+++ b/foundations/foundation-protobuf/pom.xml
@@ -60,5 +60,10 @@
       <artifactId>jackson-dataformat-protobuf</artifactId>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.apache.servicecomb</groupId>
+      <artifactId>foundation-test-scaffolding</artifactId>
+    </dependency>
+
   </dependencies>
 </project>
\ No newline at end of file
diff --git 
a/foundations/foundation-protobuf/src/test/java/org/apache/servicecomb/foundation/protobuf/internal/model/Root.java
 
b/foundations/foundation-protobuf/src/test/java/org/apache/servicecomb/foundation/protobuf/internal/model/Root.java
index d4241ddd1..ddb4f07e0 100644
--- 
a/foundations/foundation-protobuf/src/test/java/org/apache/servicecomb/foundation/protobuf/internal/model/Root.java
+++ 
b/foundations/foundation-protobuf/src/test/java/org/apache/servicecomb/foundation/protobuf/internal/model/Root.java
@@ -19,6 +19,8 @@
 import java.util.List;
 import java.util.Map;
 
+import org.apache.servicecomb.foundation.test.scaffolding.model.Color;
+
 public class Root {
   private int int32;
 
diff --git 
a/foundations/foundation-protobuf/src/test/java/org/apache/servicecomb/foundation/protobuf/performance/cases/Mixed.java
 
b/foundations/foundation-protobuf/src/test/java/org/apache/servicecomb/foundation/protobuf/performance/cases/Mixed.java
index c1a7200e0..9201e7b00 100644
--- 
a/foundations/foundation-protobuf/src/test/java/org/apache/servicecomb/foundation/protobuf/performance/cases/Mixed.java
+++ 
b/foundations/foundation-protobuf/src/test/java/org/apache/servicecomb/foundation/protobuf/performance/cases/Mixed.java
@@ -19,9 +19,9 @@
 import java.util.Arrays;
 import java.util.HashMap;
 
-import org.apache.servicecomb.foundation.protobuf.internal.model.Color;
 import 
org.apache.servicecomb.foundation.protobuf.internal.model.ProtobufRoot.User;
 import org.apache.servicecomb.foundation.protobuf.performance.TestBase;
+import org.apache.servicecomb.foundation.test.scaffolding.model.Color;
 
 public class Mixed extends TestBase {
   public Mixed() {
diff --git 
a/foundations/foundation-protobuf/src/test/java/org/apache/servicecomb/foundation/protobuf/performance/cases/Scalars.java
 
b/foundations/foundation-protobuf/src/test/java/org/apache/servicecomb/foundation/protobuf/performance/cases/Scalars.java
index 1c902a79f..9e457af87 100644
--- 
a/foundations/foundation-protobuf/src/test/java/org/apache/servicecomb/foundation/protobuf/performance/cases/Scalars.java
+++ 
b/foundations/foundation-protobuf/src/test/java/org/apache/servicecomb/foundation/protobuf/performance/cases/Scalars.java
@@ -16,8 +16,8 @@
  */
 package org.apache.servicecomb.foundation.protobuf.performance.cases;
 
-import org.apache.servicecomb.foundation.protobuf.internal.model.Color;
 import org.apache.servicecomb.foundation.protobuf.performance.TestBase;
+import org.apache.servicecomb.foundation.test.scaffolding.model.Color;
 
 public class Scalars extends TestBase {
   public Scalars() {
diff --git 
a/foundations/foundation-protobuf/src/test/java/org/apache/servicecomb/foundation/protobuf/internal/model/Color.java
 
b/foundations/foundation-test-scaffolding/src/main/java/org/apache/servicecomb/foundation/test/scaffolding/model/Color.java
similarity index 92%
rename from 
foundations/foundation-protobuf/src/test/java/org/apache/servicecomb/foundation/protobuf/internal/model/Color.java
rename to 
foundations/foundation-test-scaffolding/src/main/java/org/apache/servicecomb/foundation/test/scaffolding/model/Color.java
index 19c724f2f..5cca0d9f5 100644
--- 
a/foundations/foundation-protobuf/src/test/java/org/apache/servicecomb/foundation/protobuf/internal/model/Color.java
+++ 
b/foundations/foundation-test-scaffolding/src/main/java/org/apache/servicecomb/foundation/test/scaffolding/model/Color.java
@@ -1,4 +1,4 @@
-package org.apache.servicecomb.foundation.protobuf.internal.model;/*
+/*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
  * this work for additional information regarding copyright ownership.
@@ -15,6 +15,8 @@
  * limitations under the License.
  */
 
+package org.apache.servicecomb.foundation.test.scaffolding.model;
+
 public enum Color {
   RED,
   YELLOW,
diff --git 
a/swagger/swagger-generator/generator-jaxrs/src/test/java/org/apache/servicecomb/swagger/generator/jaxrs/User.java
 
b/foundations/foundation-test-scaffolding/src/main/java/org/apache/servicecomb/foundation/test/scaffolding/model/Empty.java
similarity index 89%
rename from 
swagger/swagger-generator/generator-jaxrs/src/test/java/org/apache/servicecomb/swagger/generator/jaxrs/User.java
rename to 
foundations/foundation-test-scaffolding/src/main/java/org/apache/servicecomb/foundation/test/scaffolding/model/Empty.java
index 4c7f1f20f..318e475c4 100644
--- 
a/swagger/swagger-generator/generator-jaxrs/src/test/java/org/apache/servicecomb/swagger/generator/jaxrs/User.java
+++ 
b/foundations/foundation-test-scaffolding/src/main/java/org/apache/servicecomb/foundation/test/scaffolding/model/Empty.java
@@ -15,8 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.swagger.generator.jaxrs;
+package org.apache.servicecomb.foundation.test.scaffolding.model;
 
-public class User {
-  public String name;
+public class Empty {
 }
diff --git 
a/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/schema/User.java
 
b/foundations/foundation-test-scaffolding/src/main/java/org/apache/servicecomb/foundation/test/scaffolding/model/User.java
similarity index 87%
rename from 
swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/schema/User.java
rename to 
foundations/foundation-test-scaffolding/src/main/java/org/apache/servicecomb/foundation/test/scaffolding/model/User.java
index c1e210a57..0508a6786 100644
--- 
a/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/schema/User.java
+++ 
b/foundations/foundation-test-scaffolding/src/main/java/org/apache/servicecomb/foundation/test/scaffolding/model/User.java
@@ -15,10 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.swagger.generator.core.schema;
+package org.apache.servicecomb.foundation.test.scaffolding.model;
+
+import java.util.List;
 
 public class User {
   public String name;
 
-  public int age;
+  public List<User> friends;
 }
diff --git 
a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/testcase/TestDataTypePrimitive.java
 
b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/testcase/TestDataTypePrimitive.java
index 15614355f..bf0d693ef 100644
--- 
a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/testcase/TestDataTypePrimitive.java
+++ 
b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/testcase/TestDataTypePrimitive.java
@@ -22,6 +22,7 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.servicecomb.foundation.test.scaffolding.model.Color;
 import org.apache.servicecomb.it.Consumers;
 import org.apache.servicecomb.it.extend.engine.ITSCBRestTemplate;
 import org.junit.Test;
@@ -48,6 +49,8 @@
     float floatBody(float input);
 
     float floatAdd(float num1, float num2);
+
+    Color enumBody(Color color);
   }
 
   public interface DataTypeRestIntf {
@@ -109,6 +112,9 @@
     float floatForm(float input);
 
     float floatAdd(float num1, float num2);
+
+    // enum
+    Color enumBody(Color color);
   }
 
   private static Consumers<DataTypePojoIntf> consumersPojo = new 
Consumers<>("dataTypePojo", DataTypePojoIntf.class);
@@ -199,6 +205,19 @@ public void string_concat_pojo_rt() {
         consumersPojo.getSCBRestTemplate().postForObject("/stringConcat", map, 
String.class));
   }
 
+  @Test
+  public void enumBody_pojo_intf() {
+    assertEquals(Color.BLUE, consumersPojo.getIntf().enumBody(Color.BLUE));
+  }
+
+  @Test
+  public void enumBody_pojo_rt() {
+    Map<String, Color> body = new HashMap<>();
+    body.put("color", Color.BLUE);
+    assertEquals(Color.BLUE,
+        consumersPojo.getSCBRestTemplate().postForObject("/enumBody", body, 
Color.class));
+  }
+
   @Test
   public void intPath_jaxrs_intf() {
     assertEquals(10, consumersJaxrs.getIntf().intPath(10));
@@ -550,6 +569,17 @@ public void string_concat_jaxrs_rt() {
         .getForObject("/stringConcat?str1=service&str2=Comb", String.class));
   }
 
+  @Test
+  public void enumBody_jaxrs_intf() {
+    assertEquals(Color.BLUE, consumersJaxrs.getIntf().enumBody(Color.BLUE));
+  }
+
+  @Test
+  public void enumBody_jaxrs_rt() {
+    assertEquals(Color.BLUE,
+        consumersJaxrs.getSCBRestTemplate().postForObject("/enumBody", 
Color.BLUE, Color.class));
+  }
+
   @Test
   public void intPath_springmvc_intf() {
     assertEquals(10, consumersSpringmvc.getIntf().intPath(10));
@@ -1031,4 +1061,15 @@ public void floatAdd_springmvc_rt() {
         
consumersSpringmvc.getSCBRestTemplate().getForObject("/floatAdd?num1=10.2f&num2=10.3f",
 float.class),
         0.0f);
   }
+
+  @Test
+  public void enumBody_springmvc_intf() {
+    assertEquals(Color.BLUE, 
consumersSpringmvc.getIntf().enumBody(Color.BLUE));
+  }
+
+  @Test
+  public void enumBody_springmvc_rt() {
+    assertEquals(Color.BLUE,
+        consumersSpringmvc.getSCBRestTemplate().postForObject("/enumBody", 
Color.BLUE, Color.class));
+  }
 }
diff --git a/integration-tests/it-producer-deploy-springboot2-servlet/pom.xml 
b/integration-tests/it-producer-deploy-springboot2-servlet/pom.xml
index b108822da..d058af1a0 100644
--- a/integration-tests/it-producer-deploy-springboot2-servlet/pom.xml
+++ b/integration-tests/it-producer-deploy-springboot2-servlet/pom.xml
@@ -46,6 +46,11 @@
       <groupId>org.apache.servicecomb</groupId>
       <artifactId>spring-boot2-starter-servlet</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.apache.servicecomb</groupId>
+      <artifactId>foundation-test-scaffolding</artifactId>
+      <scope>compile</scope>
+    </dependency>
   </dependencies>
 
   <build>
diff --git 
a/integration-tests/it-producer-deploy-springboot2-standalone/pom.xml 
b/integration-tests/it-producer-deploy-springboot2-standalone/pom.xml
index 0a3ea8d8c..269422b57 100644
--- a/integration-tests/it-producer-deploy-springboot2-standalone/pom.xml
+++ b/integration-tests/it-producer-deploy-springboot2-standalone/pom.xml
@@ -46,6 +46,11 @@
       <groupId>org.apache.servicecomb</groupId>
       <artifactId>spring-boot2-starter-standalone</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.apache.servicecomb</groupId>
+      <artifactId>foundation-test-scaffolding</artifactId>
+      <scope>compile</scope>
+    </dependency>
   </dependencies>
 
   <build>
diff --git 
a/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/DataTypeJaxrsSchema.java
 
b/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/DataTypeJaxrsSchema.java
index 63a99c38f..e36aca328 100644
--- 
a/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/DataTypeJaxrsSchema.java
+++ 
b/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/DataTypeJaxrsSchema.java
@@ -25,6 +25,7 @@
 import javax.ws.rs.PathParam;
 import javax.ws.rs.QueryParam;
 
+import org.apache.servicecomb.foundation.test.scaffolding.model.Color;
 import org.apache.servicecomb.provider.rest.common.RestSchema;
 
 @RestSchema(schemaId = "dataTypeJaxrs")
@@ -200,4 +201,10 @@ public float floatBody(float input) {
   public float floatAdd(@QueryParam("num1") float num1, @QueryParam("num2") 
float num2) {
     return num1 + num2;
   }
+
+  @Path("enumBody")
+  @POST
+  public Color enumBody(Color color) {
+    return color;
+  }
 }
diff --git 
a/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/DataTypePojoSchema.java
 
b/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/DataTypePojoSchema.java
index a112ccd91..23dc57591 100644
--- 
a/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/DataTypePojoSchema.java
+++ 
b/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/DataTypePojoSchema.java
@@ -16,6 +16,7 @@
  */
 package org.apache.servicecomb.it.schema;
 
+import org.apache.servicecomb.foundation.test.scaffolding.model.Color;
 import org.apache.servicecomb.provider.pojo.RpcSchema;
 
 import io.swagger.annotations.SwaggerDefinition;
@@ -54,4 +55,8 @@ public float floatBody(float input) {
   public float floatAdd(float num1, float num2) {
     return num1 + num2;
   }
+
+  public Color enumBody(Color color) {
+    return color;
+  }
 }
diff --git 
a/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/DataTypeSpringmvcSchema.java
 
b/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/DataTypeSpringmvcSchema.java
index 68460e700..af72afb06 100644
--- 
a/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/DataTypeSpringmvcSchema.java
+++ 
b/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/DataTypeSpringmvcSchema.java
@@ -16,6 +16,7 @@
  */
 package org.apache.servicecomb.it.schema;
 
+import org.apache.servicecomb.foundation.test.scaffolding.model.Color;
 import org.apache.servicecomb.provider.rest.common.RestSchema;
 import org.springframework.web.bind.annotation.CookieValue;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -174,4 +175,9 @@ public float floatBody(@RequestBody float input) {
   public float floatAdd(float num1, float num2) {
     return num1 + num2;
   }
+
+  @PostMapping(path = "enumBody")
+  public Color enumBody(@RequestBody Color color) {
+    return color;
+  }
 }
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 96f0508db..919711ef2 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.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 @@
    */
   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 3046103d3..6f9354b91 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 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.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 static BodyParameter createBodyParameter(Swagger 
swagger, String paramNam
 
     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);
diff --git 
a/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/TestApiImplicitParams.java
 
b/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/TestApiImplicitParams.java
index e6125a3fa..0bb4f28df 100644
--- 
a/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/TestApiImplicitParams.java
+++ 
b/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/TestApiImplicitParams.java
@@ -17,7 +17,7 @@
 
 package org.apache.servicecomb.swagger.generator.core;
 
-import org.apache.servicecomb.swagger.generator.core.schema.User;
+import org.apache.servicecomb.foundation.test.scaffolding.model.User;
 import 
org.apache.servicecomb.swagger.generator.core.unittest.SwaggerGeneratorForTest;
 import 
org.apache.servicecomb.swagger.generator.pojo.PojoSwaggerGeneratorContext;
 import org.junit.Assert;
@@ -40,7 +40,7 @@
         value = {@ApiImplicitParam(
             paramType = "body",
             name = "body",
-            dataType = 
"org.apache.servicecomb.swagger.generator.core.schema.User")})
+            dataType = 
"org.apache.servicecomb.foundation.test.scaffolding.model.User")})
     void testBody();
   }
 
diff --git 
a/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/TestClassUtils.java
 
b/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/TestClassUtils.java
index d1b2d3808..a1c0ea216 100644
--- 
a/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/TestClassUtils.java
+++ 
b/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/TestClassUtils.java
@@ -28,7 +28,7 @@
 import javax.ws.rs.Path;
 
 import org.apache.commons.lang3.reflect.FieldUtils;
-import org.apache.servicecomb.swagger.generator.core.schema.User;
+import org.apache.servicecomb.foundation.test.scaffolding.model.User;
 import 
org.apache.servicecomb.swagger.generator.core.unittest.UnitTestSwaggerUtils;
 import org.apache.servicecomb.swagger.generator.core.utils.ClassUtils;
 import org.hamcrest.Matchers;
@@ -78,7 +78,7 @@ public void getOrCreateBodyClass() throws 
NoSuchFieldException {
     Class<?> cls = ClassUtils.getOrCreateBodyClass(operationGenerator, null);
     Assert.assertEquals("gen.swagger.getUserBody", cls.getName());
     Assert.assertEquals("java.util.List<java.lang.String>", 
cls.getField("p1").getGenericType().getTypeName());
-    
Assert.assertEquals("java.util.List<org.apache.servicecomb.swagger.generator.core.schema.User>",
+    
Assert.assertEquals("java.util.List<org.apache.servicecomb.foundation.test.scaffolding.model.User>",
         cls.getField("p2").getGenericType().getTypeName());
   }
 
diff --git 
a/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/TestSwaggerUtils.java
 
b/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/TestSwaggerUtils.java
index b5c127c29..5e640e0f4 100644
--- 
a/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/TestSwaggerUtils.java
+++ 
b/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/TestSwaggerUtils.java
@@ -23,7 +23,7 @@
 
 import org.apache.servicecomb.common.javassist.JavassistUtils;
 import org.apache.servicecomb.foundation.common.utils.ReflectUtils;
-import org.apache.servicecomb.swagger.generator.core.schema.Color;
+import org.apache.servicecomb.foundation.test.scaffolding.model.Color;
 import 
org.apache.servicecomb.swagger.generator.core.schema.InvalidResponseHeader;
 import org.apache.servicecomb.swagger.generator.core.schema.RepeatOperation;
 import org.apache.servicecomb.swagger.generator.core.schema.Schema;
diff --git 
a/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/schema/AllType.java
 
b/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/schema/AllType.java
index a4dc1a5a0..5ba1a4c0e 100644
--- 
a/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/schema/AllType.java
+++ 
b/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/schema/AllType.java
@@ -21,6 +21,9 @@
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.servicecomb.foundation.test.scaffolding.model.Color;
+import org.apache.servicecomb.foundation.test.scaffolding.model.User;
+
 public class AllType {
   public boolean bValue;
 
diff --git 
a/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/schema/ArrayType.java
 
b/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/schema/ArrayType.java
index 0d43d395b..ea327c9c2 100644
--- 
a/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/schema/ArrayType.java
+++ 
b/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/schema/ArrayType.java
@@ -16,6 +16,8 @@
  */
 package org.apache.servicecomb.swagger.generator.core.schema;
 
+import org.apache.servicecomb.foundation.test.scaffolding.model.User;
+
 public class ArrayType {
   public byte[] testBytes(byte[] value) {
     return null;
diff --git 
a/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/schema/Color.java
 
b/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/schema/Color.java
deleted file mode 100644
index cc94a5c9d..000000000
--- 
a/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/schema/Color.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.swagger.generator.core.schema;
-
-public enum Color {
-  WHITE,
-  BLACK
-}
diff --git 
a/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/schema/Schema.java
 
b/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/schema/Schema.java
index 3c710e9d3..c56fa9bbb 100644
--- 
a/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/schema/Schema.java
+++ 
b/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/schema/Schema.java
@@ -24,6 +24,9 @@
 import java.util.Set;
 import java.util.concurrent.CompletableFuture;
 
+import org.apache.servicecomb.foundation.test.scaffolding.model.Color;
+import org.apache.servicecomb.foundation.test.scaffolding.model.User;
+
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ResponseHeader;
diff --git 
a/swagger/swagger-generator/generator-core/src/test/resources/schemas/allMethod.yaml
 
b/swagger/swagger-generator/generator-core/src/test/resources/schemas/allMethod.yaml
index def89aa94..019141922 100644
--- 
a/swagger/swagger-generator/generator-core/src/test/resources/schemas/allMethod.yaml
+++ 
b/swagger/swagger-generator/generator-core/src/test/resources/schemas/allMethod.yaml
@@ -461,9 +461,10 @@ definitions:
       enumValue:
         type: "string"
         enum:
-        - "WHITE"
-        - "BLACK"
-        x-java-class: 
"org.apache.servicecomb.swagger.generator.core.schema.Color"
+        - "RED"
+        - "YELLOW"
+        - "BLUE"
+        x-java-class: 
"org.apache.servicecomb.foundation.test.scaffolding.model.Color"
       cValue:
         type: "string"
       cObjectValue:
@@ -492,10 +493,11 @@ definitions:
     properties:
       name:
         type: "string"
-      age:
-        type: "integer"
-        format: "int32"
-    x-java-class: "org.apache.servicecomb.swagger.generator.core.schema.User"
+      friends:
+        type: "array"
+        items:
+          $ref: "#/definitions/User"
+    x-java-class: 
"org.apache.servicecomb.foundation.test.scaffolding.model.User"
   testArrayBody:
     type: "object"
     properties:
@@ -537,15 +539,17 @@ definitions:
       color:
         type: "string"
         enum:
-        - "WHITE"
-        - "BLACK"
-        x-java-class: 
"org.apache.servicecomb.swagger.generator.core.schema.Color"
+        - "RED"
+        - "YELLOW"
+        - "BLUE"
+        x-java-class: 
"org.apache.servicecomb.foundation.test.scaffolding.model.Color"
       color1:
         type: "string"
         enum:
-        - "WHITE"
-        - "BLACK"
-        x-java-class: 
"org.apache.servicecomb.swagger.generator.core.schema.Color"
+        - "RED"
+        - "YELLOW"
+        - "BLUE"
+        x-java-class: 
"org.apache.servicecomb.foundation.test.scaffolding.model.Color"
     x-java-class: "gen.cse.ms.ut.testEnumBody"
   testFloatBody:
     type: "object"
@@ -616,9 +620,10 @@ definitions:
       enumValue:
         type: "string"
         enum:
-        - "WHITE"
-        - "BLACK"
-        x-java-class: 
"org.apache.servicecomb.swagger.generator.core.schema.Color"
+        - "RED"
+        - "YELLOW"
+        - "BLUE"
+        x-java-class: 
"org.apache.servicecomb.foundation.test.scaffolding.model.Color"
       cValue:
         type: "string"
       bytes:
diff --git 
a/swagger/swagger-generator/generator-core/src/test/resources/schemas/allType.yaml
 
b/swagger/swagger-generator/generator-core/src/test/resources/schemas/allType.yaml
index 3aea53bba..0cf6e8518 100644
--- 
a/swagger/swagger-generator/generator-core/src/test/resources/schemas/allType.yaml
+++ 
b/swagger/swagger-generator/generator-core/src/test/resources/schemas/allType.yaml
@@ -84,9 +84,10 @@ definitions:
       enumValue:
         type: "string"
         enum:
-        - "WHITE"
-        - "BLACK"
-        x-java-class: 
"org.apache.servicecomb.swagger.generator.core.schema.Color"
+        - "RED"
+        - "YELLOW"
+        - "BLUE"
+        x-java-class: 
"org.apache.servicecomb.foundation.test.scaffolding.model.Color"
       cValue:
         type: "string"
       cObjectValue:
@@ -115,7 +116,8 @@ definitions:
     properties:
       name:
         type: "string"
-      age:
-        type: "integer"
-        format: "int32"
-    x-java-class: "org.apache.servicecomb.swagger.generator.core.schema.User"
+      friends:
+        type: "array"
+        items:
+          $ref: "#/definitions/User"
+    x-java-class: 
"org.apache.servicecomb.foundation.test.scaffolding.model.User"
diff --git 
a/swagger/swagger-generator/generator-core/src/test/resources/schemas/enum.yaml 
b/swagger/swagger-generator/generator-core/src/test/resources/schemas/enum.yaml
index 710e90fc0..b9c30be03 100644
--- 
a/swagger/swagger-generator/generator-core/src/test/resources/schemas/enum.yaml
+++ 
b/swagger/swagger-generator/generator-core/src/test/resources/schemas/enum.yaml
@@ -46,13 +46,15 @@ definitions:
       color:
         type: "string"
         enum:
-        - "WHITE"
-        - "BLACK"
-        x-java-class: 
"org.apache.servicecomb.swagger.generator.core.schema.Color"
+        - "RED"
+        - "YELLOW"
+        - "BLUE"
+        x-java-class: 
"org.apache.servicecomb.foundation.test.scaffolding.model.Color"
       color1:
         type: "string"
         enum:
-        - "WHITE"
-        - "BLACK"
-        x-java-class: 
"org.apache.servicecomb.swagger.generator.core.schema.Color"
+        - "RED"
+        - "YELLOW"
+        - "BLUE"
+        x-java-class: 
"org.apache.servicecomb.foundation.test.scaffolding.model.Color"
     x-java-class: "gen.cse.ms.ut.testEnumBody"
diff --git 
a/swagger/swagger-generator/generator-core/src/test/resources/schemas/list.yaml 
b/swagger/swagger-generator/generator-core/src/test/resources/schemas/list.yaml
index 913993e75..f3289705e 100644
--- 
a/swagger/swagger-generator/generator-core/src/test/resources/schemas/list.yaml
+++ 
b/swagger/swagger-generator/generator-core/src/test/resources/schemas/list.yaml
@@ -45,10 +45,11 @@ definitions:
     properties:
       name:
         type: "string"
-      age:
-        type: "integer"
-        format: "int32"
-    x-java-class: "org.apache.servicecomb.swagger.generator.core.schema.User"
+      friends:
+        type: "array"
+        items:
+          $ref: "#/definitions/User"
+    x-java-class: 
"org.apache.servicecomb.foundation.test.scaffolding.model.User"
   testListBody:
     type: "object"
     properties:
@@ -56,3 +57,4 @@ definitions:
         type: "array"
         items:
           $ref: "#/definitions/User"
+
diff --git 
a/swagger/swagger-generator/generator-core/src/test/resources/schemas/map.yaml 
b/swagger/swagger-generator/generator-core/src/test/resources/schemas/map.yaml
index c9a770a57..229c90fc2 100644
--- 
a/swagger/swagger-generator/generator-core/src/test/resources/schemas/map.yaml
+++ 
b/swagger/swagger-generator/generator-core/src/test/resources/schemas/map.yaml
@@ -45,10 +45,11 @@ definitions:
     properties:
       name:
         type: "string"
-      age:
-        type: "integer"
-        format: "int32"
-    x-java-class: "org.apache.servicecomb.swagger.generator.core.schema.User"
+      friends:
+        type: "array"
+        items:
+          $ref: "#/definitions/User"
+    x-java-class: 
"org.apache.servicecomb.foundation.test.scaffolding.model.User"
   testMapBody:
     type: "object"
     properties:
diff --git 
a/swagger/swagger-generator/generator-core/src/test/resources/schemas/mapList.yaml
 
b/swagger/swagger-generator/generator-core/src/test/resources/schemas/mapList.yaml
index b32b07505..a5cecd7f1 100644
--- 
a/swagger/swagger-generator/generator-core/src/test/resources/schemas/mapList.yaml
+++ 
b/swagger/swagger-generator/generator-core/src/test/resources/schemas/mapList.yaml
@@ -45,10 +45,11 @@ definitions:
     properties:
       name:
         type: "string"
-      age:
-        type: "integer"
-        format: "int32"
-    x-java-class: "org.apache.servicecomb.swagger.generator.core.schema.User"
+      friends:
+        type: "array"
+        items:
+          $ref: "#/definitions/User"
+    x-java-class: 
"org.apache.servicecomb.foundation.test.scaffolding.model.User"
   testMapListBody:
     type: "object"
     properties:
diff --git 
a/swagger/swagger-generator/generator-core/src/test/resources/schemas/multiParam.yaml
 
b/swagger/swagger-generator/generator-core/src/test/resources/schemas/multiParam.yaml
index ef5b13015..fe39c2d60 100644
--- 
a/swagger/swagger-generator/generator-core/src/test/resources/schemas/multiParam.yaml
+++ 
b/swagger/swagger-generator/generator-core/src/test/resources/schemas/multiParam.yaml
@@ -88,9 +88,10 @@ definitions:
       enumValue:
         type: "string"
         enum:
-        - "WHITE"
-        - "BLACK"
-        x-java-class: 
"org.apache.servicecomb.swagger.generator.core.schema.Color"
+        - "RED"
+        - "YELLOW"
+        - "BLUE"
+        x-java-class: 
"org.apache.servicecomb.foundation.test.scaffolding.model.Color"
       cValue:
         type: "string"
       cObjectValue:
@@ -119,10 +120,11 @@ definitions:
     properties:
       name:
         type: "string"
-      age:
-        type: "integer"
-        format: "int32"
-    x-java-class: "org.apache.servicecomb.swagger.generator.core.schema.User"
+      friends:
+        type: "array"
+        items:
+          $ref: "#/definitions/User"
+    x-java-class: 
"org.apache.servicecomb.foundation.test.scaffolding.model.User"
   testMultiParamBody:
     type: "object"
     properties:
@@ -151,9 +153,10 @@ definitions:
       enumValue:
         type: "string"
         enum:
-        - "WHITE"
-        - "BLACK"
-        x-java-class: 
"org.apache.servicecomb.swagger.generator.core.schema.Color"
+        - "RED"
+        - "YELLOW"
+        - "BLUE"
+        x-java-class: 
"org.apache.servicecomb.foundation.test.scaffolding.model.Color"
       cValue:
         type: "string"
       bytes:
diff --git 
a/swagger/swagger-generator/generator-core/src/test/resources/schemas/object.yaml
 
b/swagger/swagger-generator/generator-core/src/test/resources/schemas/object.yaml
index dc01af154..9cff4cd05 100644
--- 
a/swagger/swagger-generator/generator-core/src/test/resources/schemas/object.yaml
+++ 
b/swagger/swagger-generator/generator-core/src/test/resources/schemas/object.yaml
@@ -45,7 +45,8 @@ definitions:
     properties:
       name:
         type: "string"
-      age:
-        type: "integer"
-        format: "int32"
-    x-java-class: "org.apache.servicecomb.swagger.generator.core.schema.User"
+      friends:
+        type: "array"
+        items:
+          $ref: "#/definitions/User"
+    x-java-class: 
"org.apache.servicecomb.foundation.test.scaffolding.model.User"
diff --git a/swagger/swagger-generator/generator-jaxrs/pom.xml 
b/swagger/swagger-generator/generator-jaxrs/pom.xml
index 1dd2bc17d..1d237f548 100644
--- a/swagger/swagger-generator/generator-jaxrs/pom.xml
+++ b/swagger/swagger-generator/generator-jaxrs/pom.xml
@@ -41,5 +41,9 @@
       <artifactId>log4j</artifactId>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.apache.servicecomb</groupId>
+      <artifactId>foundation-test-scaffolding</artifactId>
+    </dependency>
   </dependencies>
 </project>
diff --git 
a/swagger/swagger-generator/generator-jaxrs/src/test/java/org/apache/servicecomb/swagger/generator/jaxrs/Echo.java
 
b/swagger/swagger-generator/generator-jaxrs/src/test/java/org/apache/servicecomb/swagger/generator/jaxrs/Echo.java
index eab6cc9d8..6f33e6c6e 100644
--- 
a/swagger/swagger-generator/generator-jaxrs/src/test/java/org/apache/servicecomb/swagger/generator/jaxrs/Echo.java
+++ 
b/swagger/swagger-generator/generator-jaxrs/src/test/java/org/apache/servicecomb/swagger/generator/jaxrs/Echo.java
@@ -31,6 +31,8 @@
 import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.Response;
 
+import org.apache.servicecomb.foundation.test.scaffolding.model.Color;
+import org.apache.servicecomb.foundation.test.scaffolding.model.User;
 import org.apache.servicecomb.swagger.extend.annotations.RawJsonRequestBody;
 
 import io.swagger.annotations.ApiOperation;
@@ -100,4 +102,9 @@ public void ignoredNonRestful() {
   @POST
   public void rawJsonStringMethod(@RawJsonRequestBody String jsonInput) {
   }
+
+  @Path(value = "enumBody")
+  @POST
+  public void enumBody(Color color) {
+  }
 }
diff --git 
a/swagger/swagger-generator/generator-jaxrs/src/test/java/org/apache/servicecomb/swagger/generator/jaxrs/TestJaxrs.java
 
b/swagger/swagger-generator/generator-jaxrs/src/test/java/org/apache/servicecomb/swagger/generator/jaxrs/TestJaxrs.java
index 09ee931e7..f2060a470 100644
--- 
a/swagger/swagger-generator/generator-jaxrs/src/test/java/org/apache/servicecomb/swagger/generator/jaxrs/TestJaxrs.java
+++ 
b/swagger/swagger-generator/generator-jaxrs/src/test/java/org/apache/servicecomb/swagger/generator/jaxrs/TestJaxrs.java
@@ -78,7 +78,7 @@ public void testQuery() {
   public void testQueryComplex() {
     UnitTestSwaggerUtils.testException(
         "generate operation swagger failed, 
org.apache.servicecomb.swagger.generator.jaxrs.Echo:queryComplex",
-        "not allow complex type for query parameter, 
method=org.apache.servicecomb.swagger.generator.jaxrs.Echo:queryComplex, 
paramIdx=0, 
type=java.util.List<org.apache.servicecomb.swagger.generator.jaxrs.User>",
+        "not allow complex type for query parameter, 
method=org.apache.servicecomb.swagger.generator.jaxrs.Echo:queryComplex, 
paramIdx=0, 
type=java.util.List<org.apache.servicecomb.foundation.test.scaffolding.model.User>",
         context,
         Echo.class,
         "queryComplex");
@@ -122,4 +122,10 @@ public void testRawJsonStringMethod() {
     UnitTestSwaggerUtils
         .testSwagger(classLoader, "schemas/rawJsonStringMethod.yaml", context, 
Echo.class, "rawJsonStringMethod");
   }
+
+  @Test
+  public void testEnumBody() {
+    UnitTestSwaggerUtils
+        .testSwagger(classLoader, "schemas/enumBody.yaml", context, 
Echo.class, "enumBody");
+  }
 }
diff --git 
a/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/echo.yaml
 
b/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/echo.yaml
index 471c19ca1..e6e943cb0 100644
--- 
a/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/echo.yaml
+++ 
b/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/echo.yaml
@@ -65,4 +65,8 @@ definitions:
     properties:
       name:
         type: "string"
-    x-java-class: "org.apache.servicecomb.swagger.generator.jaxrs.User"
+      friends:
+        type: "array"
+        items:
+          $ref: "#/definitions/User"
+    x-java-class: 
"org.apache.servicecomb.foundation.test.scaffolding.model.User"
diff --git 
a/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/enumBody.yaml
 
b/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/enumBody.yaml
new file mode 100644
index 000000000..65c473168
--- /dev/null
+++ 
b/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/enumBody.yaml
@@ -0,0 +1,45 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+---
+swagger: "2.0"
+info:
+  version: "1.0.0"
+  title: "swagger definition for 
org.apache.servicecomb.swagger.generator.jaxrs.Echo"
+  x-java-interface: "gen.cse.ms.ut.EchoIntf"
+basePath: "/Echo"
+consumes:
+- "application/json"
+produces:
+- "application/json"
+paths:
+  /enumBody:
+    post:
+      operationId: "enumBody"
+      parameters:
+      - in: "body"
+        name: "color"
+        required: false
+        schema:
+          type: "string"
+          enum:
+          - "RED"
+          - "YELLOW"
+          - "BLUE"
+      responses:
+        200:
+          description: "response of 200"
diff --git a/swagger/swagger-generator/generator-springmvc/pom.xml 
b/swagger/swagger-generator/generator-springmvc/pom.xml
index 3631274f7..b7f968ded 100644
--- a/swagger/swagger-generator/generator-springmvc/pom.xml
+++ b/swagger/swagger-generator/generator-springmvc/pom.xml
@@ -45,5 +45,9 @@
       <artifactId>log4j</artifactId>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.apache.servicecomb</groupId>
+      <artifactId>foundation-test-scaffolding</artifactId>
+    </dependency>
   </dependencies>
 </project>
diff --git 
a/swagger/swagger-generator/generator-springmvc/src/test/java/org/apache/servicecomb/swagger/generator/springmvc/Echo.java
 
b/swagger/swagger-generator/generator-springmvc/src/test/java/org/apache/servicecomb/swagger/generator/springmvc/Echo.java
index 898a6a8ef..1f023cbd0 100644
--- 
a/swagger/swagger-generator/generator-springmvc/src/test/java/org/apache/servicecomb/swagger/generator/springmvc/Echo.java
+++ 
b/swagger/swagger-generator/generator-springmvc/src/test/java/org/apache/servicecomb/swagger/generator/springmvc/Echo.java
@@ -17,7 +17,9 @@
 
 package org.apache.servicecomb.swagger.generator.springmvc;
 
+import org.apache.servicecomb.foundation.test.scaffolding.model.Color;
 import org.apache.servicecomb.swagger.extend.annotations.RawJsonRequestBody;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 
@@ -43,4 +45,8 @@ public void inheritHttpMethod(int query) {
   @RequestMapping
   public void rawJsonStringMethod(@RawJsonRequestBody String jsonInput) {
   }
+
+  @RequestMapping
+  public void enumBody(@RequestBody Color color) {
+  }
 }
diff --git 
a/swagger/swagger-generator/generator-springmvc/src/test/java/org/apache/servicecomb/swagger/generator/springmvc/MethodMixupAnnotations.java
 
b/swagger/swagger-generator/generator-springmvc/src/test/java/org/apache/servicecomb/swagger/generator/springmvc/MethodMixupAnnotations.java
index e3a72da64..56e3d6229 100644
--- 
a/swagger/swagger-generator/generator-springmvc/src/test/java/org/apache/servicecomb/swagger/generator/springmvc/MethodMixupAnnotations.java
+++ 
b/swagger/swagger-generator/generator-springmvc/src/test/java/org/apache/servicecomb/swagger/generator/springmvc/MethodMixupAnnotations.java
@@ -17,6 +17,7 @@
 
 package org.apache.servicecomb.swagger.generator.springmvc;
 
+import org.apache.servicecomb.foundation.test.scaffolding.model.User;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PatchMapping;
diff --git 
a/swagger/swagger-generator/generator-springmvc/src/test/java/org/apache/servicecomb/swagger/generator/springmvc/MethodResponseEntity.java
 
b/swagger/swagger-generator/generator-springmvc/src/test/java/org/apache/servicecomb/swagger/generator/springmvc/MethodResponseEntity.java
index 8a13e8ef9..c772f3770 100644
--- 
a/swagger/swagger-generator/generator-springmvc/src/test/java/org/apache/servicecomb/swagger/generator/springmvc/MethodResponseEntity.java
+++ 
b/swagger/swagger-generator/generator-springmvc/src/test/java/org/apache/servicecomb/swagger/generator/springmvc/MethodResponseEntity.java
@@ -19,6 +19,7 @@
 
 import java.util.List;
 
+import org.apache.servicecomb.foundation.test.scaffolding.model.User;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
diff --git 
a/swagger/swagger-generator/generator-springmvc/src/test/java/org/apache/servicecomb/swagger/generator/springmvc/TestSpringmvc.java
 
b/swagger/swagger-generator/generator-springmvc/src/test/java/org/apache/servicecomb/swagger/generator/springmvc/TestSpringmvc.java
index e8b97138a..8bda7931e 100644
--- 
a/swagger/swagger-generator/generator-springmvc/src/test/java/org/apache/servicecomb/swagger/generator/springmvc/TestSpringmvc.java
+++ 
b/swagger/swagger-generator/generator-springmvc/src/test/java/org/apache/servicecomb/swagger/generator/springmvc/TestSpringmvc.java
@@ -193,4 +193,10 @@ public void testComposite() {
 
     Assert.assertEquals(SpringmvcSwaggerGeneratorContext.class, 
context.getClass());
   }
+
+  @Test
+  public void testEnumBody() {
+    UnitTestSwaggerUtils
+        .testSwagger(classLoader, "schemas/enumBody.yaml", context, 
Echo.class, "enumBody");
+  }
 }
diff --git 
a/swagger/swagger-generator/generator-springmvc/src/test/java/org/apache/servicecomb/swagger/generator/springmvc/User.java
 
b/swagger/swagger-generator/generator-springmvc/src/test/java/org/apache/servicecomb/swagger/generator/springmvc/User.java
deleted file mode 100644
index 5ae6d07ce..000000000
--- 
a/swagger/swagger-generator/generator-springmvc/src/test/java/org/apache/servicecomb/swagger/generator/springmvc/User.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.swagger.generator.springmvc;
-
-public class User {
-  public String name;
-}
diff --git 
a/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/enumBody.yaml
 
b/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/enumBody.yaml
new file mode 100644
index 000000000..b7e877b71
--- /dev/null
+++ 
b/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/enumBody.yaml
@@ -0,0 +1,47 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+---
+swagger: "2.0"
+info:
+  version: "1.0.0"
+  title: "swagger definition for 
org.apache.servicecomb.swagger.generator.springmvc.Echo"
+  x-java-interface: "gen.cse.ms.ut.EchoIntf"
+basePath: "/Echo"
+consumes:
+- "a"
+- "b"
+produces:
+- "a"
+- "b"
+paths:
+  /:
+    put:
+      operationId: "enumBody"
+      parameters:
+      - in: "body"
+        name: "color"
+        required: true
+        schema:
+          type: "string"
+          enum:
+          - "RED"
+          - "YELLOW"
+          - "BLUE"
+      responses:
+        200:
+          description: "response of 200"
diff --git 
a/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/mixupAnnotations.yaml
 
b/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/mixupAnnotations.yaml
index fc9f3802c..3b5fe1dec 100644
--- 
a/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/mixupAnnotations.yaml
+++ 
b/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/mixupAnnotations.yaml
@@ -27,9 +27,9 @@ consumes:
 produces:
 - "application/json"
 paths:
-  /usingRequestMapping/{targetName}:
-    post:
-      operationId: "usingRequestMapping"
+  /usingDeleteMapping/{targetName}:
+    delete:
+      operationId: "usingDeleteMapping"
       consumes:
       - "text/plain"
       - "application/*"
@@ -99,9 +99,9 @@ paths:
           description: "response of 200"
           schema:
             type: "string"
-  /usingPutMapping/{targetName}:
-    put:
-      operationId: "usingPutMapping"
+  /usingPatchMapping/{targetName}:
+    patch:
+      operationId: "usingPatchMapping"
       consumes:
       - "text/plain"
       - "application/*"
@@ -171,9 +171,9 @@ paths:
           description: "response of 200"
           schema:
             type: "string"
-  /usingPatchMapping/{targetName}:
-    patch:
-      operationId: "usingPatchMapping"
+  /usingPutMapping/{targetName}:
+    put:
+      operationId: "usingPutMapping"
       consumes:
       - "text/plain"
       - "application/*"
@@ -207,9 +207,9 @@ paths:
           description: "response of 200"
           schema:
             type: "string"
-  /usingDeleteMapping/{targetName}:
-    delete:
-      operationId: "usingDeleteMapping"
+  /usingRequestMapping/{targetName}:
+    post:
+      operationId: "usingRequestMapping"
       consumes:
       - "text/plain"
       - "application/*"
@@ -249,4 +249,8 @@ definitions:
     properties:
       name:
         type: "string"
-    x-java-class: "org.apache.servicecomb.swagger.generator.springmvc.User"
+      friends:
+        type: "array"
+        items:
+          $ref: "#/definitions/User"
+    x-java-class: 
"org.apache.servicecomb.foundation.test.scaffolding.model.User"
diff --git 
a/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/responseEntity.yaml
 
b/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/responseEntity.yaml
index b6b1d4092..455afb440 100644
--- 
a/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/responseEntity.yaml
+++ 
b/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/responseEntity.yaml
@@ -27,9 +27,9 @@ consumes:
 produces:
 - "application/json"
 paths:
-  /usingRequestMapping:
-    put:
-      operationId: "usingRequestMapping"
+  /usingDeleteMapping:
+    delete:
+      operationId: "usingDeleteMapping"
       parameters: []
       responses:
         200:
@@ -49,9 +49,9 @@ paths:
             type: "array"
             items:
               $ref: "#/definitions/User"
-  /usingPutMapping:
-    put:
-      operationId: "usingPutMapping"
+  /usingPatchMapping:
+    patch:
+      operationId: "usingPatchMapping"
       parameters: []
       responses:
         200:
@@ -71,9 +71,9 @@ paths:
             type: "array"
             items:
               $ref: "#/definitions/User"
-  /usingPatchMapping:
-    patch:
-      operationId: "usingPatchMapping"
+  /usingPutMapping:
+    put:
+      operationId: "usingPutMapping"
       parameters: []
       responses:
         200:
@@ -82,9 +82,9 @@ paths:
             type: "array"
             items:
               $ref: "#/definitions/User"
-  /usingDeleteMapping:
-    delete:
-      operationId: "usingDeleteMapping"
+  /usingRequestMapping:
+    put:
+      operationId: "usingRequestMapping"
       parameters: []
       responses:
         200:
@@ -99,4 +99,8 @@ definitions:
     properties:
       name:
         type: "string"
-    x-java-class: "org.apache.servicecomb.swagger.generator.springmvc.User"
+      friends:
+        type: "array"
+        items:
+          $ref: "#/definitions/User"
+    x-java-class: 
"org.apache.servicecomb.foundation.test.scaffolding.model.User"


 

----------------------------------------------------------------
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]


> not support body to be a enum
> -----------------------------
>
>                 Key: SCB-956
>                 URL: https://issues.apache.org/jira/browse/SCB-956
>             Project: Apache ServiceComb
>          Issue Type: Bug
>          Components: Java-Chassis
>            Reporter: wujimin
>            Assignee: wujimin
>            Priority: Major
>             Fix For: java-chassis-1.1.0
>
>




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to