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"
