This is an automated email from the ASF dual-hosted git repository.

liubao pushed a commit to branch weak-contract-type
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git

commit 712b5f634eea475595fef89b525c822ec54d9d0c
Author: wujimin <[email protected]>
AuthorDate: Sun Jun 30 21:35:28 2019 +0800

    [SCB-1337][WIP][WEAK] should wrap enum to body at swagger generator pojo 
mode
---
 .../apache/servicecomb/swagger/SwaggerUtils.java   |  2 +-
 .../swagger/generator/core/TestSwaggerUtils.java   |  5 +++
 .../swagger/generator/core/schema/Schema.java      |  4 ++
 .../src/test/resources/schemas/allMethod.yaml      | 22 +++++++++
 .../src/test/resources/schemas/oneEnum.yaml        | 52 ++++++++++++++++++++++
 5 files changed, 84 insertions(+), 1 deletion(-)

diff --git 
a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/SwaggerUtils.java
 
b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/SwaggerUtils.java
index 7cab421..4b64283 100644
--- 
a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/SwaggerUtils.java
+++ 
b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/SwaggerUtils.java
@@ -380,7 +380,7 @@ public final class SwaggerUtils {
     }
 
     JavaType javaType = TypeFactory.defaultInstance().constructType(type);
-    if (javaType.isContainerType()) {
+    if (javaType.isContainerType() || javaType.isEnumType()) {
       return false;
     }
 
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 3e8ea49..f7f191e 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
@@ -91,6 +91,11 @@ public class TestSwaggerUtils {
   }
 
   @Test
+  public void testOneEnum() {
+    testSchemaMethod("oneEnum", "testOneEnum");
+  }
+
+  @Test
   public void testEnum() {
     testSchemaMethod("enum", "testEnum");
   }
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 9ef232a..75c5807 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
@@ -113,6 +113,10 @@ public class Schema {
 
   }
 
+  public void testOneEnum(Color color) {
+
+  }
+
   public void testEnum(Color color, Color color1) {
 
   }
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 a2a2e24..4c01239 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
@@ -346,6 +346,18 @@ paths:
       responses:
         200:
           description: "response of 200"
+  /testOneEnum:
+    post:
+      operationId: "testOneEnum"
+      parameters:
+      - in: "body"
+        name: "color"
+        required: false
+        schema:
+          $ref: "#/definitions/testOneEnumBody"
+      responses:
+        200:
+          description: "response of 200"
   /testOptional:
     post:
       operationId: "testOptional"
@@ -769,6 +781,16 @@ definitions:
         additionalProperties:
           $ref: "#/definitions/User"
     x-java-class: "gen.cse.ms.ut.testMultiParamBody"
+  testOneEnumBody:
+    type: "object"
+    properties:
+      color:
+        type: "string"
+        enum:
+        - "RED"
+        - "YELLOW"
+        - "BLUE"
+        x-java-class: 
"org.apache.servicecomb.foundation.test.scaffolding.model.Color"
   testSetBody:
     type: "object"
     properties:
diff --git 
a/swagger/swagger-generator/generator-core/src/test/resources/schemas/oneEnum.yaml
 
b/swagger/swagger-generator/generator-core/src/test/resources/schemas/oneEnum.yaml
new file mode 100644
index 0000000..5ae35a6
--- /dev/null
+++ 
b/swagger/swagger-generator/generator-core/src/test/resources/schemas/oneEnum.yaml
@@ -0,0 +1,52 @@
+## ---------------------------------------------------------------------------
+## 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.core.schema.Schema"
+  x-java-interface: "gen.cse.ms.ut.SchemaIntf"
+basePath: "/Schema"
+consumes:
+- "application/json"
+produces:
+- "application/json"
+paths:
+  /testOneEnum:
+    post:
+      operationId: "testOneEnum"
+      parameters:
+      - in: "body"
+        name: "color"
+        required: false
+        schema:
+          $ref: "#/definitions/testOneEnumBody"
+      responses:
+        200:
+          description: "response of 200"
+definitions:
+  testOneEnumBody:
+    type: "object"
+    properties:
+      color:
+        type: "string"
+        enum:
+        - "RED"
+        - "YELLOW"
+        - "BLUE"
+        x-java-class: 
"org.apache.servicecomb.foundation.test.scaffolding.model.Color"

Reply via email to