Version 0.17

Potentially breaking

belgif-rest-problem:

  • Normalize *Id and *Code input names in 404 Resource Not Found detail message to id and code to account for updated [id-name] rule

  • Renamed io.github.belgif.rest.problem.i18n property to io.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 type urn:problem-type:belgif:input-validation:invalidInput.

  • By default, don’t populate inputs[] array for issue types that relate to multiple inputs.

Use these extensions at your own discretion. They are not an official part of the Belgif REST guidelines, may have an impact on interoperability, and may potentially be changed or removed in a future version.

Version 0.16

belgif-rest-problem:

  • Use English by default for I18N messages instead of fallback to system locale

Version 0.15

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

Version 0.14

belgif-rest-problem:

  • Map Jackson MismatchedInputException (for missing required properties on request body) to BadRequestProblem

Version 0.13

belgif-rest-problem-spring:

  • Extract ProblemResponseErrorHandler and ProblemRestTemplateCustomizer to belgif-rest-problem-spring-boot-2 and belgif-rest-problem-spring-boot-3 to fix NoSuchMethodError compatibility issue

Version 0.12

belgif-rest-problem:

  • Add internationalization support for localized detail messages based on Accept-Language HTTP request header

  • Don’t include null (issue) input values when serializing

  • Replace urn:problem-type:cbss:input-validation:referencedResourceNotFound by standardized urn:problem-type:belgif:input-validation:referencedResourceNotFound

  • Add fluent setter methods:

    • Problem: detail, href, instance, additionalProperties

    • InputValidationProblem: issues

    • RetryAfterProblem: retryAfter, retryAfterSec

  • Improve WWW-Authenticate header for token-related problem types:

    • Support setting the "realm" attribute

    • Add "error_description" and "scope" attributes for missing_scope

belgif-rest-problem-spring:

  • Fix compatibility issue with Spring Boot 3.4

belgif-rest-problem-quarkus:

  • New module for Quarkus support (only in JVM mode)

belgif-rest-problem-bom:

  • Added jakarta classifier artifacts

Version 0.11

belgif-rest-problem:

  • Add in(Input<?>) to InputValidationIssue for a fluent single input setter

belgif-rest-problem-spring:

  • Fix non-deterministic configuration for retrieving parameter names from Spring MVC annotations

Version 0.10

belgif-rest-problem:

  • Remove @ApplicationException annotation on Problem, because it could potentially cause compilation errors when used in combination with annotation processors

  • Disallow creation of InputValidationIssue with inputs[] of size 1

    Potentially breaking:

    • removed InputValidationIssue.setInputs(List<Input<?>> inputs)

    • removed InputValidationIssue.setInputs(Input<?>…​ inputs)

    • removed InputValidationIssue.input(Input<?> input)

belgif-rest-problem-java-ee:

  • Add EJBExceptionMapper that unwraps Problem cause, to address the removed @ApplicationException annotation

belgif-rest-problem-spring:

Version 0.9

belgif-rest-problem-bom:

  • Added Maven BOM (Bill of Materials) for dependency versions of belgif-rest-problem modules

belgif-rest-problem:

belgif-rest-problem-java-ee:

  • Ensure ProblemClientResponseFilter gets registered for JAX-RS clients

Version 0.8

belgif-rest-problem-spring:

  • Map HttpRequestMethodNotSupportedException to HTTP 405 "Method Not Allowed" + Allow HTTP header

  • Map HttpMediaTypeNotAcceptableException to HTTP 406 "Not Acceptable"

  • Map HttpMediaTypeNotSupportedException to HTTP 415 "Unsupported Media Type"

  • Sanitize BadRequestProblem detail message for HttpMessageNotReadableException

Version 0.7

belgif-rest-problem-validator:

  • Make RequestValidator extensible by introducing AbstractRequestValidator base class

belgif-rest-problem-spring:

  • Extract ProblemWebClientCustomizer to belgif-rest-problem-spring-boot-2 and belgif-rest-problem-spring-boot-3 to fix NoSuchMethodError compatibility issue

  • Add AnnotationParameterNameDiscoverer to retrieve parameter names from Spring MVC annotations for bean validation

belgif-rest-problem-java-ee:

  • Add JaxRsParameterNameProvider to retrieve parameter names from JAX-RS annotations for bean validation

Version 0.6

belgif-rest-problem-validator:

  • Fix validation for "overflow" SSINs

belgif-rest-problem-spring:

  • Make RestControllerAdvice components @ConditionalOnWebApplication

Version 0.5

belgif-rest-problem-spring:

Split into belgif-rest-problem-spring-boot-2 and belgif-rest-problem-spring-boot-3. To benefit from Spring Boot 2.x or 3.x specific features, replace dependencies to belgif-rest-problem-spring by the version-specific variant.

belgif-rest-problem-spring-boot-3:

  • Map NoResourceFoundException to 404 urn:problem-type:belgif:resourceNotFound

  • Added support for RestClient API

Version 0.4

belgif-rest-problem:

  • Removed deprecated InvalidParamProblem: use InputValidationProblem, which supports both the legacy invalidParams[] and the new issues[] structure

  • Replace specific urn:problem-type:cbss:input-validation:unknownSsin issue type by generic urn:problem-type:cbss:input-validation:referencedResourceNotFound

  • Added optional replacedByHref property to replacedSsin issue type

belgif-rest-problem-validator:

  • Added requireIfPresent check for validating input(s) that must be present when a given target input is present

Version 0.3

belgif-rest-problem:

  • Removed deprecated "status" and "instance" properties from InputValidationIssue

belgif-rest-problem-spring:

  • Added support for bean validation

  • Added Jakarta EE 9/10 support: use <classifier>jakarta</classifier>

Version 0.2

belgif-rest-problem:

  • Extracted RequestValidator to separate belgif-rest-problem-validator module.

  • Added equals() and hashCode() to all Problem classes

  • Move additionalProperties from DefaultProblem to Problem

belgif-rest-problem-java-ee:

  • Added Jakarta EE 9/10 support: use <classifier>jakarta</classifier>

belgif-rest-problem-spring:

  • Remove be.fgov.kszbcss from default scanned problem type packages

  • Rename io.github.belgif.rest.problem.spring.scan-additional-problem-packages configuration property to io.github.belgif.rest.problem.scan-additional-problem-packages

documentation:

Version 0.1

Initial release under Belgif organization.