Skip to content

Commit b11005b

Browse files
authored
[JAXRS-SPEC] no @Valid annotation on simple fields (#18302)
* fix and test * whitespace change, generate samples
1 parent 3bb17ef commit b11005b

File tree

220 files changed

+933
-985
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

220 files changed

+933
-985
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
{{#required}}{{^isReadOnly}} @NotNull
2-
{{/isReadOnly}}{{/required}}{{>beanValidationCore}}
1+
{{#required}}{{^isReadOnly}}@NotNull {{/isReadOnly}}{{/required}}{{#isContainer}}{{^isPrimitiveType}}{{^isEnum}}@Valid {{/isEnum}}{{/isPrimitiveType}}{{/isContainer}}{{^isContainer}}{{^isPrimitiveType}}@Valid {{/isPrimitiveType}}{{/isContainer}}{{>beanValidationCore}}

modules/openapi-generator/src/main/resources/JavaJaxRS/spec/pojo.mustache

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}} {{#vendorExtens
3232
{{#vendorExtensions.x-field-extra-annotation}}
3333
{{{vendorExtensions.x-field-extra-annotation}}}
3434
{{/vendorExtensions.x-field-extra-annotation}}
35-
private {{#useBeanValidation}}@Valid {{/useBeanValidation}}{{{datatypeWithEnum}}} {{name}}{{#defaultValue}} = {{{.}}}{{/defaultValue}};
35+
private {{#isContainer}}{{#useBeanValidation}}@Valid {{/useBeanValidation}}{{/isContainer}}{{{datatypeWithEnum}}} {{name}}{{#defaultValue}} = {{{.}}}{{/defaultValue}};
3636
{{/vars}}
3737
{{#generateBuilders}}
3838
{{^additionalProperties}}
@@ -72,7 +72,7 @@ public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}} {{#vendorExtens
7272
@ApiModelProperty({{#example}}example = "{{{.}}}", {{/example}}{{#required}}required = {{required}}, {{/required}}value = "{{{description}}}"){{/useSwaggerAnnotations}}{{#useMicroProfileOpenAPIAnnotations}}
7373
@org.eclipse.microprofile.openapi.annotations.media.Schema({{#example}}example = "{{{.}}}", {{/example}}{{#required}}required = {{required}}, {{/required}}description = "{{{description}}}"){{/useMicroProfileOpenAPIAnnotations}}
7474
@JsonProperty("{{baseName}}")
75-
{{#useBeanValidation}}{{>beanValidation}}{{/useBeanValidation}} public {{>beanValidatedType}} {{getter}}() {
75+
{{#useBeanValidation}}{{>beanValidation}}{{/useBeanValidation}}public {{>beanValidatedType}} {{getter}}() {
7676
return {{name}};
7777
}
7878

modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSSpecServerCodegenTest.java

+25
Original file line numberDiff line numberDiff line change
@@ -714,6 +714,31 @@ public void testHandleDefaultValue_issue8535() throws Exception {
714714
.containsWithNameAndAttributes("DefaultValue", ImmutableMap.of("value", "\"true\""));
715715
}
716716

717+
@Test
718+
public void testValidAnnotation_issue14432() throws Exception {
719+
File output = Files.createTempDirectory("test").toFile().getCanonicalFile();
720+
output.deleteOnExit();
721+
722+
OpenAPI openAPI = new OpenAPIParser()
723+
.readLocation("src/test/resources/3_0/issue_14432.yaml", null, new ParseOptions()).getOpenAPI();
724+
725+
codegen.setOutputDir(output.getAbsolutePath());
726+
727+
ClientOptInput input = new ClientOptInput()
728+
.openAPI(openAPI)
729+
.config(codegen);
730+
731+
DefaultGenerator generator = new DefaultGenerator();
732+
Map<String, File> files = generator.opts(input).generate().stream()
733+
.collect(Collectors.toMap(File::getName, Function.identity()));
734+
735+
JavaFileAssert.assertThat(files.get("ComplexObject.java"))
736+
.fileContains("private @Valid List<LocalDate> dates")
737+
.fileDoesNotContains("private @Valid SymbolTypeEnum symbolType")
738+
.fileDoesNotContains("@Valid String")
739+
.fileDoesNotContains("@Valid Double");
740+
}
741+
717742
@Test
718743
public void arrayNullableDefaultValueTests() throws Exception {
719744
final File output = Files.createTempDirectory("test").toFile().getCanonicalFile();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
openapi: "3.0.3"
2+
info:
3+
title: "Demo models"
4+
version: "1.0"
5+
paths: {}
6+
components:
7+
schemas:
8+
ComplexObject:
9+
type: "object"
10+
properties:
11+
id:
12+
type: "string"
13+
probability:
14+
type: "number"
15+
format: "double"
16+
dates:
17+
type: "array"
18+
items:
19+
type: "string"
20+
format: "date"
21+
symbolType:
22+
type: "string"
23+
enum:
24+
- "SYMBOL1"
25+
- "SYMBOL2"
26+
- "SYMBOL3"
27+
ComplexArray:
28+
type: array
29+
items:
30+
$ref: '#/components/schemas/ComplexObject'

samples/server/petstore/jaxrs-spec-interface-response/src/gen/java/org/openapitools/model/AdditionalPropertiesAnyType.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
@JsonTypeName("AdditionalPropertiesAnyType")
2121
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
2222
public class AdditionalPropertiesAnyType extends HashMap<String, Object> implements Serializable {
23-
private @Valid String name;
23+
private String name;
2424

2525
/**
2626
**/

samples/server/petstore/jaxrs-spec-interface-response/src/gen/java/org/openapitools/model/AdditionalPropertiesArray.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
@JsonTypeName("AdditionalPropertiesArray")
2222
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
2323
public class AdditionalPropertiesArray extends HashMap<String, List> implements Serializable {
24-
private @Valid String name;
24+
private String name;
2525

2626
/**
2727
**/

samples/server/petstore/jaxrs-spec-interface-response/src/gen/java/org/openapitools/model/AdditionalPropertiesBoolean.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
@JsonTypeName("AdditionalPropertiesBoolean")
2121
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
2222
public class AdditionalPropertiesBoolean extends HashMap<String, Boolean> implements Serializable {
23-
private @Valid String name;
23+
private String name;
2424

2525
/**
2626
**/

samples/server/petstore/jaxrs-spec-interface-response/src/gen/java/org/openapitools/model/AdditionalPropertiesClass.java

+8-8
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ public class AdditionalPropertiesClass implements Serializable {
3030
private @Valid Map<String, List<Object>> mapArrayAnytype = new HashMap<>();
3131
private @Valid Map<String, Map<String, String>> mapMapString = new HashMap<>();
3232
private @Valid Map<String, Map<String, Object>> mapMapAnytype = new HashMap<>();
33-
private @Valid Object anytype1;
34-
private @Valid Object anytype2;
35-
private @Valid Object anytype3;
33+
private Object anytype1;
34+
private Object anytype2;
35+
private Object anytype3;
3636

3737
/**
3838
**/
@@ -79,7 +79,7 @@ public AdditionalPropertiesClass mapNumber(Map<String, BigDecimal> mapNumber) {
7979

8080
@ApiModelProperty(value = "")
8181
@JsonProperty("map_number")
82-
public Map<String, BigDecimal> getMapNumber() {
82+
@Valid public Map<String, BigDecimal> getMapNumber() {
8383
return mapNumber;
8484
}
8585

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

185185
@ApiModelProperty(value = "")
186186
@JsonProperty("map_array_integer")
187-
public Map<String, List<Integer>> getMapArrayInteger() {
187+
@Valid public Map<String, List<Integer>> getMapArrayInteger() {
188188
return mapArrayInteger;
189189
}
190190

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

220220
@ApiModelProperty(value = "")
221221
@JsonProperty("map_array_anytype")
222-
public Map<String, List<Object>> getMapArrayAnytype() {
222+
@Valid public Map<String, List<Object>> getMapArrayAnytype() {
223223
return mapArrayAnytype;
224224
}
225225

@@ -254,7 +254,7 @@ public AdditionalPropertiesClass mapMapString(Map<String, Map<String, String>> m
254254

255255
@ApiModelProperty(value = "")
256256
@JsonProperty("map_map_string")
257-
public Map<String, Map<String, String>> getMapMapString() {
257+
@Valid public Map<String, Map<String, String>> getMapMapString() {
258258
return mapMapString;
259259
}
260260

@@ -289,7 +289,7 @@ public AdditionalPropertiesClass mapMapAnytype(Map<String, Map<String, Object>>
289289

290290
@ApiModelProperty(value = "")
291291
@JsonProperty("map_map_anytype")
292-
public Map<String, Map<String, Object>> getMapMapAnytype() {
292+
@Valid public Map<String, Map<String, Object>> getMapMapAnytype() {
293293
return mapMapAnytype;
294294
}
295295

samples/server/petstore/jaxrs-spec-interface-response/src/gen/java/org/openapitools/model/AdditionalPropertiesInteger.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
@JsonTypeName("AdditionalPropertiesInteger")
2121
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
2222
public class AdditionalPropertiesInteger extends HashMap<String, Integer> implements Serializable {
23-
private @Valid String name;
23+
private String name;
2424

2525
/**
2626
**/

samples/server/petstore/jaxrs-spec-interface-response/src/gen/java/org/openapitools/model/AdditionalPropertiesNumber.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
@JsonTypeName("AdditionalPropertiesNumber")
2222
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
2323
public class AdditionalPropertiesNumber extends HashMap<String, BigDecimal> implements Serializable {
24-
private @Valid String name;
24+
private String name;
2525

2626
/**
2727
**/

samples/server/petstore/jaxrs-spec-interface-response/src/gen/java/org/openapitools/model/AdditionalPropertiesObject.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
@JsonTypeName("AdditionalPropertiesObject")
2121
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
2222
public class AdditionalPropertiesObject extends HashMap<String, Map> implements Serializable {
23-
private @Valid String name;
23+
private String name;
2424

2525
/**
2626
**/

samples/server/petstore/jaxrs-spec-interface-response/src/gen/java/org/openapitools/model/AdditionalPropertiesString.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
@JsonTypeName("AdditionalPropertiesString")
2121
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
2222
public class AdditionalPropertiesString extends HashMap<String, String> implements Serializable {
23-
private @Valid String name;
23+
private String name;
2424

2525
/**
2626
**/

samples/server/petstore/jaxrs-spec-interface-response/src/gen/java/org/openapitools/model/Animal.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727
@JsonTypeName("Animal")
2828
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
2929
public class Animal implements Serializable {
30-
private @Valid String className;
31-
private @Valid String color = "red";
30+
private String className;
31+
private String color = "red";
3232

3333
/**
3434
**/
@@ -40,8 +40,7 @@ public Animal className(String className) {
4040

4141
@ApiModelProperty(required = true, value = "")
4242
@JsonProperty("className")
43-
@NotNull
44-
public String getClassName() {
43+
@NotNull public String getClassName() {
4544
return className;
4645
}
4746

samples/server/petstore/jaxrs-spec-interface-response/src/gen/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public ArrayOfArrayOfNumberOnly arrayArrayNumber(List<List<BigDecimal>> arrayArr
3434

3535
@ApiModelProperty(value = "")
3636
@JsonProperty("ArrayArrayNumber")
37-
public List<List<BigDecimal>> getArrayArrayNumber() {
37+
@Valid public List<@Valid List<@Valid BigDecimal>> getArrayArrayNumber() {
3838
return arrayArrayNumber;
3939
}
4040

samples/server/petstore/jaxrs-spec-interface-response/src/gen/java/org/openapitools/model/ArrayOfNumberOnly.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public ArrayOfNumberOnly arrayNumber(List<BigDecimal> arrayNumber) {
3434

3535
@ApiModelProperty(value = "")
3636
@JsonProperty("ArrayNumber")
37-
public List<BigDecimal> getArrayNumber() {
37+
@Valid public List<@Valid BigDecimal> getArrayNumber() {
3838
return arrayNumber;
3939
}
4040

samples/server/petstore/jaxrs-spec-interface-response/src/gen/java/org/openapitools/model/ArrayTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public ArrayTest arrayArrayOfInteger(List<List<Long>> arrayArrayOfInteger) {
7171

7272
@ApiModelProperty(value = "")
7373
@JsonProperty("array_array_of_integer")
74-
public List<List<Long>> getArrayArrayOfInteger() {
74+
@Valid public List<List<Long>> getArrayArrayOfInteger() {
7575
return arrayArrayOfInteger;
7676
}
7777

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

107107
@ApiModelProperty(value = "")
108108
@JsonProperty("array_array_of_model")
109-
public List<List<ReadOnlyFirst>> getArrayArrayOfModel() {
109+
@Valid public List<@Valid List<@Valid ReadOnlyFirst>> getArrayArrayOfModel() {
110110
return arrayArrayOfModel;
111111
}
112112

samples/server/petstore/jaxrs-spec-interface-response/src/gen/java/org/openapitools/model/BigCat.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ public static KindEnum fromValue(String value) {
6666
}
6767
}
6868

69-
private @Valid KindEnum kind;
69+
private KindEnum kind;
7070

7171
/**
7272
**/

samples/server/petstore/jaxrs-spec-interface-response/src/gen/java/org/openapitools/model/Capitalization.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@
1818
@JsonTypeName("Capitalization")
1919
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
2020
public class Capitalization implements Serializable {
21-
private @Valid String smallCamel;
22-
private @Valid String capitalCamel;
23-
private @Valid String smallSnake;
24-
private @Valid String capitalSnake;
25-
private @Valid String scAETHFlowPoints;
26-
private @Valid String ATT_NAME;
21+
private String smallCamel;
22+
private String capitalCamel;
23+
private String smallSnake;
24+
private String capitalSnake;
25+
private String scAETHFlowPoints;
26+
private String ATT_NAME;
2727

2828
/**
2929
**/

samples/server/petstore/jaxrs-spec-interface-response/src/gen/java/org/openapitools/model/Cat.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
@JsonTypeName("Cat")
2020
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
2121
public class Cat extends Animal implements Serializable {
22-
private @Valid Boolean declawed;
22+
private Boolean declawed;
2323

2424
/**
2525
**/

samples/server/petstore/jaxrs-spec-interface-response/src/gen/java/org/openapitools/model/Category.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
@JsonTypeName("Category")
1919
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
2020
public class Category implements Serializable {
21-
private @Valid Long id;
22-
private @Valid String name = "default-name";
21+
private Long id;
22+
private String name = "default-name";
2323

2424
/**
2525
**/
@@ -50,8 +50,7 @@ public Category name(String name) {
5050

5151
@ApiModelProperty(required = true, value = "")
5252
@JsonProperty("name")
53-
@NotNull
54-
public String getName() {
53+
@NotNull public String getName() {
5554
return name;
5655
}
5756

samples/server/petstore/jaxrs-spec-interface-response/src/gen/java/org/openapitools/model/ClassModel.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
@JsonTypeName("ClassModel")
2121
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
2222
public class ClassModel implements Serializable {
23-
private @Valid String propertyClass;
23+
private String propertyClass;
2424

2525
/**
2626
**/

samples/server/petstore/jaxrs-spec-interface-response/src/gen/java/org/openapitools/model/Client.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
@JsonTypeName("Client")
1919
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
2020
public class Client implements Serializable {
21-
private @Valid String client;
21+
private String client;
2222

2323
/**
2424
**/

samples/server/petstore/jaxrs-spec-interface-response/src/gen/java/org/openapitools/model/Dog.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
@JsonTypeName("Dog")
2020
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
2121
public class Dog extends Animal implements Serializable {
22-
private @Valid String breed;
22+
private String breed;
2323

2424
/**
2525
**/

samples/server/petstore/jaxrs-spec-interface-response/src/gen/java/org/openapitools/model/EnumArrays.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public static JustSymbolEnum fromValue(String value) {
6868
}
6969
}
7070

71-
private @Valid JustSymbolEnum justSymbol;
71+
private JustSymbolEnum justSymbol;
7272
public enum ArrayEnumEnum {
7373

7474
FISH(String.valueOf("fish")), CRAB(String.valueOf("crab"));

0 commit comments

Comments
 (0)