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