Skip to content
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
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ BOAT is still under development and subject to change.

## 0.17.75
* Fixed duplicate serialization of the discriminator property in Jackson-based Java models by removing allowGetters = true from the @JsonIgnoreProperties annotation.
* In Spring generator added support for type-level validation in collections via the `x-not-null` vendor extension to allow `@NotNull` annotations on generic type arguments.

## 0.17.74
* Swift5: Removed deprecated initializer from model objects. The initializer is now internal and only accessible through the Builder pattern, preventing breaking code from deprecation warnings.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{{#vendorExtensions.x-not-null}}@NotNull{{/vendorExtensions.x-not-null}}
{{#pattern}}{{^isByteArray}}@Pattern(regexp = "{{{pattern}}}") {{/isByteArray}}{{/pattern}}{{!
minLength && maxLength set
}}{{#minLength}}{{#maxLength}}@Size(min = {{minLength}}, max = {{maxLength}}) {{/maxLength}}{{/minLength}}{{!
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -192,13 +192,25 @@ void generate(Combination param) {
@Check
void useBeanValidation() {
assertThat(findPattern("/api/.+\\.java$", "@Valid"),
equalTo(this.param.useBeanValidation||this.param.addBindingResult));
equalTo(this.param.useBeanValidation || this.param.addBindingResult));
assertThat(findPattern("/model/.+\\.java$", "@Valid"),
equalTo(this.param.useBeanValidation||this.param.addBindingResult));
equalTo(this.param.useBeanValidation || this.param.addBindingResult));
assertThat(findPattern("/model/MultiLinePaymentRequest.*\\.java$", "List<@Pattern\\(regexp"),
equalTo(this.param.useBeanValidation||this.param.addBindingResult));
equalTo(this.param.useBeanValidation || this.param.addBindingResult));
assertThat(findPattern("/model/MultiLinePaymentRequest.*\\.java$", "Map<String, @Size\\(min = 7, max = 10\\)"),
equalTo(this.param.useBeanValidation||this.param.addBindingResult));
equalTo(this.param.useBeanValidation || this.param.addBindingResult));
}

@Check
void queryParamsCustomNotNullValidation() {
assertThat(findPattern("/api/ArrayTypesApi\\.java$", "List<@NotNull.*>\\s+qParamsNotNull"),
equalTo(this.param.useBeanValidation || this.param.addBindingResult));
assertThat(findPattern("/api/SetTypesApi\\.java$", "Set\\s*<@NotNull.*>\\s+qParamsNotNull"),
equalTo(this.param.useBeanValidation || this.param.addBindingResult));
assertThat(findPattern("/api/SimpleTypesApi\\.java$", "Set\\s*<@NotNull.*>\\s+qParamsNotNull"),
equalTo(this.param.useBeanValidation || this.param.addBindingResult));
assertThat(findPattern("/api/MapTypesApi\\.java$", "List<@NotNull.*>\\s+qParamsNotNull"),
equalTo(this.param.useBeanValidation || this.param.addBindingResult));
}

@Check
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,15 @@ get:
minLength: 1
maxLength: 36
pattern: '^[A-Z]+$'
- name: q-params-not-null
in: query
required: false
schema:
type: array
items:
type: string
x-not-null: true
pattern: '^[A-Z]+$'
- name: q-params-set
in: query
required: false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,15 @@ get:
minLength: 1
maxLength: 36
pattern: '^[A-Z]+$'
- name: q-params-not-null
in: query
required: false
schema:
type: array
items:
type: string
x-not-null: true
pattern: '^[A-Z]+$'
- name: q-params-set
in: query
required: false
Expand Down
10 changes: 10 additions & 0 deletions boat-scaffold/src/test/resources/boat-spring/paths/set-types.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,16 @@ get:
minLength: 1
maxLength: 36
pattern: '^[A-Z]+$'
- name: q-params-not-null
in: query
required: false
schema:
type: array
uniqueItems: true
items:
type: string
x-not-null: true
pattern: '^[A-Z]+$'
- name: q-params-set-req
in: query
required: true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,16 @@ get:
minLength: 1
maxLength: 36
pattern: '^[A-Z]+$'
- name: q-params-not-null
in: query
required: false
schema:
type: array
uniqueItems: true
items:
type: string
x-not-null: true
pattern: '^[A-Z]+$'
- name: q-params-set
in: query
required: false
Expand Down