Skip to content

Commit

Permalink
[JAXRS-SPEC] no @Valid annotation on simple fields (#18302)
Browse files Browse the repository at this point in the history
* fix and test

* whitespace change, generate samples
  • Loading branch information
martin-mfg committed Apr 6, 2024
1 parent 3bb17ef commit b11005b
Show file tree
Hide file tree
Showing 220 changed files with 933 additions and 985 deletions.
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
{{#required}}{{^isReadOnly}} @NotNull
{{/isReadOnly}}{{/required}}{{>beanValidationCore}}
{{#required}}{{^isReadOnly}}@NotNull {{/isReadOnly}}{{/required}}{{#isContainer}}{{^isPrimitiveType}}{{^isEnum}}@Valid {{/isEnum}}{{/isPrimitiveType}}{{/isContainer}}{{^isContainer}}{{^isPrimitiveType}}@Valid {{/isPrimitiveType}}{{/isContainer}}{{>beanValidationCore}}
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}} {{#vendorExtens
{{#vendorExtensions.x-field-extra-annotation}}
{{{vendorExtensions.x-field-extra-annotation}}}
{{/vendorExtensions.x-field-extra-annotation}}
private {{#useBeanValidation}}@Valid {{/useBeanValidation}}{{{datatypeWithEnum}}} {{name}}{{#defaultValue}} = {{{.}}}{{/defaultValue}};
private {{#isContainer}}{{#useBeanValidation}}@Valid {{/useBeanValidation}}{{/isContainer}}{{{datatypeWithEnum}}} {{name}}{{#defaultValue}} = {{{.}}}{{/defaultValue}};
{{/vars}}
{{#generateBuilders}}
{{^additionalProperties}}
Expand Down Expand Up @@ -72,7 +72,7 @@ public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}} {{#vendorExtens
@ApiModelProperty({{#example}}example = "{{{.}}}", {{/example}}{{#required}}required = {{required}}, {{/required}}value = "{{{description}}}"){{/useSwaggerAnnotations}}{{#useMicroProfileOpenAPIAnnotations}}
@org.eclipse.microprofile.openapi.annotations.media.Schema({{#example}}example = "{{{.}}}", {{/example}}{{#required}}required = {{required}}, {{/required}}description = "{{{description}}}"){{/useMicroProfileOpenAPIAnnotations}}
@JsonProperty("{{baseName}}")
{{#useBeanValidation}}{{>beanValidation}}{{/useBeanValidation}} public {{>beanValidatedType}} {{getter}}() {
{{#useBeanValidation}}{{>beanValidation}}{{/useBeanValidation}}public {{>beanValidatedType}} {{getter}}() {
return {{name}};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -714,6 +714,31 @@ public void testHandleDefaultValue_issue8535() throws Exception {
.containsWithNameAndAttributes("DefaultValue", ImmutableMap.of("value", "\"true\""));
}

@Test
public void testValidAnnotation_issue14432() throws Exception {
File output = Files.createTempDirectory("test").toFile().getCanonicalFile();
output.deleteOnExit();

OpenAPI openAPI = new OpenAPIParser()
.readLocation("src/test/resources/3_0/issue_14432.yaml", null, new ParseOptions()).getOpenAPI();

codegen.setOutputDir(output.getAbsolutePath());

ClientOptInput input = new ClientOptInput()
.openAPI(openAPI)
.config(codegen);

DefaultGenerator generator = new DefaultGenerator();
Map<String, File> files = generator.opts(input).generate().stream()
.collect(Collectors.toMap(File::getName, Function.identity()));

JavaFileAssert.assertThat(files.get("ComplexObject.java"))
.fileContains("private @Valid List<LocalDate> dates")
.fileDoesNotContains("private @Valid SymbolTypeEnum symbolType")
.fileDoesNotContains("@Valid String")
.fileDoesNotContains("@Valid Double");
}

@Test
public void arrayNullableDefaultValueTests() throws Exception {
final File output = Files.createTempDirectory("test").toFile().getCanonicalFile();
Expand Down
30 changes: 30 additions & 0 deletions modules/openapi-generator/src/test/resources/3_0/issue_14432.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
openapi: "3.0.3"
info:
title: "Demo models"
version: "1.0"
paths: {}
components:
schemas:
ComplexObject:
type: "object"
properties:
id:
type: "string"
probability:
type: "number"
format: "double"
dates:
type: "array"
items:
type: "string"
format: "date"
symbolType:
type: "string"
enum:
- "SYMBOL1"
- "SYMBOL2"
- "SYMBOL3"
ComplexArray:
type: array
items:
$ref: '#/components/schemas/ComplexObject'
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
@JsonTypeName("AdditionalPropertiesAnyType")
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
public class AdditionalPropertiesAnyType extends HashMap<String, Object> implements Serializable {
private @Valid String name;
private String name;

/**
**/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
@JsonTypeName("AdditionalPropertiesArray")
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
public class AdditionalPropertiesArray extends HashMap<String, List> implements Serializable {
private @Valid String name;
private String name;

/**
**/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
@JsonTypeName("AdditionalPropertiesBoolean")
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
public class AdditionalPropertiesBoolean extends HashMap<String, Boolean> implements Serializable {
private @Valid String name;
private String name;

/**
**/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ public class AdditionalPropertiesClass implements Serializable {
private @Valid Map<String, List<Object>> mapArrayAnytype = new HashMap<>();
private @Valid Map<String, Map<String, String>> mapMapString = new HashMap<>();
private @Valid Map<String, Map<String, Object>> mapMapAnytype = new HashMap<>();
private @Valid Object anytype1;
private @Valid Object anytype2;
private @Valid Object anytype3;
private Object anytype1;
private Object anytype2;
private Object anytype3;

/**
**/
Expand Down Expand Up @@ -79,7 +79,7 @@ public AdditionalPropertiesClass mapNumber(Map<String, BigDecimal> mapNumber) {

@ApiModelProperty(value = "")
@JsonProperty("map_number")
public Map<String, BigDecimal> getMapNumber() {
@Valid public Map<String, BigDecimal> getMapNumber() {
return mapNumber;
}

Expand Down Expand Up @@ -184,7 +184,7 @@ public AdditionalPropertiesClass mapArrayInteger(Map<String, List<Integer>> mapA

@ApiModelProperty(value = "")
@JsonProperty("map_array_integer")
public Map<String, List<Integer>> getMapArrayInteger() {
@Valid public Map<String, List<Integer>> getMapArrayInteger() {
return mapArrayInteger;
}

Expand Down Expand Up @@ -219,7 +219,7 @@ public AdditionalPropertiesClass mapArrayAnytype(Map<String, List<Object>> mapAr

@ApiModelProperty(value = "")
@JsonProperty("map_array_anytype")
public Map<String, List<Object>> getMapArrayAnytype() {
@Valid public Map<String, List<Object>> getMapArrayAnytype() {
return mapArrayAnytype;
}

Expand Down Expand Up @@ -254,7 +254,7 @@ public AdditionalPropertiesClass mapMapString(Map<String, Map<String, String>> m

@ApiModelProperty(value = "")
@JsonProperty("map_map_string")
public Map<String, Map<String, String>> getMapMapString() {
@Valid public Map<String, Map<String, String>> getMapMapString() {
return mapMapString;
}

Expand Down Expand Up @@ -289,7 +289,7 @@ public AdditionalPropertiesClass mapMapAnytype(Map<String, Map<String, Object>>

@ApiModelProperty(value = "")
@JsonProperty("map_map_anytype")
public Map<String, Map<String, Object>> getMapMapAnytype() {
@Valid public Map<String, Map<String, Object>> getMapMapAnytype() {
return mapMapAnytype;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
@JsonTypeName("AdditionalPropertiesInteger")
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
public class AdditionalPropertiesInteger extends HashMap<String, Integer> implements Serializable {
private @Valid String name;
private String name;

/**
**/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
@JsonTypeName("AdditionalPropertiesNumber")
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
public class AdditionalPropertiesNumber extends HashMap<String, BigDecimal> implements Serializable {
private @Valid String name;
private String name;

/**
**/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
@JsonTypeName("AdditionalPropertiesObject")
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
public class AdditionalPropertiesObject extends HashMap<String, Map> implements Serializable {
private @Valid String name;
private String name;

/**
**/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
@JsonTypeName("AdditionalPropertiesString")
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
public class AdditionalPropertiesString extends HashMap<String, String> implements Serializable {
private @Valid String name;
private String name;

/**
**/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@
@JsonTypeName("Animal")
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
public class Animal implements Serializable {
private @Valid String className;
private @Valid String color = "red";
private String className;
private String color = "red";

/**
**/
Expand All @@ -40,8 +40,7 @@ public Animal className(String className) {

@ApiModelProperty(required = true, value = "")
@JsonProperty("className")
@NotNull
public String getClassName() {
@NotNull public String getClassName() {
return className;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public ArrayOfArrayOfNumberOnly arrayArrayNumber(List<List<BigDecimal>> arrayArr

@ApiModelProperty(value = "")
@JsonProperty("ArrayArrayNumber")
public List<List<BigDecimal>> getArrayArrayNumber() {
@Valid public List<@Valid List<@Valid BigDecimal>> getArrayArrayNumber() {
return arrayArrayNumber;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public ArrayOfNumberOnly arrayNumber(List<BigDecimal> arrayNumber) {

@ApiModelProperty(value = "")
@JsonProperty("ArrayNumber")
public List<BigDecimal> getArrayNumber() {
@Valid public List<@Valid BigDecimal> getArrayNumber() {
return arrayNumber;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ public ArrayTest arrayArrayOfInteger(List<List<Long>> arrayArrayOfInteger) {

@ApiModelProperty(value = "")
@JsonProperty("array_array_of_integer")
public List<List<Long>> getArrayArrayOfInteger() {
@Valid public List<List<Long>> getArrayArrayOfInteger() {
return arrayArrayOfInteger;
}

Expand Down Expand Up @@ -106,7 +106,7 @@ public ArrayTest arrayArrayOfModel(List<List<@Valid ReadOnlyFirst>> arrayArrayOf

@ApiModelProperty(value = "")
@JsonProperty("array_array_of_model")
public List<List<ReadOnlyFirst>> getArrayArrayOfModel() {
@Valid public List<@Valid List<@Valid ReadOnlyFirst>> getArrayArrayOfModel() {
return arrayArrayOfModel;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ public static KindEnum fromValue(String value) {
}
}

private @Valid KindEnum kind;
private KindEnum kind;

/**
**/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@
@JsonTypeName("Capitalization")
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
public class Capitalization implements Serializable {
private @Valid String smallCamel;
private @Valid String capitalCamel;
private @Valid String smallSnake;
private @Valid String capitalSnake;
private @Valid String scAETHFlowPoints;
private @Valid String ATT_NAME;
private String smallCamel;
private String capitalCamel;
private String smallSnake;
private String capitalSnake;
private String scAETHFlowPoints;
private String ATT_NAME;

/**
**/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
@JsonTypeName("Cat")
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
public class Cat extends Animal implements Serializable {
private @Valid Boolean declawed;
private Boolean declawed;

/**
**/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
@JsonTypeName("Category")
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
public class Category implements Serializable {
private @Valid Long id;
private @Valid String name = "default-name";
private Long id;
private String name = "default-name";

/**
**/
Expand Down Expand Up @@ -50,8 +50,7 @@ public Category name(String name) {

@ApiModelProperty(required = true, value = "")
@JsonProperty("name")
@NotNull
public String getName() {
@NotNull public String getName() {
return name;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
@JsonTypeName("ClassModel")
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
public class ClassModel implements Serializable {
private @Valid String propertyClass;
private String propertyClass;

/**
**/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
@JsonTypeName("Client")
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
public class Client implements Serializable {
private @Valid String client;
private String client;

/**
**/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
@JsonTypeName("Dog")
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
public class Dog extends Animal implements Serializable {
private @Valid String breed;
private String breed;

/**
**/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ public static JustSymbolEnum fromValue(String value) {
}
}

private @Valid JustSymbolEnum justSymbol;
private JustSymbolEnum justSymbol;
public enum ArrayEnumEnum {

FISH(String.valueOf("fish")), CRAB(String.valueOf("crab"));
Expand Down
Loading

0 comments on commit b11005b

Please sign in to comment.