[4947][java]: adds support for validation of primitives in arrays (#17165)

* [4947][java]: adds support for validation of primitives in arrays

* [4947][java]: prevents generation '@Valid' for Object

* [4947][java]: test against different codegens and stick to primitive

* [4947][java]: code review

* [4947][java]: enhance getBeanValidation

* [4947][java]: adds email

* [4947][java]: removes unnecessary override

* [4947][java]: adds postProcessResponseWithProperty

* [4947][java]: adds missing import {{javaxPackage}}.validation.Valid

* [4947][java]: adds missing useBeanValidation

* [4947][java]: fix use rootJavaEEPackage for helidon
This commit is contained in:
Aliaksei
2023-12-11 13:55:38 +01:00
committed by GitHub
parent d4d5196907
commit 809b3331a9
575 changed files with 1982 additions and 843 deletions

View File

@@ -113,7 +113,7 @@ public interface FakeService {
@GET
@Consumes({ "application/x-www-form-urlencoded" })
void testEnumParameters(@HeaderParam("enum_header_string_array") List<String> enumHeaderStringArray, @HeaderParam("enum_header_string") @DefaultValue("-efg") String enumHeaderString, @QueryParam("enum_query_string_array") List<String> enumQueryStringArray, @QueryParam("enum_query_string") @DefaultValue("-efg") String enumQueryString, @QueryParam("enum_query_integer") Integer enumQueryInteger, @QueryParam("enum_query_double") Double enumQueryDouble, @QueryParam("enum_query_model_array") List<EnumClass> enumQueryModelArray, @FormParam(value = "enum_form_string_array") List<String> enumFormStringArray, @FormParam(value = "enum_form_string") String enumFormString);
void testEnumParameters(@HeaderParam("enum_header_string_array") List<String> enumHeaderStringArray, @HeaderParam("enum_header_string") @DefaultValue("-efg") String enumHeaderString, @QueryParam("enum_query_string_array") List<String> enumQueryStringArray, @QueryParam("enum_query_string") @DefaultValue("-efg") String enumQueryString, @QueryParam("enum_query_integer") Integer enumQueryInteger, @QueryParam("enum_query_double") Double enumQueryDouble, @QueryParam("enum_query_model_array") List<@Valid EnumClass> enumQueryModelArray, @FormParam(value = "enum_form_string_array") List<String> enumFormStringArray, @FormParam(value = "enum_form_string") String enumFormString);
@DELETE
void testGroupParameters(@QueryParam("required_string_group") @NotNull Integer requiredStringGroup, @HeaderParam("required_boolean_group") @NotNull Boolean requiredBooleanGroup, @QueryParam("required_int64_group") @NotNull Long requiredInt64Group, @QueryParam("string_group") Integer stringGroup, @HeaderParam("boolean_group") Boolean booleanGroup, @QueryParam("int64_group") Long int64Group);

View File

@@ -143,7 +143,7 @@ public class FakeServiceImpl implements FakeService {
@GET
@Consumes({ "application/x-www-form-urlencoded" })
public void testEnumParameters(@HeaderParam("enum_header_string_array") List<String> enumHeaderStringArray,@HeaderParam("enum_header_string") @DefaultValue("-efg") String enumHeaderString,@QueryParam("enum_query_string_array") List<String> enumQueryStringArray,@QueryParam("enum_query_string") @DefaultValue("-efg") String enumQueryString,@QueryParam("enum_query_integer") Integer enumQueryInteger,@QueryParam("enum_query_double") Double enumQueryDouble,@QueryParam("enum_query_model_array") List<EnumClass> enumQueryModelArray,@FormParam(value = "enum_form_string_array") List<String> enumFormStringArray,@FormParam(value = "enum_form_string") String enumFormString) {
public void testEnumParameters(@HeaderParam("enum_header_string_array") List<String> enumHeaderStringArray,@HeaderParam("enum_header_string") @DefaultValue("-efg") String enumHeaderString,@QueryParam("enum_query_string_array") List<String> enumQueryStringArray,@QueryParam("enum_query_string") @DefaultValue("-efg") String enumQueryString,@QueryParam("enum_query_integer") Integer enumQueryInteger,@QueryParam("enum_query_double") Double enumQueryDouble,@QueryParam("enum_query_model_array") List<@Valid EnumClass> enumQueryModelArray,@FormParam(value = "enum_form_string_array") List<String> enumFormStringArray,@FormParam(value = "enum_form_string") String enumFormString) {
}
@DELETE

View File

@@ -35,12 +35,12 @@ public interface UserService {
@POST
@Path("/createWithArray")
@Consumes({ "application/json" })
void createUsersWithArrayInput(@Valid @NotNull List<User> user);
void createUsersWithArrayInput(@Valid @NotNull List<@Valid User> user);
@POST
@Path("/createWithList")
@Consumes({ "application/json" })
void createUsersWithListInput(@Valid @NotNull List<User> user);
void createUsersWithListInput(@Valid @NotNull List<@Valid User> user);
@DELETE
@Path("/{username}")

View File

@@ -37,13 +37,13 @@ public class UserServiceImpl implements UserService {
@POST
@Path("/createWithArray")
@Consumes({ "application/json" })
public void createUsersWithArrayInput(@Valid @NotNull List<User> user) {
public void createUsersWithArrayInput(@Valid @NotNull List<@Valid User> user) {
}
@POST
@Path("/createWithList")
@Consumes({ "application/json" })
public void createUsersWithListInput(@Valid @NotNull List<User> user) {
public void createUsersWithListInput(@Valid @NotNull List<@Valid User> user) {
}
@DELETE

View File

@@ -31,7 +31,7 @@ public class ArrayTest {
private List<List<Long>> arrayArrayOfInteger = null;
private List<List<ReadOnlyFirst>> arrayArrayOfModel = null;
private List<List<@Valid ReadOnlyFirst>> arrayArrayOfModel = null;
/**
* Get arrayOfString
@@ -87,23 +87,23 @@ public class ArrayTest {
* Get arrayArrayOfModel
* @return arrayArrayOfModel
**/
public List<List<ReadOnlyFirst>> getArrayArrayOfModel() {
public List<List<@Valid ReadOnlyFirst>> getArrayArrayOfModel() {
return arrayArrayOfModel;
}
/**
* Set arrayArrayOfModel
**/
public void setArrayArrayOfModel(List<List<ReadOnlyFirst>> arrayArrayOfModel) {
public void setArrayArrayOfModel(List<List<@Valid ReadOnlyFirst>> arrayArrayOfModel) {
this.arrayArrayOfModel = arrayArrayOfModel;
}
public ArrayTest arrayArrayOfModel(List<List<ReadOnlyFirst>> arrayArrayOfModel) {
public ArrayTest arrayArrayOfModel(List<List<@Valid ReadOnlyFirst>> arrayArrayOfModel) {
this.arrayArrayOfModel = arrayArrayOfModel;
return this;
}
public ArrayTest addArrayArrayOfModelItem(List<ReadOnlyFirst> arrayArrayOfModelItem) {
public ArrayTest addArrayArrayOfModelItem(List<@Valid ReadOnlyFirst> arrayArrayOfModelItem) {
this.arrayArrayOfModel.add(arrayArrayOfModelItem);
return this;
}

View File

@@ -29,7 +29,7 @@ public class FileSchemaTestClass {
private ModelFile _file;
private List<ModelFile> files = null;
private List<@Valid ModelFile> files = null;
/**
* Get _file
@@ -55,18 +55,18 @@ public class FileSchemaTestClass {
* Get files
* @return files
**/
public List<ModelFile> getFiles() {
public List<@Valid ModelFile> getFiles() {
return files;
}
/**
* Set files
**/
public void setFiles(List<ModelFile> files) {
public void setFiles(List<@Valid ModelFile> files) {
this.files = files;
}
public FileSchemaTestClass files(List<ModelFile> files) {
public FileSchemaTestClass files(List<@Valid ModelFile> files) {
this.files = files;
return this;
}

View File

@@ -34,7 +34,7 @@ public class ObjectWithDeprecatedFields {
private DeprecatedObject deprecatedRef;
private List<String> bars = null;
private List<@Valid String> bars = null;
/**
* Get uuid
@@ -106,18 +106,18 @@ public class ObjectWithDeprecatedFields {
* @deprecated
**/
@Deprecated
public List<String> getBars() {
public List<@Valid String> getBars() {
return bars;
}
/**
* Set bars
**/
public void setBars(List<String> bars) {
public void setBars(List<@Valid String> bars) {
this.bars = bars;
}
public ObjectWithDeprecatedFields bars(List<String> bars) {
public ObjectWithDeprecatedFields bars(List<@Valid String> bars) {
this.bars = bars;
return this;
}

View File

@@ -41,7 +41,7 @@ public class Pet {
private Set<String> photoUrls = new LinkedHashSet<>();
private List<Tag> tags = null;
private List<@Valid Tag> tags = null;
public enum StatusEnum {
@@ -187,18 +187,18 @@ public enum StatusEnum {
* Get tags
* @return tags
**/
public List<Tag> getTags() {
public List<@Valid Tag> getTags() {
return tags;
}
/**
* Set tags
**/
public void setTags(List<Tag> tags) {
public void setTags(List<@Valid Tag> tags) {
this.tags = tags;
}
public Pet tags(List<Tag> tags) {
public Pet tags(List<@Valid Tag> tags) {
this.tags = tags;
return this;
}

View File

@@ -2,6 +2,8 @@ package org.openapitools.server.model;
import java.util.HashMap;
import java.util.Map;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -3,6 +3,8 @@ package org.openapitools.server.model;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import org.openapitools.server.model.SingleRefType;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -3,6 +3,8 @@ package org.openapitools.server.model;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -4,6 +4,8 @@ import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -4,6 +4,8 @@ import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -4,6 +4,8 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.openapitools.server.model.ReadOnlyFirst;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;
@@ -11,7 +13,7 @@ public class ArrayTest {
private List<String> arrayOfString;
private List<List<Long>> arrayArrayOfInteger;
private List<List<ReadOnlyFirst>> arrayArrayOfModel;
private List<List<@Valid ReadOnlyFirst>> arrayArrayOfModel;
/**
* Default constructor.
@@ -30,7 +32,7 @@ public class ArrayTest {
public ArrayTest(
List<String> arrayOfString,
List<List<Long>> arrayArrayOfInteger,
List<List<ReadOnlyFirst>> arrayArrayOfModel
List<List<@Valid ReadOnlyFirst>> arrayArrayOfModel
) {
this.arrayOfString = arrayOfString;
this.arrayArrayOfInteger = arrayArrayOfInteger;
@@ -67,11 +69,11 @@ public class ArrayTest {
* Get arrayArrayOfModel
* @return arrayArrayOfModel
*/
public List<List<ReadOnlyFirst>> getArrayArrayOfModel() {
public List<List<@Valid ReadOnlyFirst>> getArrayArrayOfModel() {
return arrayArrayOfModel;
}
public void setArrayArrayOfModel(List<List<ReadOnlyFirst>> arrayArrayOfModel) {
public void setArrayArrayOfModel(List<List<@Valid ReadOnlyFirst>> arrayArrayOfModel) {
this.arrayArrayOfModel = arrayArrayOfModel;
}

View File

@@ -1,5 +1,7 @@
package org.openapitools.server.model;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -4,6 +4,8 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import org.openapitools.server.model.Animal;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -1,5 +1,7 @@
package org.openapitools.server.model;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -7,6 +7,8 @@ import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.JsonValue;
import org.openapitools.jackson.nullable.JsonNullable;
import org.openapitools.server.model.ParentWithNullable;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -1,5 +1,7 @@
package org.openapitools.server.model;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;
/**

View File

@@ -1,5 +1,7 @@
package org.openapitools.server.model;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -1,5 +1,7 @@
package org.openapitools.server.model;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -4,6 +4,8 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import org.openapitools.server.model.Animal;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -5,6 +5,8 @@ import com.fasterxml.jackson.annotation.JsonValue;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -1,5 +1,7 @@
package org.openapitools.server.model;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;
import com.fasterxml.jackson.annotation.JsonCreator;

View File

@@ -8,6 +8,8 @@ import org.openapitools.server.model.OuterEnum;
import org.openapitools.server.model.OuterEnumDefaultValue;
import org.openapitools.server.model.OuterEnumInteger;
import org.openapitools.server.model.OuterEnumIntegerDefaultValue;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -4,6 +4,8 @@ import com.fasterxml.jackson.annotation.JsonTypeName;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -4,13 +4,15 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.openapitools.server.model.ModelFile;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;
public class FileSchemaTestClass {
private ModelFile _file;
private List<ModelFile> files;
private List<@Valid ModelFile> files;
/**
* Default constructor.
@@ -27,7 +29,7 @@ public class FileSchemaTestClass {
*/
public FileSchemaTestClass(
ModelFile _file,
List<ModelFile> files
List<@Valid ModelFile> files
) {
this._file = _file;
this.files = files;
@@ -51,11 +53,11 @@ public class FileSchemaTestClass {
* Get files
* @return files
*/
public List<ModelFile> getFiles() {
public List<@Valid ModelFile> getFiles() {
return files;
}
public void setFiles(List<ModelFile> files) {
public void setFiles(List<@Valid ModelFile> files) {
this.files = files;
}

View File

@@ -1,5 +1,7 @@
package org.openapitools.server.model;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -2,6 +2,8 @@ package org.openapitools.server.model;
import com.fasterxml.jackson.annotation.JsonTypeName;
import org.openapitools.server.model.Foo;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -6,6 +6,8 @@ import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.OffsetDateTime;
import java.util.UUID;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -1,6 +1,8 @@
package org.openapitools.server.model;
import com.fasterxml.jackson.annotation.JsonTypeName;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -1,6 +1,8 @@
package org.openapitools.server.model;
import org.openapitools.jackson.nullable.JsonNullable;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;
/**

View File

@@ -4,6 +4,8 @@ import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import java.util.HashMap;
import java.util.Map;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -5,6 +5,8 @@ import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import org.openapitools.server.model.Animal;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -1,6 +1,8 @@
package org.openapitools.server.model;
import com.fasterxml.jackson.annotation.JsonTypeName;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;
/**

View File

@@ -1,6 +1,8 @@
package org.openapitools.server.model;
import com.fasterxml.jackson.annotation.JsonTypeName;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -1,6 +1,8 @@
package org.openapitools.server.model;
import com.fasterxml.jackson.annotation.JsonTypeName;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;
/**

View File

@@ -1,6 +1,8 @@
package org.openapitools.server.model;
import com.fasterxml.jackson.annotation.JsonTypeName;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -1,6 +1,8 @@
package org.openapitools.server.model;
import com.fasterxml.jackson.annotation.JsonTypeName;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;
/**

View File

@@ -1,5 +1,7 @@
package org.openapitools.server.model;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;
/**

View File

@@ -9,6 +9,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.openapitools.jackson.nullable.JsonNullable;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -1,6 +1,8 @@
package org.openapitools.server.model;
import java.math.BigDecimal;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -5,6 +5,8 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.openapitools.server.model.DeprecatedObject;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;
@@ -13,7 +15,7 @@ public class ObjectWithDeprecatedFields {
private String uuid;
private BigDecimal id;
private DeprecatedObject deprecatedRef;
private List<String> bars;
private List<@Valid String> bars;
/**
* Default constructor.
@@ -34,7 +36,7 @@ public class ObjectWithDeprecatedFields {
String uuid,
BigDecimal id,
DeprecatedObject deprecatedRef,
List<String> bars
List<@Valid String> bars
) {
this.uuid = uuid;
this.id = id;
@@ -84,11 +86,11 @@ public class ObjectWithDeprecatedFields {
* Get bars
* @return bars
*/
public List<String> getBars() {
public List<@Valid String> getBars() {
return bars;
}
public void setBars(List<String> bars) {
public void setBars(List<@Valid String> bars) {
this.bars = bars;
}

View File

@@ -3,6 +3,8 @@ package org.openapitools.server.model;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import java.time.OffsetDateTime;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -1,6 +1,8 @@
package org.openapitools.server.model;
import java.math.BigDecimal;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -1,5 +1,7 @@
package org.openapitools.server.model;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;
import com.fasterxml.jackson.annotation.JsonCreator;

View File

@@ -1,5 +1,7 @@
package org.openapitools.server.model;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;
import com.fasterxml.jackson.annotation.JsonCreator;

View File

@@ -1,5 +1,7 @@
package org.openapitools.server.model;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;
import com.fasterxml.jackson.annotation.JsonCreator;

View File

@@ -1,5 +1,7 @@
package org.openapitools.server.model;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;
import com.fasterxml.jackson.annotation.JsonCreator;

View File

@@ -3,6 +3,8 @@ package org.openapitools.server.model;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import org.openapitools.server.model.OuterEnumInteger;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -6,6 +6,8 @@ import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.JsonValue;
import org.openapitools.jackson.nullable.JsonNullable;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -10,6 +10,8 @@ import java.util.List;
import java.util.Set;
import org.openapitools.server.model.Category;
import org.openapitools.server.model.Tag;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;
@@ -19,7 +21,7 @@ public class Pet {
private Category category;
private String name;
private Set<String> photoUrls = new LinkedHashSet<>();
private List<Tag> tags;
private List<@Valid Tag> tags;
/**
* pet status in the store
@@ -82,7 +84,7 @@ public class Pet {
Category category,
String name,
Set<String> photoUrls,
List<Tag> tags,
List<@Valid Tag> tags,
StatusEnum status
) {
this.id = id;
@@ -147,11 +149,11 @@ public class Pet {
* Get tags
* @return tags
*/
public List<Tag> getTags() {
public List<@Valid Tag> getTags() {
return tags;
}
public void setTags(List<Tag> tags) {
public void setTags(List<@Valid Tag> tags) {
this.tags = tags;
}

View File

@@ -1,5 +1,7 @@
package org.openapitools.server.model;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -1,5 +1,7 @@
package org.openapitools.server.model;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;
import com.fasterxml.jackson.annotation.JsonCreator;

View File

@@ -1,6 +1,8 @@
package org.openapitools.server.model;
import com.fasterxml.jackson.annotation.JsonTypeName;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -1,5 +1,7 @@
package org.openapitools.server.model;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -3,6 +3,8 @@ package org.openapitools.server.model;
import com.fasterxml.jackson.annotation.JsonTypeName;
import java.util.HashMap;
import java.util.Map;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;

View File

@@ -1,5 +1,7 @@
package org.openapitools.server.model;
import jakarta.validation.constraints.*;
import jakarta.validation.Valid;