JDBI v3.3.0 Release Notes

    • ๐Ÿ†• New API
      • SerializableTransactionRunner.setOnFailure(), setOnSuccess() methods allow callbacks to be registered to observe transaction success and failure.
      • JdbiRule.migrateWithFlyway() chaining method to run Flyway migrations on the test database prior to running tests.
      • @UseStringSubstitutorTemplateEngine SQL object annotation.
      • @Beta annotation to identify non-final APIs.
      • Application developers are invited to try out beta APIs and provide feedback to help us identify weaknesses and make improvements before new APIs are made final.
      • Library maintainers are discouraged from using beta APIs, as this might lead to ClassNotFoundExceptions or NoSuchMethodExceptions at runtime whenever beta APIs change.
    • ๐Ÿ‘Œ Improvements
      • Added some extra javadoc to SqlLogger
      • @UseTemplateEngine now works with MessageFormatTemplateEngine and StringSubstitutorTemplateEngine
    • ๐Ÿ› Bug fixes
      • SqlStatement.bindMethods() (and @BindMethods) now selects the correct method when the method return type is generic.
      • mapToMap() no longer throws an exception on empty resultsets when ResultProducers.allowNoResults is true
    • ๐Ÿ’ฅ Breaking changes
      • Remove JdbiRule.createJdbi() in favor of createDataSource(). This was necessary to facilitate the migrateWithFlyway() feature above, and pave the way for future additions.
      • Remove SqlLogger.wrap() added in 3.2.0 from public API.
      • Convert MessageFormatTemplateEngine from an enum to a plain class with a public constructor. The INSTANCE enum constant has been likewise removed.
      • Remove StringSubstitutorTemplateEngine.defaults(), .withCustomizer() factory methods, in favor of the corresponding public constructors.