Skip to content

Commit bff0982

Browse files
authored
Fix process Negative and Positive annotations (#1402)
1 parent 6ac308c commit bff0982

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

openapi/src/main/java/io/micronaut/openapi/visitor/AbstractOpenApiVisitor.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1384,6 +1384,7 @@ protected void processJavaxValidationAnnotations(Element element, ClassElement e
13841384
if (element.isAnnotationPresent("javax.validation.constraints.Negative$List")
13851385
|| element.isAnnotationPresent("jakarta.validation.constraints.Negative$List")) {
13861386
schemaToBind.setMaximum(BigDecimal.ZERO);
1387+
schemaToBind.exclusiveMaximum(true);
13871388
}
13881389
if (element.isAnnotationPresent("javax.validation.constraints.NegativeOrZero$List")
13891390
|| element.isAnnotationPresent("jakarta.validation.constraints.NegativeOrZero$List")) {
@@ -1392,6 +1393,7 @@ protected void processJavaxValidationAnnotations(Element element, ClassElement e
13921393
if (element.isAnnotationPresent("javax.validation.constraints.Positive$List")
13931394
|| element.isAnnotationPresent("jakarta.validation.constraints.Positive$List")) {
13941395
schemaToBind.setMinimum(BigDecimal.ZERO);
1396+
schemaToBind.exclusiveMinimum(true);
13951397
}
13961398
if (element.isAnnotationPresent("javax.validation.constraints.PositiveOrZero$List")
13971399
|| element.isAnnotationPresent("jakarta.validation.constraints.PositiveOrZero$List")) {

openapi/src/test/groovy/io/micronaut/openapi/visitor/OpenApiPojoControllerSpec.groovy

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -651,6 +651,18 @@ class MyBean {}
651651
petSchema.properties.contact.format == 'email'
652652
petSchema.properties.contact.pattern == '.*@.*'
653653
petSchema.properties.num.pattern == '.'
654+
655+
petSchema.properties.pos.minimum == 0
656+
petSchema.properties.pos.exclusiveMinimum
657+
658+
petSchema.properties.posOrZero.minimum == 0
659+
!petSchema.properties.posOrZero.exclusiveMinimum
660+
661+
petSchema.properties.neg.maximum == 0
662+
petSchema.properties.neg.exclusiveMaximum
663+
664+
petSchema.properties.negOrZero.maximum == 0
665+
!petSchema.properties.negOrZero.exclusiveMaximum
654666
}
655667

656668
void "test build OpenAPI doc for POJO type with generics non-reactive"() {

0 commit comments

Comments
 (0)