Skip to content

5.x changelog

Dmitriy Tverdiakov edited this page Jun 27, 2024 · 70 revisions

5.22.0

This release introduces a preview support for GQL-status objects and includes dependency updates.

5.22 API documentation

⭐ New Features


  • Add support for GQL-status objects #1555

🔧 Dependency Management


  • Update dependencies #1556

5.21.0

This is a planned minor update release that includes dependency updates.

5.21 API documentation

🔧 Dependency Management


  • Update dependencies #1552

5.20.0

This is a planned minor update release that includes dependency updates.

5.20 API documentation

🔧 Dependency Management


  • Update dependencies #1550

5.19.0

This release introduces mTLS support preview and includes dependency updates.

5.19 API documentation

⭐ New Features


  • Introduce mTLS support #1543

🔧 Dependency Management


  • Update dependencies #1547

5.18.0

This is a planned minor update release that includes a new feature and a general improvement.

5.18 API documentation

⭐ New Features


  • Introduce an override AuthToken support to ExecutableQuery #1532

👏 Improvements


  • Add clarification to the driver close and closeAsync methods #1537

✅ Testkit


  • TestKit: Skip IPv6 test for now #1535

🔧 Dependency Management


  • Update dependencies #1538
  • Add commons-codec 1.16.1 #1539

5.17.0

This is a planned minor update release that includes several general improvements.

5.17 API documentation

👏 Improvements


  • Update bolt agent language details handling #1530
  • Fix Bolt handshake write handling and timeout management #1528
  • Fix inline logging example #1523
  • Clarify behavior of executeWriteWithoutResult() #1524

🔧 Dependency Management


  • Update dependencies #1531

5.16.0

This is a planned minor update release that includes 2 general improvements.

5.16 API documentation

👏 Improvements


  • Add transaction timeout and metadata options to QueryConfig #1506
  • Fix liveness checking for unresponsive connections #1514

🔧 Dependency Management


  • Update dependencies #1526

5.15.0

This is a planned minor update release that includes several general improvements.

5.15 API documentation

👏 Improvements


  • Rename reflection-config.json to reflect-config.json #1507
  • Update build-resources to 5.13.0 and update license headers #1497

✅ Testkit


  • Update Dockerfile #1501
  • Update TestkitRequestProcessorHandler to adhere to req/res pattern #1500
  • Update ResponseQueueHanlder to handle multiple requests sequentially #1503

🔧 Dependency Management


  • Update dependencies #1508

5.14.0

This release makes the AuthToken rotation and session auth support API GA. #1495

In addition, 2 new notification categories have been introduced. Please note that a compatible server version is required to use the new categories. #1490

5.14 API documentation

👏 Improvements


  • Make AuthToken rotation and session auth support API GA #1495
  • Add SECURITY and TOPOLOGY notification categories #1490
  • Migrate to 2023.2.3 inspection engine #1494

🔧 Dependency Management


  • Update dependencies #1496

5.13.0

This is a planned minor update release that includes a new feature and several general improvements.

5.13 API documentation

⭐ New Features


  • Introduce Api Telemetry #1487

👏 Improvements


  • Improve transaction timeout docs #1486
  • Docs: improve wording around transaction timeout #1488

🔧 Dependency Management


  • Update dependencies #1489

5.12.0

This release includes an optimisation that removes a network roundtrip in the ExecutableQuery. #1482

By removing the round trip when using the ExecutableQuery the network overhead of running the query is reduced by up to 1/3rd. Most benefit will be seen when running lots of single queries with few records that complete quickly on the server.

In addition, the token rotation API has been updated. #1481

5.12 API documentation

👏 Improvements


  • Introduce BEGIN message pipelining in ExecutableQuery #1482
  • Update AuthToken rotation to support more auth types #1481
  • Update JUnit to 5.10.0, Surefire to 3.1.2 and Failsafe to 3.1.2 #1473
  • Refactoring #1474 #1475 #1476 #1477
  • Introduce inspection profile #1478

🔧 Dependency Management


  • Update dependencies #1483

5.11.0

This update introduces cancellation support to the ReactiveSession.run methods. This aims to ensure that the transaction is rolled back and the acquired connection is returned back to the connection pool. #1457

In addition, the driver will round up sub millisecond values in the transaction timeout configuration. #1451

