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/08/14 06:13:21 UTC

[incubator-servicecomb-java-chassis] 02/05: [SCB-736] generate default value to swagger for primitive type: Review comments fix

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 5a270d1d7001c6c0e435923509ad98b7bf5cdb46
Author: maheshrajus <ma...@huawei.com>
AuthorDate: Fri Aug 10 11:33:23 2018 +0530

    [SCB-736] generate default value to swagger for primitive type: Review comments fix
---
 .../swagger/generator/core/OperationGenerator.java |  2 +-
 .../annotation/CookieValueAnnotationProcessor.java | 10 +++++++++
 .../PathVariableAnnotationProcessor.java           | 10 +++++++++
 .../RequestAttributeAnnotationProcessor.java       | 10 +++++++++
 .../RequestParamAnnotationProcessor.java           | 10 +++++++++
 .../annotation/RequestPartAnnotationProcessor.java | 10 +++++++++
 .../test/resources/schemas/mixupAnnotations.yaml   | 24 +++++++++++-----------
 7 files changed, 63 insertions(+), 13 deletions(-)

diff --git a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/OperationGenerator.java b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/OperationGenerator.java
index 390b26d..8698585 100644
--- a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/OperationGenerator.java
+++ b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/OperationGenerator.java
@@ -319,7 +319,7 @@ public class OperationGenerator {
       if (defaultValue != null) {
         ((AbstractSerializableParameter<?>) parameter).setDefaultValue(defaultValue);
       } else if ((((AbstractSerializableParameter<?>) parameter).getDefaultValue() == null)
-          && (false == ((AbstractSerializableParameter<?>) parameter).getRequired())) { //if required false then only take java primitive values as defaults
+          && (!((AbstractSerializableParameter<?>) parameter).getRequired())) { //if required false then only take java primitive values as defaults
         String type = ((AbstractSerializableParameter<?>) parameter).getType();
         switch (type) {
           case "integer":
diff --git a/swagger/swagger-generator/generator-springmvc/src/main/java/org/apache/servicecomb/swagger/generator/springmvc/processor/annotation/CookieValueAnnotationProcessor.java b/swagger/swagger-generator/generator-springmvc/src/main/java/org/apache/servicecomb/swagger/generator/springmvc/processor/annotation/CookieValueAnnotationProcessor.java
index 8dc61ea..a86ea06 100644
--- a/swagger/swagger-generator/generator-springmvc/src/main/java/org/apache/servicecomb/swagger/generator/springmvc/processor/annotation/CookieValueAnnotationProcessor.java
+++ b/swagger/swagger-generator/generator-springmvc/src/main/java/org/apache/servicecomb/swagger/generator/springmvc/processor/annotation/CookieValueAnnotationProcessor.java
@@ -17,6 +17,7 @@
 
 package org.apache.servicecomb.swagger.generator.springmvc.processor.annotation;
 
+import org.apache.servicecomb.swagger.generator.core.OperationGenerator;
 import org.apache.servicecomb.swagger.generator.core.processor.parameter.AbstractParameterProcessor;
 import org.springframework.web.bind.annotation.CookieValue;
 import org.springframework.web.bind.annotation.ValueConstants;
@@ -35,6 +36,15 @@ public class CookieValueAnnotationProcessor extends AbstractParameterProcessor<C
   }
 
   @Override
+  protected void fillParameter(Object annotation, OperationGenerator operationGenerator, int paramIdx,
+      CookieParameter parameter) {
+    super.fillParameter(annotation, operationGenerator, paramIdx, parameter);
+
+    CookieValue cookie = (CookieValue) annotation;
+    parameter.setRequired(cookie.required());
+  }
+
+  @Override
   protected String getAnnotationParameterDefaultValue(Object annotation) {
     String defaultValue = ((CookieValue) annotation).defaultValue();
     if (defaultValue.equals(ValueConstants.DEFAULT_NONE)) {
diff --git a/swagger/swagger-generator/generator-springmvc/src/main/java/org/apache/servicecomb/swagger/generator/springmvc/processor/annotation/PathVariableAnnotationProcessor.java b/swagger/swagger-generator/generator-springmvc/src/main/java/org/apache/servicecomb/swagger/generator/springmvc/processor/annotation/PathVariableAnnotationProcessor.java
index e77b778..6297ef7 100644
--- a/swagger/swagger-generator/generator-springmvc/src/main/java/org/apache/servicecomb/swagger/generator/springmvc/processor/annotation/PathVariableAnnotationProcessor.java
+++ b/swagger/swagger-generator/generator-springmvc/src/main/java/org/apache/servicecomb/swagger/generator/springmvc/processor/annotation/PathVariableAnnotationProcessor.java
@@ -17,6 +17,7 @@
 
 package org.apache.servicecomb.swagger.generator.springmvc.processor.annotation;
 
+import org.apache.servicecomb.swagger.generator.core.OperationGenerator;
 import org.apache.servicecomb.swagger.generator.core.processor.parameter.AbstractParameterProcessor;
 import org.springframework.web.bind.annotation.PathVariable;
 
@@ -32,4 +33,13 @@ public class PathVariableAnnotationProcessor extends AbstractParameterProcessor<
   public String getAnnotationParameterName(Object annotation) {
     return ((PathVariable) annotation).value();
   }
+  
+  @Override
+  protected void fillParameter(Object annotation, OperationGenerator operationGenerator, int paramIdx,
+      PathParameter parameter) {
+    super.fillParameter(annotation, operationGenerator, paramIdx, parameter);
+
+    PathVariable pathVariable = (PathVariable) annotation;
+    parameter.setRequired(pathVariable.required()); 
+  }
 }
diff --git a/swagger/swagger-generator/generator-springmvc/src/main/java/org/apache/servicecomb/swagger/generator/springmvc/processor/annotation/RequestAttributeAnnotationProcessor.java b/swagger/swagger-generator/generator-springmvc/src/main/java/org/apache/servicecomb/swagger/generator/springmvc/processor/annotation/RequestAttributeAnnotationProcessor.java
index 09e5f37..0166a76 100644
--- a/swagger/swagger-generator/generator-springmvc/src/main/java/org/apache/servicecomb/swagger/generator/springmvc/processor/annotation/RequestAttributeAnnotationProcessor.java
+++ b/swagger/swagger-generator/generator-springmvc/src/main/java/org/apache/servicecomb/swagger/generator/springmvc/processor/annotation/RequestAttributeAnnotationProcessor.java
@@ -17,6 +17,7 @@
 
 package org.apache.servicecomb.swagger.generator.springmvc.processor.annotation;
 
+import org.apache.servicecomb.swagger.generator.core.OperationGenerator;
 import org.apache.servicecomb.swagger.generator.core.processor.parameter.AbstractParameterProcessor;
 import org.springframework.web.bind.annotation.RequestAttribute;
 
@@ -32,4 +33,13 @@ public class RequestAttributeAnnotationProcessor extends AbstractParameterProces
   public String getAnnotationParameterName(Object annotation) {
     return ((RequestAttribute) annotation).name();
   }
+  
+  @Override
+  protected void fillParameter(Object annotation, OperationGenerator operationGenerator, int paramIdx,
+      FormParameter parameter) {
+    super.fillParameter(annotation, operationGenerator, paramIdx, parameter);
+
+    RequestAttribute requestAttribute = (RequestAttribute) annotation;
+    parameter.setRequired(requestAttribute.required()); 
+  }
 }
diff --git a/swagger/swagger-generator/generator-springmvc/src/main/java/org/apache/servicecomb/swagger/generator/springmvc/processor/annotation/RequestParamAnnotationProcessor.java b/swagger/swagger-generator/generator-springmvc/src/main/java/org/apache/servicecomb/swagger/generator/springmvc/processor/annotation/RequestParamAnnotationProcessor.java
index d839c1c..a32274b 100644
--- a/swagger/swagger-generator/generator-springmvc/src/main/java/org/apache/servicecomb/swagger/generator/springmvc/processor/annotation/RequestParamAnnotationProcessor.java
+++ b/swagger/swagger-generator/generator-springmvc/src/main/java/org/apache/servicecomb/swagger/generator/springmvc/processor/annotation/RequestParamAnnotationProcessor.java
@@ -17,6 +17,7 @@
 
 package org.apache.servicecomb.swagger.generator.springmvc.processor.annotation;
 
+import org.apache.servicecomb.swagger.generator.core.OperationGenerator;
 import org.apache.servicecomb.swagger.generator.core.processor.parameter.AbstractParameterProcessor;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ValueConstants;
@@ -35,6 +36,15 @@ public class RequestParamAnnotationProcessor extends AbstractParameterProcessor<
   }
 
   @Override
+  protected void fillParameter(Object annotation, OperationGenerator operationGenerator, int paramIdx,
+      QueryParameter parameter) {
+    super.fillParameter(annotation, operationGenerator, paramIdx, parameter);
+
+    RequestParam requestParam = (RequestParam) annotation;
+    parameter.setRequired(requestParam.required());
+  }
+
+  @Override
   protected String getAnnotationParameterDefaultValue(Object annotation) {
     String defaultValue = ((RequestParam) annotation).defaultValue();
     if (defaultValue.equals(ValueConstants.DEFAULT_NONE)) {
diff --git a/swagger/swagger-generator/generator-springmvc/src/main/java/org/apache/servicecomb/swagger/generator/springmvc/processor/annotation/RequestPartAnnotationProcessor.java b/swagger/swagger-generator/generator-springmvc/src/main/java/org/apache/servicecomb/swagger/generator/springmvc/processor/annotation/RequestPartAnnotationProcessor.java
index 3901752..fe3ec24 100644
--- a/swagger/swagger-generator/generator-springmvc/src/main/java/org/apache/servicecomb/swagger/generator/springmvc/processor/annotation/RequestPartAnnotationProcessor.java
+++ b/swagger/swagger-generator/generator-springmvc/src/main/java/org/apache/servicecomb/swagger/generator/springmvc/processor/annotation/RequestPartAnnotationProcessor.java
@@ -17,6 +17,7 @@
 
 package org.apache.servicecomb.swagger.generator.springmvc.processor.annotation;
 
+import org.apache.servicecomb.swagger.generator.core.OperationGenerator;
 import org.apache.servicecomb.swagger.generator.core.processor.parameter.AbstractParameterProcessor;
 import org.springframework.web.bind.annotation.RequestPart;
 
@@ -32,4 +33,13 @@ public class RequestPartAnnotationProcessor extends AbstractParameterProcessor<F
   public String getAnnotationParameterName(Object annotation) {
     return ((RequestPart) annotation).name();
   }
+
+  @Override
+  protected void fillParameter(Object annotation, OperationGenerator operationGenerator, int paramIdx,
+      FormParameter parameter) {
+    super.fillParameter(annotation, operationGenerator, paramIdx, parameter);
+
+    RequestPart requestPart = (RequestPart) annotation;
+    parameter.setRequired(requestPart.required());
+  }
 }
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 a31e9e2..fc9f380 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
@@ -52,11 +52,11 @@ paths:
         type: "string"
       - name: "word"
         in: "query"
-        required: false
+        required: true
         type: "string"
       - name: "form"
         in: "formData"
-        required: false
+        required: true
         type: "string"
       responses:
         200:
@@ -88,11 +88,11 @@ paths:
         type: "string"
       - name: "word"
         in: "query"
-        required: false
+        required: true
         type: "string"
       - name: "form"
         in: "formData"
-        required: false
+        required: true
         type: "string"
       responses:
         200:
@@ -124,11 +124,11 @@ paths:
         type: "string"
       - name: "word"
         in: "query"
-        required: false
+        required: true
         type: "string"
       - name: "form"
         in: "formData"
-        required: false
+        required: true
         type: "string"
       responses:
         200:
@@ -160,11 +160,11 @@ paths:
         type: "string"
       - name: "word"
         in: "query"
-        required: false
+        required: true
         type: "string"
       - name: "form"
         in: "formData"
-        required: false
+        required: true
         type: "string"
       responses:
         200:
@@ -196,11 +196,11 @@ paths:
         type: "string"
       - name: "word"
         in: "query"
-        required: false
+        required: true
         type: "string"
       - name: "form"
         in: "formData"
-        required: false
+        required: true
         type: "string"
       responses:
         200:
@@ -232,11 +232,11 @@ paths:
         type: "string"
       - name: "word"
         in: "query"
-        required: false
+        required: true
         type: "string"
       - name: "form"
         in: "formData"
-        required: false
+        required: true
         type: "string"
       responses:
         200: