Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[JAXRS-SPEC] no @Valid annotation on simple fields #18302

Merged
merged 2 commits into from
Apr 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading