JDBI 3.38.0
With three RCs and over 15,000 lines of changed code, 3.38.0 turned out to be a massive release:
Large refactorings
- rewrite the core extension framework, move functionality from sqlobject to core
- rewrite sqlobject and the generator to use the new extension framework, deprecate functionality that moved to the core
Bug fixes
- fix
GenericType
creation in parameterized classes (#2305) - fix problem when using the jdbi bom in spring projects (#2295, thanks @jedvardsson)
- StringTemplate engine: handle st4 errors rather than logging to stderr. Allow configuring missing attribute as a fatal error
Improvements and new functionality
- add
SqlStatements#setAttachAllStatementsForCleanup
. Setting this configuration flag will attach all created statements to their handles for resource cleanup. Default isfalse
. (#2293, thanks @jodastephen) - add
SqlStatements#setAttachCallbackStatementsForCleanup
. Setting this configuration flag will attach all created statements within one of theJdbi
callback methods to the handle. This allows code that uses theJdbi
callback methods to delegate resource management fully to Jdbi. This flag is set by default. (#2293, thanks @jodastephen) - add
JdbiExecutor
for async Jdbi operations (#2280, thanks @leblonk) - ResultIterable methods:
set()
,collectToMap()
,toCollection()
,collectInto()
,collectIntoList()
,collectIntoSet()
(#2262, thanks @gpsfl) - Support Consumer<Iterable> as a consumer argument for operations that return multiple results.
Small changes
CaseStrategy
is now an official API (dropped @beta) (#2309)- rewrite
AccessibleObjectStrategy
into an enum (#2310) - allow user defined functions for message rendering (#2311)
- Helpers to make registering CollectorFactory easier
- FreemarkerEngine encourages singleton use so caching works better
Dependencies
- StringTemplate 4.3.4
- update spring framework dependency to 5.3.27 (address CVE-2023-20861, CVE-2023-20863)