Furthermore, an experimental BlockHound integration has been introduced. #1450

5.11 API documentation

👏 Improvements


🔧 Dependency Management


  • Update dependencies #1471

5.10.0

This is a planned minor update release that includes several general improvements.

5.10 API documentation

👏 Improvements


  • Notify handlers of a failure on graceful pool closure #1442
  • Fix logging IP version 6 addresses with scope in RediscoveryImpl #1435
  • Update Maven to 3.9.2 #1434
  • Update version #1440
  • Update version to 5.9-SNAPSHOT #1431

🔧 Dependency Management


  • Update dependencies #1438
  • Set Logback to 1.2.12 #1441

5.9.0

This is a planned minor update release that includes a new feature and several general improvements.

5.9 API documentation

⭐ New Features


  • Introduce bolt_agent #1424

👏 Improvements


  • Set versions-maven-plugin to 2.15.0 #1420
  • Throw exception upon returning Result in managed transaction API #1422
  • Update invalid bookmark tests #1426

🔧 Dependency Management


  • Update dependencies #1430

5.8.0

This release introduces a new preview feature called AuthToken rotation and session auth support. See a dedicated discussion for more details.

In addition, the following APIs have been moved out of the preview status to GA:

  • Bookmark Manager API
  • Driver Level Queries API

5.8 API documentation

⭐ New Features


  • Introduce AuthToken rotation and session auth support #1380 #1409
  • Make Bookmark Manager API GA #1408
  • Make Driver Level Queries API GA #1407

👏 Improvements


  • Include NotificationConfig on BEGIN message for bolt scheme #1404
  • Update version to 5.8-SNAPSHOT #1403
  • Fix build warnings #1418

✅ Testkit


  • Allow null access mode in Testkit NewSession #1405
  • Introduce Testkit backend logging level support #1406
  • Update Teskit Dockerfile #1412

🔧 Dependency Management


  • Update dependencies #1417

5.7.0

The main feature of the new release is an ability to specify notifications configuration.

It is now possible to configure a minimum notification severity level and/or a set of disabled notification categories to manage notifications supplied by the server both on the driver level and on the session level. It is also possible to disable all notifications.

For more details on this feature, please see the #1396 update and the API documentation.

The org.neo4j.driver:neo4j-java-driver-all artifact includes an explicit module declaration for Java Platform Module System (JMPS).

5.7 API documentation

⭐ New Features


  • Introduce notification configuration, severity and category #1396

👏 Improvements


  • Introduce a preview feature status #1400
  • Seal AuthToken interface #1389
  • Export org.neo4j.driver.exceptions.value #1395
  • Align driver with latest revision of ExecuteQuery ADR #1377
  • Use moditect plugin to re-add module-info after it has been nuked by the shade plugin #1348
  • Make the shaded artifact compile as a module #1388
  • Update Maven SCM data #1384
  • Update version to 5.7-SNAPSHOT #1386
  • Update TemporalUtil.EXCLUDED_ZONE_IDS for testing #1392
  • Add temporary internal only reset capability #1394
  • [Internal] Allow interrupt for already interrupted transaction #1397

✅ Testkit


  • Fix skipped test name #1391
  • Remove whitelisted Testkit server configs #1399
  • TestKit: skip bolt handshake timeout tests #1398

🔧 Dependency Management


  • Update dependencies #1402

5.6.0

This is a planned minor update release that includes several general improvements.

👏 Improvements


  • Unmark TypeSystem as experimental #1376
  • Update internal driver clock usage #1375
  • Rename Driver.queryBookmarkManager() to Driver.queryTaskBookmarkManager() #1373
  • Update clirr configuration to check against previous version #1381
  • Improve Javadoc #1382
  • Update version to 5.5-SNAPSHOT #1370

🔧 Dependency Management


  • Update dependencies #1383

5.5.0

The main feature of this release is a new experimental API that offers a convenient query execution option within a managed transaction with automatic retries on errors eligible for retrying.

Sample usage:

var eagerResult = driver.queryTask("CREATE (n{field: $value}) RETURN n")
                    .withParameters(Map.of("value", "5"))
                    .execute();

In addition, it is also possible to provide a java.util.stream.Collector implementation to collect Records to a desired final value:

