2025.5
(#291) use $ref filename without json pointer as class name
the processor did create the class name of FooResponse based on the location as FooGetResponse200.java if the $ref did not have a json pointer.
It does now use the file name as class name if the $ref does not have a json pointer, i.e. in the example below the class name will be FooResponse instead of FooGetResponse200.
openapi: 3.1.0
info:
title: get class name from file name
version: 1.0.0
paths:
/foo:
get:
responses:
'200':
description: the foo result
content:
application/json:
schema:
$ref: 'FooResponse.yaml'title: Foo Schema
type: object
properties:
bar:
type: string(#290) mapping and bean validation annotations
the processor could produce invalid code that does not compile when combining a mapping with bean validation.
An OpenAPI (like the one below) with an integer parameter and bean validation enabled would add @DecimalMin & @DecimalMax annotations to the parameter in the generated code.
openapi: 3.1.0
info:
title: drop bean validation annotation if mapped to unsupported type
version: 1.0.0
paths:
/foo:
get:
parameters:
- in: query
name: year
schema:
type: integer
format: year
minimum: 1970
maximum: 2099This is an issue if the parameter type is mapped to a different Java type.
openapi-processor-mapping: v14
options:
package-name: generated
bean-validation: jakarta
map:
types:
- type: integer:year => java.time.YearIn the example to java.time.Year, because both annotations are not supported on java.time.Year.
To fix this, the processor does not add it if it is not allowed.
In case the target type is not recognized automatically (and the annotations are dropped), for example on a custom java.lang.Number implementation, it is possible to tell the processor that an annotation is valid on that type.
openapi-processor-mapping: v14
options:
# ...
map:
# ...
bean-validation:
jakarta.validation.constraints.DecimalMin:
- other.CustomInteger
jakarta.validation.constraints.DecimalMax:
- other.CustomInteger(openapi-processor/openapi-processor-spring#365) dropping parameters by OpenAPI name
dropping parameters did only work for parameters names if the OpenAPI name was identical to the Java name, i.e. no special characters. It does now handle special characters like -, _ or (space).
# ...
map:
paths:
/foo:
get:
parameters:
- drop: foo-Param
- drop: barParam