Grumpyrest v0.7 Release Notes

Release Date: 2024-07-20 // almost 2 years ago
    • ⬇️ reduced minimum Java version from 20 to 17
    • 0️⃣ NullableField and OptionalFieldnow have .orElse()and .orElseGet() methods to easily provide default values.
    • ➕ Add argument checks against null to many methods
    • 👌 improve the checks against loss of precision or range when deserializing integral types
    • ➕ add toString() support to Path and PathSegment

Previous changes from v0.6

    • 📜 The order in which the lists of manually added JSON converters, parameter parsers etc. are scanned is now REVERSED!

      • converters/parsers added later now take precedence over ones added earlier. For a given type, of all converters
        that could handle that type, the one added last will be selected.
      • this allows to provide standard converters in the framework and the application code can override them just by
        ➕ adding its own converters.
      • Previously, application code had to clear the registries, then re-add all standard converters it wanted to keep.
        To override a single type (for example, change the LocalDate converter to be more lenient and make leading
        👯 zeroes optional), the list of all other standard converters would have to be cloned from the framework into
        ⚡️ application code and have to be updated every time the framework adds new standard converters.
    • ➕ added LocalDate / LocalDateTime / LocalTime JSON converters and parsers

    • ➕ added enum converters and parsers

    • ➕ added option to record converter to ignore unknown properties