var result = driver.queryTask("UNWIND range(0, 5) as N RETURN N")
        .execute(Collectors.mapping(record -> record.get("N").asLong(), Collectors.toList()));

See the QueryTask documentation for more details.

If you would like to share your feedback on this new API, please see the following discussion.

⭐ New Features


👏 Improvements


  • Stop printing stacktrace in GraphDatabaseTest #1364

🔧 Dependency Management


  • Update dependencies #1368

5.4.0

This is a planned minor update release.

👏 Improvements


  • Update supported versions in README #1363

🔧 Dependency Management


  • Update Mockito to 4.11.0 #1362

5.3.1

This is a mainly an internal refinement release that brings several improvements and dependency updates.

👏 Improvements


  • Release connection on reactive beginTransaction cancellation #1341
  • Exclude test code in snyk code analysis #1344
  • Allow supplying a Rediscovery implementation #1350
  • Update Testkit tests Docker setup #1351
  • Make more error codes fail fast during the rediscovery #1354
  • Add 2 access options to Config and refactor DriverFactory #1356
  • Update maven-bundle-plugin to 5.1.8 #1357

✅ Testkit


  • TestKit backend: except txMeta as Cypher types #1349

🔧 Dependency Management


  • Update dependencies #1358

5.3.0

This is a refinement release that brings several improvements and dependency updates.

The BookmarkManager API has been simplified by removing the need of specifying the database.

Please also see the NODES 2022 session recording that goes over the version 5 updates.

👏 Improvements


  • Update Bookmark Manager for no longer tracking per database #1335
  • Update SessionConfig.withDatabase documentation #1334 #1336 #1337
  • Fix shouldGetSystemUpdates test #1338
  • Update to 5.2-SNAPSHOT #1329

🔧 Dependency Management


  • Update dependencies #1339

5.2.0

This is a refinement release that brings several new features, improvements and dependency updates.

This update introduces a new reactive session org.neo4j.driver.reactivestreams.ReactiveSession that is similar to the deprecated org.neo4j.driver.reactive.RxSession and includes improvements introduced with org.neo4j.driver.reactive.ReactiveSession.

Following these updates, the driver supports 2 reactive sessions:

  • org.neo4j.driver.reactive.ReactiveSession - uses Java Flow API
  • org.neo4j.driver.reactivestreams.ReactiveSession - uses Reactive Streams API

In addition, this update brings new methods for session instantiation. See the sample usage below:

var synchronousSession = driver.session(Session.class);
var asynchronousSession = driver.session(AsyncSession.class);
var reactiveSession1 = driver.session(org.neo4j.driver.reactive.ReactiveSession.class);
var reactiveSession2 = driver.session(org.neo4j.driver.reactivestreams.ReactiveSession.class);
var reactiveSession3 = driver.session(org.neo4j.driver.reactive.RxSession.class);

The following methods have been deprecated:

  • asyncSession
  • reactiveSession

Driver's TypeSystem is now accessible via TypeSystem.getDefault().

⭐ New Features


  • Introduce new session instantiation methods #1326
  • Introduce new Reactive Streams session #1325
  • Add getInstance to TypeSystem #1323

👏 Improvements


  • Update changelog location in README #1318
  • Update examples #1322
  • Add versioning information to readme #1327

🔧 Dependency Management


  • Update dependencies #1328

5.1.0

This is a refinement release that brings several general improvements and dependency updates.

👏 Improvements


  • Delete superflous subsitutions #1312
  • Make container runtime expected in build environment #1315

✅ Testkit


  • Pin testkit version to 5.0 #1313

🔧 Dependency Management


  • Update dependencies #1316

5.0.0

This release brings news features, general improvements and dependency updates.

The driver has been upgraded to Java 17 and it is the baseline Java version for this release.

The org.neo4j.driver:neo4j-java-driver artifact no longer includes shaded Netty and Project Reactor dependencies and replaces the org.neo4j.driver:neo4j-java-driver-slim introduced in 4.4 series.

A new org.neo4j.driver:neo4j-java-driver-all artifact includes shaded Netty and Project Reactor dependencies dependencies and is similar to the original packaging of the org.neo4j.driver:neo4j-java-driver before this update.

The org.neo4j.driver:neo4j-java-driver includes an explicit module declaration for Java Platform Module System (JMPS). The module name remains unchanged.

