Releases: neo4j/neo4j-java-driver
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 Record
s 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
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
4.3.8
4.4.11
This is a refinement release that updates the netty dependency to address security vulnerabilities.
🔧 Dependency Management
- Update netty dependency to address CVE-2022-41881 and CVE-2022-41915. #1352
4.4.10
This is a refinement release that brings several general improvements and dependency updates.
👏 Improvements
- Release connection on reactive beginTransaction cancellation #1342
- Deprecate RevocationStrategy and introduce RevocationCheckingStrategy #1282
- Migrate to using Testcontainers #1333
🔧 Dependency Management
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 APIorg.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