Releases: belgif/rest-problem-java
Release v0.22.0
Changes
belgif-rest-problem
- Bump bundled jandex indexVersion from 10 to 11. This prevents warnings on Quarkus, but may result in warnings on JBoss EAP 7.4 (end-of-support).
belgif-rest-problem-spring-boot
- Fix
@ConditionalOnClassloading of optional components
belgif-rest-problem-java-ee
- Modify
ProblemClientResponseFilterto obtain theObjectMapperfrom the underlying JAX-RS or CDI runtime, instead of hardcodedProblemObjectMapperinstance - Don’t register
ClientProblemObjectMapperContextResolveron Quarkus - Prevent duplicate registrations of same JAX-RS component
belgif-rest-problem-quarkus
- Replace Jakarta EE
ContextResolver<ObjectMapper>by QuarkusProblemObjectMapperCustomizer - Replace quarkus-rest-jackson-common dependency by quarkus-jackson
Release v0.21.0
Changes
belgif-rest-problem
- Fix concurrency issue in InputValidationIssues.BELGIF_ISSUE_TYPE_HREFS cache
belgif-rest-problem-spring-boot-3-starter
The belgif-rest-problem-spring-boot-3 module has been renamed to belgif-rest-problem-spring-boot-3-starter. belgif-rest-problem-spring-boot-3 is still released with a relocation pom for backwards compatibility.
Provide separate modules in case you specifically only want to use problems either client-side or server-side.
- belgif-rest-problem-spring-boot-3-client-starter
- belgif-rest-problem-spring-boot-3-server-starter
Note that you can keep using belgif-rest-problem-spring-boot-3-starter if you want both client-side and server-side integration.
belgif-rest-problem-spring-boot-4-starter
belgif-rest-problem-spring-boot-4 should now depend on the belgif-rest-problem-spring-boot-4-starter module.
Provide separate modules in case you specifically only want to use problems either client-side or server-side.
- belgif-rest-problem-spring-boot-4-client-starter
- belgif-rest-problem-spring-boot-4-server-starter
Note that you can use belgif-rest-problem-spring-boot-4-starter when you want both client-side and server-side integration.
belgif-rest-problem-spring
Depend on this module to integrate with Spring without depending on Spring Boot. When using one of the spring boot modules, it is added as transitive dependency.
It provides support for both Jackson 2 and 3.
This release also extends the BeanValidationExceptionsHandler with support for HandlerMethodValidationException, an exception thrown for bean validation exceptions when a RestController is not annotated with @Validated.
belgif-rest-problem-java-ee
<classifier>jakarta</classifier> variant of belgif-rest-problem-java-ee no longer exists and should be replaced by belgif-rest-problem-jakarta-ee.
Provide separate modules in case you specifically only want to use problems either client-side or server-side.
- Java EE:
- belgif-rest-problem-java-ee-client
- belgif-rest-problem-java-ee-server
- Jakarta EE:
- belgif-rest-problem-jakarta-ee-client
- belgif-rest-problem-jakarta-ee-server
Note that you can keep using belgif-rest-problem-java-ee as before when you want both client-side and server-side integration.
Changes impacting RESTEasy clients:
- Remove
@Providerannotation onProblemClientResponseFilterso it no longer gets auto-registered for RESTEasy clients - Introduce
ResteasyProblemSupportclass for creating a problem-enabled RESTEasy proxy client
belgif-rest-problem-quarkus
Provide separate modules in case you specifically only want to use problems either client-side or server-side.
- belgif-rest-problem-quarkus-client
- belgif-rest-problem-quarkus-server
Note that you can keep using belgif-rest-problem-quarkus as before when you want both client-side and server-side integration.
Release v0.20.1
Changes
belgif-rest-problem-bom
Remove test scope dependencies inherited from parent pom.
Release v0.20.0
Changes
belgif-rest-problem
- Disable stacktrace on Problem exception class by default, as performance optimization. You can configure
io.github.belgif.rest.problem.stack-trace-enabled= true to opt out of this. - Add name with JSON location to schemaViolation issue for JSON syntax error
belgif-rest-problem-spring-boot-4
- Fix conditional loading of optional components
Release v0.19.1
Changes
belgif-rest-problem
- Added support for Jackson 3:
- ProblemTypeRegistry now returns
Map<String, Class<?>>instead ofNamedType[]to decouple from Jackson version - Added
io.github.belgif.rest.problem.ProblemModuleJackson3 - Ignore read-only properties "type", "status" and "title" in setAdditionalProperty()
- ProblemTypeRegistry now returns
belgif-rest-problem-validator
- Stop relying on openapi schema validation: implement all validation aspects, including those already specified by the schema
belgif-rest-problem-java-ee
- Added
AbstractInputParamConverterProviderbase class for implementing input-aware ("in" and "name") JAX-RS ParamConverters - Unwrap BadRequestProblem exception cause thrown by JAX-RS ParamConverters
- Added exception mapper for converting Jackson JsonMappingException and JsonParseException to BadRequestProblem with schemaViolation issue type
belgif-rest-problem-spring
- Renamed to belgif-rest-problem-spring-boot-common
belgif-rest-problem-spring-boot-2
- Removed module
belgif-rest-problem-spring-boot-4
- Added new module for Spring Boot 4 and Jackson 3
Release v0.18.0
Changes
belgif-rest-problem
- Add href property with documentation URL for belgif (e.g. https://www.belgif.be/specification/rest/api-guide/issues/schemaViolation.html) and belgif-ext (e.g. https://www.belgif.be/specification/rest/api-guide/issues/ext/invalidStructure.html) issue types
- Add Input parameter alternatives in InputValidationIssues for invalidSsin, unknownSsin, canceledSsin and replacedSsin
belgif-rest-problem-validator
- Add validator for Belgif openapi-employment-identifier EmployerId
belgif-rest-problem-java-ee
- Correctly determine input source for bean validation issues from properties in @BeanParam class
- Improve bean validation support for @FormParam, @MatrixParam and @CookieParam
belgif-rest-problem-spring
- Improve bean validation support for @MatrixVariable and @CookieValue
Release v0.17.0
Changes
belgif-rest-problem-java
- Normalize
*Idand*Codeinput names in 404 Resource Not Found detail message to id and code to account for updated [id-name] rule ⚠️ Renamedio.github.belgif.rest.problem.i18nproperty toio.github.belgif.rest.problem.i18n-enabled⚠️ By default, replace specialized input validation issue types invalidStructure, invalidPeriod, outOfRange, rejectedInput, requiredInput and cross-parameter validation issue types by new general issue typeurn:problem-type:belgif:input-validation:invalidInput.- io.github.belgif.rest.problem.ext.issue-types-enabled can be configured to keep using more specific issue types (from
urn:problem-type:belgif-ext:input-validation:*) instead ofurn:problem-type:belgif:input-validation:invalidInput.
- io.github.belgif.rest.problem.ext.issue-types-enabled can be configured to keep using more specific issue types (from
⚠️ By default, don’t populate inputs[] array for issue types that relate to multiple inputs.- io.github.belgif.rest.problem.ext.inputs-array-enabled can be configured to keep populating the inputs[] array.
Release v0.16.1
Changes
belgif-rest-problem
- Use English by default for I18N messages instead of fallback to system locale
Release v0.15.0
Changes
belgif-rest-problem
- Align MismatchedInputException detail message with Bean Validation
- Fix input path for MismatchedInputException on array properties
belgif-rest-problem-quarkus
- Add experimental support for Quarkus in native mode
Release v0.14.0
Changes
belgif-rest-problem
- Map Jackson MismatchedInputException (for missing required properties on request body) to BadRequestProblem