A new ReactiveSession has been introduced that includes API improvement and is based on Java Flow API. The RxSession has been deprecated.

A RetryableException marker interface has been introduced to enable easier checking of retryable driver exceptions.

A new experimental BookmarkManager feature has been introduced to allow simpler bookmark management, including multi-session level. This is an opt-in feature that is available via SessionConfig.

See the lists below for more details and links to updates.

⭐ New Features


  • Introduce BookmarkManager #1285 #1290 #1291 #1292 #1296
  • Add support for sending datetime values in UTC #1247
  • Add 5.0 changelog to README #1232
  • Make BasicPullResponseHandler support emitting signals in and out lock #1233
  • Deprecate GraphDatabase.routingDriver #1239
  • Add licenses verification #1238
  • Update tests using dbms.listTransactions() #1244
  • Add transaction interruption support for internal use #1242
  • Add support for multiple certificate files #1153
  • Micrometer metrics #1137
  • Add support for Bolt 5 #1181
  • Add exceptions to numeric id accessors in nodes and relationships #1192
  • Introduce new managed transaction methods and deprecate existing ones #1196
  • Introduce new reactive session with updated API #1208 #1295
  • Update bookmarks API #1211
  • Add RetryableException interface #1219

👏 Improvements


  • Update to Java 17 #1264
  • Update native-image.properties #1265
  • Update Neo4j build-resources and delete build/notice-asl-prefix.txt #1272
  • Defer unknown zone information failures to datetime value access stage #1273
  • Enable compilation failures on warnings #1275 #1276 #1277 #1279 #1302
  • Add Java module declaration for neo4j-java-driver #1274
  • Update RevocationStrategy name to RevocationCheckingStrategy #1283
  • Delete deprecated routingDriver #1289
  • Add final to public API #1293
  • Update shouldExposeResultSummaryForExplainQuery test assertions #1299
  • Turn off hostname verification for trustAllCertificates TrustStrategy #1301
  • Wrap checked exceptions when rethrowing async exception #1245
  • Delete Neo4jException.neo4jErrorCode and update documentation #1249
  • Update Neo4jSettings for 5.0 server #1254
  • Migrate tests depending on Boltkit to use Docker #1256
  • Remove null handling for Node/Relationship Ids #1240
  • Do not allow mixing UTC and legacy datetime and throw ProtocolException on unknown struct types #1260
  • Turn off UTC tests until server implementation is available #1262
  • Update Java driver to 5.0 #1099
  • Exclude US/Pacific-New from randomized timezones #1105
  • fix: Check for equality of value instead of equality of instance #1100
  • Update readme to include command for running Testkit test #1106
  • Allow tx timeout to be 0 or null #1108
  • Add transaction close support to async and reactive APIs #1119
  • Remove deprecated ServerVersion #1126
  • Delete InitMessage and RunMessage #1129
  • Make MapAccessorWithDefaultValue extend MapAccessor #1148
  • Delete Session.reset #1149
  • Delete ConfigBuilder.withRoutingFailureLimit and ConfigBuilder.withRoutingRetryDelay #1151
  • Permit dev agent suffix in tests and update password management #1159
  • Update tests to reflect breaking changes in 5.0 #1163
  • Add safety checks to Config.TrustStrategy.trustCustomCertificateSignedBy #1172
  • Add substitutions for DriverFactory#getOrCreateMetricsProvider #1189
  • Add ability of checking if result handle is open #1194
  • Fix more test that fail due to cypher deprecation removals #1167
  • Avoid TrustManagerFacotry.init(ManagerFactoryParameters var1) if no OSCP has been configured #1168
  • Throw ProtocolException when QueryType is unknown #1193
  • Migrate LoadCSVIT to CALL {} IN TRANSACTIONS for newer server #1200
  • Expose transaction open status in AsyncTransaction and RxTransaction #1199
  • Fix server configuration affecting 5.0 builds #1212
  • Migrate RoutingExamplesIT to Testcontainers #1215
  • Update LoadCSVIT.shouldLoadCSV to work with 5.0 #1216
  • Add Pacific/Kanton to EXCLUDED_ZONE_IDS in tests #1217
  • Add Asia/Gaza to EXCLUDED_ZONE_IDS in tests #1218
  • Add Antarctica/Macquarie to EXCLUDED_ZONE_IDS in tests #1221
  • Stop shading dependencies in neo4j-java-driver package #1222
  • Migrate java-driver-rx-tck #1224
  • Add TCK tests for ReactiveResult and ReactiveResult Record #1226
  • Add spotless-maven-plugin for Java formatting #1227
  • Add flag for CausalClusteringStressIT #1220

