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 2019/07/02 02:17:05 UTC
[servicecomb-java-chassis] 01/03: [SCB-1337][WIP][WEAK] should wrap
enum to body at swagger generator pojo mode
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 <wu...@huawei.com>
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"