diff --git a/driver/clirr-ignored-differences.xml b/driver/clirr-ignored-differences.xml
index 5ae3f844b2..5ea1d823ae 100644
--- a/driver/clirr-ignored-differences.xml
+++ b/driver/clirr-ignored-differences.xml
@@ -457,4 +457,50 @@
java.util.Optional rawCategory()
+
+ org/neo4j/driver/Driver
+ 7002
+ org.neo4j.driver.QueryTask queryTask(java.lang.String)
+
+
+
+ org/neo4j/driver/Driver
+ 7002
+ org.neo4j.driver.BookmarkManager queryTaskBookmarkManager()
+
+
+
+ org/neo4j/driver/Config
+ 7002
+ org.neo4j.driver.BookmarkManager queryTaskBookmarkManager()
+
+
+
+ org/neo4j/driver/Config$ConfigBuilder
+ 7002
+ org.neo4j.driver.Config$ConfigBuilder withQueryTaskBookmarkManager(org.neo4j.driver.BookmarkManager)
+
+
+
+ org/neo4j/driver/QueryTask
+ 8001
+
+
+
+ org/neo4j/driver/QueryTask$ResultFinisher
+ 8001
+
+
+
+ org/neo4j/driver/Driver
+ 7012
+ org.neo4j.driver.ExecutableQuery executableQuery(java.lang.String)
+
+
+
+ org/neo4j/driver/Driver
+ 7012
+ org.neo4j.driver.BookmarkManager executableQueryBookmarkManager()
+
+
diff --git a/driver/src/main/java/org/neo4j/driver/Config.java b/driver/src/main/java/org/neo4j/driver/Config.java
index 671e699cf1..5e6d8a3914 100644
--- a/driver/src/main/java/org/neo4j/driver/Config.java
+++ b/driver/src/main/java/org/neo4j/driver/Config.java
@@ -41,7 +41,6 @@
import org.neo4j.driver.net.ServerAddressResolver;
import org.neo4j.driver.util.Experimental;
import org.neo4j.driver.util.Immutable;
-import org.neo4j.driver.util.Preview;
/**
* A configuration class to config driver properties.
@@ -77,11 +76,6 @@ public final class Config implements Serializable {
private static final Config EMPTY = builder().build();
- /**
- * The {@link QueryTask} {@link BookmarkManager}.
- */
- private final BookmarkManager queryBookmarkManager;
-
/**
* User defined logging
*/
@@ -155,7 +149,6 @@ public final class Config implements Serializable {
private final MetricsAdapter metricsAdapter;
private Config(ConfigBuilder builder) {
- this.queryBookmarkManager = builder.queryBookmarkManager;
this.logging = builder.logging;
this.logLeakedSessions = builder.logLeakedSessions;
@@ -178,21 +171,6 @@ private Config(ConfigBuilder builder) {
this.metricsAdapter = builder.metricsAdapter;
}
- /**
- * A {@link BookmarkManager} implementation for the driver to use on
- * {@link Driver#queryTask(String)} method and its variants by default.
- *
- * Please note that sessions will not use this automatically, but it is possible to enable it explicitly
- * using {@link SessionConfig.Builder#withBookmarkManager(BookmarkManager)}.
- *
- * @return bookmark manager, must not be {@code null}
- * @since 5.5
- */
- @Preview(name = "Driver Level Queries")
- public BookmarkManager queryTaskBookmarkManager() {
- return queryBookmarkManager;
- }
-
/**
* Logging provider
*
@@ -361,8 +339,6 @@ public String userAgent() {
* Used to build new config instances
*/
public static final class ConfigBuilder {
- private BookmarkManager queryBookmarkManager =
- BookmarkManagers.defaultManager(BookmarkManagerConfig.builder().build());
private Logging logging = DEV_NULL_LOGGING;
private boolean logLeakedSessions;
private int maxConnectionPoolSize = PoolSettings.DEFAULT_MAX_CONNECTION_POOL_SIZE;
@@ -383,24 +359,6 @@ public static final class ConfigBuilder {
private ConfigBuilder() {}
- /**
- * Sets a {@link BookmarkManager} implementation for the driver to use on
- * {@link Driver#queryTask(String)} method and its variants by default.
- *
- * Please note that sessions will not use this automatically, but it is possible to enable it explicitly
- * using {@link SessionConfig.Builder#withBookmarkManager(BookmarkManager)}.
- *
- * @param bookmarkManager bookmark manager, must not be {@code null}
- * @return this builder
- * @since 5.5
- */
- @Preview(name = "Driver Level Queries")
- public ConfigBuilder withQueryTaskBookmarkManager(BookmarkManager bookmarkManager) {
- Objects.requireNonNull(bookmarkManager, "bookmarkManager must not be null");
- this.queryBookmarkManager = bookmarkManager;
- return this;
- }
-
/**
* Provide a logging implementation for the driver to use. Java logging framework {@link java.util.logging} with {@link Level#INFO} is used by default.
* Callers are expected to either implement {@link Logging} interface or provide one of the existing implementations available from static factory
diff --git a/driver/src/main/java/org/neo4j/driver/Driver.java b/driver/src/main/java/org/neo4j/driver/Driver.java
index ddd278a7bf..25db420f9c 100644
--- a/driver/src/main/java/org/neo4j/driver/Driver.java
+++ b/driver/src/main/java/org/neo4j/driver/Driver.java
@@ -65,24 +65,24 @@
*/
public interface Driver extends AutoCloseable {
/**
- * Creates a new {@link QueryTask} instance that executes a query in a managed transaction with automatic retries on
+ * Creates a new {@link ExecutableQuery} instance that executes a query in a managed transaction with automatic retries on
* retryable errors.
*
* @param query query string
- * @return new query task instance
- * @since 5.5
+ * @return new executable query instance
+ * @since 5.7
*/
@Preview(name = "Driver Level Queries")
- QueryTask queryTask(String query);
+ ExecutableQuery executableQuery(String query);
/**
- * Returns an instance of {@link BookmarkManager} used by {@link QueryTask} instances by default.
+ * Returns an instance of {@link BookmarkManager} used by {@link ExecutableQuery} instances by default.
*
* @return bookmark manager, must not be {@code null}
- * @since 5.6
+ * @since 5.7
*/
@Preview(name = "Driver Level Queries")
- BookmarkManager queryTaskBookmarkManager();
+ BookmarkManager executableQueryBookmarkManager();
/**
* Return a flag to indicate whether or not encryption is used for this driver.
diff --git a/driver/src/main/java/org/neo4j/driver/QueryTask.java b/driver/src/main/java/org/neo4j/driver/ExecutableQuery.java
similarity index 88%
rename from driver/src/main/java/org/neo4j/driver/QueryTask.java
rename to driver/src/main/java/org/neo4j/driver/ExecutableQuery.java
index 2c395a6a8c..2ecce9ebe8 100644
--- a/driver/src/main/java/org/neo4j/driver/QueryTask.java
+++ b/driver/src/main/java/org/neo4j/driver/ExecutableQuery.java
@@ -29,22 +29,21 @@
import org.neo4j.driver.util.Preview;
/**
- * A task that executes a query in a managed transaction with automatic retries on retryable errors.
+ * An executable query that executes a query in a managed transaction with automatic retries on retryable errors.
*
* This is a high-level API for executing a query. There are more advanced APIs available.
* For instance, {@link Session}, {@link Transaction} and transaction functions that are accessible via
* methods like {@link Session#executeWrite(TransactionCallback)}, {@link Session#executeWriteWithoutResult(Consumer)}
* and {@link Session#executeRead(TransactionCallback)} (there are also overloaded options available).
*
- * Causal consistency is managed via driver's {@link BookmarkManager} that is enabled by default and may
- * be replaced using {@link Config.ConfigBuilder#withQueryTaskBookmarkManager(BookmarkManager)}. It is also possible
+ * Causal consistency is managed via driver's {@link BookmarkManager} that is enabled by default. It is possible
* to use a different {@link BookmarkManager} or disable it via
* {@link QueryConfig.Builder#withBookmarkManager(BookmarkManager)} on individual basis.
*
* Sample usage:
*
* {@code
- * var eagerResult = driver.queryTask("CREATE (n{field: $value}) RETURN n")
+ * var eagerResult = driver.executableQuery("CREATE (n{field: $value}) RETURN n")
* .withParameters(Map.of("value", "5"))
* .execute();
* }
@@ -72,13 +71,13 @@
* {@code
* import static java.util.stream.Collectors.*;
*
- * var averagingLong = driver.queryTask("UNWIND range(0, 5) as N RETURN N")
+ * var averagingLong = driver.executableQuery("UNWIND range(0, 5) as N RETURN N")
* .execute(averagingLong(record -> record.get("N").asLong()));
*
- * var filteredValues = driver.queryTask("UNWIND range(0, 5) as N RETURN N")
+ * var filteredValues = driver.executableQuery("UNWIND range(0, 5) as N RETURN N")
* .execute(mapping(record -> record.get("N").asLong(), filtering(value -> value > 2, toList())));
*
- * var maxValue = driver.queryTask("UNWIND range(0, 5) as N RETURN N")
+ * var maxValue = driver.executableQuery("UNWIND range(0, 5) as N RETURN N")
* .execute(mapping(record -> record.get("N").asLong(), maxBy(Long::compare)));
* }
*
@@ -90,32 +89,32 @@
*
* private record ResultValue(List keys, Set values, ResultSummary summary) {}
*
- * var result = driver.queryTask("UNWIND range(0, 5) as N RETURN N")
+ * var result = driver.executableQuery("UNWIND range(0, 5) as N RETURN N")
* .execute(Collectors.mapping(record -> record.get("N").asLong(), toSet()), ResultValue::new);
* }
*
*
- * @since 5.5
+ * @since 5.7
*/
@Preview(name = "Driver Level Queries")
-public interface QueryTask {
+public interface ExecutableQuery {
/**
* Sets query parameters.
*
* @param parameters parameters map, must not be {@code null}
- * @return a new query task
+ * @return a new executable query
*/
- QueryTask withParameters(Map parameters);
+ ExecutableQuery withParameters(Map parameters);
/**
* Sets {@link QueryConfig}.
*