✅ Testkit


  • Skip more unknown timezone tests #1269
  • Reduce build log sizes by removing download progress stats #1271
  • Add TestKit test skip #1281
  • Unskip test_trusted_ca_correct_hostname #1251
  • TestKit backend: add full support for temporal types #1257
  • Add Temporary:CypherPathAndRelationship support in Testkit backend #1107
  • Add Temporary:FullSummary support in Testkit backend #1109
  • Add Temporary:ResultKeys support in Testkit backend #1113
  • TestKit: send error message or driver creation error #1125
  • Add Result.peek support to TestKit back end #1110
  • Un-skip test_should_reject_server_using_verify_connectivity_bolt_3x0 in async backend #1127
  • Enable Optimization:EagerTransactionBegin #1150
  • Add support for Feature:API:Driver.IsEncrypted Testkit feature #1152
  • Add support for Feature:TLS:1.3 Testkit feature #1155
  • TestKit tx lifetime #1154
  • Remove 4.0 Testkit feature flag #1135
  • Fix missing exception conversion in TestKit backend #1175
  • Remove "Temporary:ConnectionAcquisitionTimeout" TestKit flag #1179
  • Add support for Optimization:ImplicitDefaultArguments feature #1201
  • TestKit: remove temporary feature flags #1206
  • Implement result single in sync and async Testkit backends #1210
  • Skip test_trusted_ca_correct_hostname test #1213
  • Migrate ITs to Testkit #1214

🔧 Dependency Management


5.0.0-beta01

This is a refinement release that brings news features, general improvements and dependency updates.

⭐ New Features


👏 Improvements


  • Update to Java 17 #1264
  • Update native-image.properties #1265
  • Update Neo4j build-resources and delete build/notice-asl-prefix.txt #1272
  • Defer unknown zone information failures to datetime value access stage #1273
  • Enable compilation failures on warnings #1275 #1276 #1277 #1279 #1302
  • Add Java module declaration for neo4j-java-driver #1274
  • Update RevocationStrategy name to RevocationCheckingStrategy #1283
  • Delete deprecated routingDriver #1289
  • Add final to public API #1293
  • Update shouldExposeResultSummaryForExplainQuery test assertions #1299
  • Turn off hostname verification for trustAllCertificates TrustStrategy #1301

✅ Testkit


  • Skip more unknown timezone tests #1269
  • Reduce build log sizes by removing download progress stats #1271
  • Add TestKit test skip #1281

🔧 Dependency Management


  • Update dependencies #1304

5.0.0-alpha03

This is a refinement release that brings a new feature, several general improvements and dependency updates.

⭐ New Features


  • Add support for sending datetime values in UTC #1247

👏 Improvements


  • Wrap checked exceptions when rethrowing async exception #1245
  • Delete Neo4jException.neo4jErrorCode and update documentation #1249
  • Update Neo4jSettings for 5.0 server #1254
  • Migrate tests depending on Boltkit to use Docker #1256
  • Remove null handling for Node/Relationship Ids #1240
  • Do not allow mixing UTC and legacy datetime and throw ProtocolException on unknown struct types #1260
  • Turn off UTC tests until server implementation is available #1262

✅ Testkit


  • Unskip test_trusted_ca_correct_hostname #1251
  • TestKit backend: add full support for temporal types #1257

🔧 Dependency Management


  • Update dependencies #1261

5.0.0-alpha02

This is a refinement release that brings several general improvements and dependency updates.

👏 Improvements


  • Add 5.0 changelog to README #1232
  • Make BasicPullResponseHandler support emitting signals in and out lock #1233
  • Deprecate GraphDatabase.routingDriver #1239
  • Add licenses verification #1238
  • Update tests using dbms.listTransactions() #1244
  • Add transaction interruption support for internal use #1242

🔧 Dependency Management


  • Update dependencies #1243

5.0.0-alpha01

