Skip to content

6.0.0-M02

Pre-release
Pre-release
Compare
Choose a tag to compare
@michael-simons michael-simons released this 19 Mar 10:15
· 38 commits to main since this release

What's Changed

The second milestone includes several important updates, among them the fact that we now ship a BOM module, which makes it really easy to import all artifacts of the driver in a consistent way in any Maven or Gradle build.

Also we would like to highlight the fact that we now can

  • chain SQL translators
  • use INSERT..RETURNING statements, that will automatically be translated to Cypher
  • use character and binary streams as well as big decimals for prepared statements
  • propagate readyOnly correctly into the Bolt layer

While you can always use a modern Java 8+ time type, we aligned the classic way of using java.sql.Date and java.sql.Time and the corresponding methods on the prepared statement and results that take in an additional Calendar instance for building timezone information with the way dates, times and date times work in Neo4j.

Additionally, we tested the binaries we have now with more tooling. We have been able to successfully use the driver within:

  • DBeaver
  • IntelliJ DataGrip
  • KNime
  • Apache Nifi
  • Tableau

Full list of changes since 6.0.0-M01:

🚀 Features

  • de23fac feat: Add support for strpos and position (SqlToCyper). (#570)
  • 7a09ab7 feat: Add possibility to specify translator factories directly. (#568)
  • 39549b4 feat: Implement Connection Network Timeout. (#564)
  • 7f25d41 feat: Implement setCharacterStream, setBinaryStream and related. (#546)
  • ea68d7a feat: Add support for chaining SQL translators.
  • 1be830d feat: Add support for INSERT…RETURNING statements.

🐛 Bug Fixes

  • 4926da2 fix: Propagate the readOnly property to the Bolt transaction. (#544)
  • 306d0e3 fix: Return the maximum precision for INTEGER and FLOAT properties. (#535)

🔄️ Refactorings

  • 6932cc2 refactor: Manage flatten-plugin proper.
  • 387483e refactor: Remove duplicate exposed port in Stub Server (#569)
  • d85a767 refactor: Address code quality issues. (#565)
  • 303b2c0 refactor: Fully test ResultSetImpl contract. (#563)
  • cce2a30 refactor: Add a top-level BOM project for easy consumption of the produced binaries. (#562)
  • a38f66a refactor: Add a test for objects that not coerceable to strings. (#561)
  • 9016cb2 refactor: Remove trailing dots from exception messages. (#560)
  • e93d810 refactor: Make sure result set can only be consumed once, add test for empty result set meta data (#559)
  • 53f6c61 refactor: Align date, time and timestamp mapping in and out, provide BigDecimal support. (#547)
  • 4a2d402 refactor: Address all Maven, Javac and JavaDoc warnings, and surpress banners where applicable. (#545)
  • 6caa1e6 refactor: Ensure nativeSQL still does access the right chain of translators.
  • 62807a6 refactor: Extract all metadata queries used into a separate resource. (#530)

📝 Documentation

  • a9ad923 docs: Document supported SQL dialects.

🧰 Tasks

  • 0c66c7a chore: Use correct version numbers in all @since tags.
  • 6fc8a8b chore: Add a code of conduct.
  • 19476b2 chore: Add a test that scalar properties are handled according to spec. (#533)
  • ae22117 chore: Add dedicated tests that all properties are correctly deserialized. (#532)
  • f49786a chore: Add dedicated test for retrieving element ids and ids. (#531)

🧹 Housekeeping

  • ec040ea Update to Cypher-DSL 2023.9.5.
  • 1126777 Bump org.sonarsource.scanner.maven:sonar-maven-plugin (#577)
  • d26767b Bump com.puppycrawl.tools:checkstyle (#576)
  • 14aa14e Bump org.asciidoctor:asciidoctorj-pdf from 2.3.14 to 2.3.15 (#575)
  • 56293d8 Bump org.jdbi:jdbi3-bom from 3.45.0 to 3.45.1 (#574)
  • 0028fbc Bump org.moditect:moditect-maven-plugin (#573)
  • fb6ea1c build(deps-dev): Bump org.asciidoctor:asciidoctorj from 2.5.11 to 2.5.12 (#572)
  • ba2f2b6 Bump org.asciidoctor:asciidoctorj-pdf from 2.3.13 to 2.3.14 (#554)
  • b30637c Bump jakarta.xml.bind:jakarta.xml.bind-api (#551)
  • 1a730bc Bump quarkus.platform.version from 3.8.1 to 3.8.2 (#550)
  • d210634 Bump org.testcontainers:testcontainers-bom (#549)
  • c1b6467 Bump org.openapitools:openapi-generator-maven-plugin (#557)
  • 4e35220 Bump com.github.siom79.japicmp:japicmp-maven-plugin (#556)
  • 5a305d3 Bump io.github.git-commit-id:git-commit-id-maven-plugin (#555)
  • 572c89c Bump com.github.ekryd.sortpom:sortpom-maven-plugin (#553)
  • 7488812 Bump org.jooq:jooq from 3.19.5 to 3.19.6 (#552)
  • edce700 Bump org.apache.maven.plugins:maven-assembly-plugin (#558)
  • 4b996b8 Bump org.mockito:mockito-core from 5.10.0 to 5.11.0 (#540)
  • 3e18f30 Bump quarkus.platform.version from 3.7.4 to 3.8.1 (#539)
  • 417228c Bump org.jreleaser:jreleaser-maven-plugin (#538)
  • 69b89ab Bump com.puppycrawl.tools:checkstyle (#537)

🛠 Build

  • 0afc54a build: Exclude benchkit from security checks.
  • dcf5549 build: Update cache action to v4.
  • 67e90e3 build: Add semantic versioning checks to verification.
  • fc05cb0 build: Use Mockito bom.
  • 6a824d1 build: Don’t generate JavaDoc for benchkit and doc modules.
  • 580b5bf Add wait strategy for stub server (#571)