This is the first alpha release that provides a preview of the new features and general improvements.

⭐ New Features


  • Add support for multiple certificate files #1153
  • Micrometer metrics #1137
  • Add support for Bolt 5 #1181
  • Add exceptions to numeric id accessors in nodes and relationships #1192
  • Introduce new managed transaction methods and deprecate existing ones #1196
  • Introduce new reactive session with updated API #1208
  • Update bookmarks API #1211
  • Add RetryableException interface #1219

👏 Improvements


  • Update Java driver to 5.0 #1099
  • Exclude US/Pacific-New from randomized timezones #1105
  • fix: Check for equality of value instead of equality of instance #1100
  • Update readme to include command for running Testkit test #1106
  • Allow tx timeout to be 0 or null #1108
  • Add transaction close support to async and reactive APIs #1119
  • Remove deprecated ServerVersion #1126
  • Delete InitMessage and RunMessage #1129
  • Make MapAccessorWithDefaultValue extend MapAccessor #1148
  • Delete Session.reset #1149
  • Delete ConfigBuilder.withRoutingFailureLimit and ConfigBuilder.withRoutingRetryDelay #1151
  • Permit dev agent suffix in tests and update password management #1159
  • Update tests to reflect breaking changes in 5.0 #1163
  • Add safety checks to Config.TrustStrategy.trustCustomCertificateSignedBy #1172
  • Add substitutions for DriverFactory#getOrCreateMetricsProvider #1189
  • Add ability of checking if result handle is open #1194
  • Fix more test that fail due to cypher deprecation removals #1167
  • Avoid TrustManagerFacotry.init(ManagerFactoryParameters var1) if no OSCP has been configured #1168
  • Throw ProtocolException when QueryType is unknown #1193
  • Migrate LoadCSVIT to CALL {} IN TRANSACTIONS for newer server #1200
  • Expose transaction open status in AsyncTransaction and RxTransaction #1199
  • Fix server configuration affecting 5.0 builds #1212
  • Migrate RoutingExamplesIT to Testcontainers #1215
  • Update LoadCSVIT.shouldLoadCSV to work with 5.0 #1216
  • Add Pacific/Kanton to EXCLUDED_ZONE_IDS in tests #1217
  • Add Asia/Gaza to EXCLUDED_ZONE_IDS in tests #1218
  • Add Antarctica/Macquarie to EXCLUDED_ZONE_IDS in tests #1221
  • Stop shading dependencies in neo4j-java-driver package #1222
  • Migrate java-driver-rx-tck #1224
  • Add TCK tests for ReactiveResult and ReactiveResult Record #1226
  • Add spotless-maven-plugin for Java formatting #1227
  • Add flag for CausalClusteringStressIT #1220

✅ Testkit


  • Add Temporary:CypherPathAndRelationship support in Testkit backend #1107
  • Add Temporary:FullSummary support in Testkit backend #1109
  • Add Temporary:ResultKeys support in Testkit backend #1113
  • TestKit: send error message or driver creation error #1125
  • Add Result.peek support to TestKit back end #1110
  • Un-skip test_should_reject_server_using_verify_connectivity_bolt_3x0 in async backend #1127
  • Enable Optimization:EagerTransactionBegin #1150
  • Add support for Feature:API:Driver.IsEncrypted Testkit feature #1152
  • Add support for Feature:TLS:1.3 Testkit feature #1155
  • TestKit tx lifetime #1154
  • Remove 4.0 Testkit feature flag #1135
  • Fix missing exception conversion in TestKit backend #1175
  • Remove "Temporary:ConnectionAcquisitionTimeout" TestKit flag #1179
  • Add support for Optimization:ImplicitDefaultArguments feature #1201
  • TestKit: remove temporary feature flags #1206
  • Implement result single in sync and async Testkit backends #1210
  • Skip test_trusted_ca_correct_hostname test #1213
  • Migrate ITs to Testkit #1214

🔧 Dependency Management


  • Upgrade to Logback Classic 1.2.8 for test dependencies #1104
  • Update SVM tools to 21.3.0 #1122
  • Update dependencies #1130
  • Update mockito-core to 4.3.1 #1160
  • Update dependencies #1178 #1229
  • Update netty-handler to 4.1.75.Final #1190
Clone this wiki locally