diff --git a/driver/src/test/java/org/neo4j/driver/util/StdIOCapture.java b/driver/src/test/java/org/neo4j/driver/util/StdIOCapture.java index 7494b7eba5..0184ecf7c4 100644 --- a/driver/src/test/java/org/neo4j/driver/util/StdIOCapture.java +++ b/driver/src/test/java/org/neo4j/driver/util/StdIOCapture.java @@ -22,32 +22,34 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.io.UnsupportedEncodingException; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; /** * Utility that can be used to temporarily capture and store process-wide stdout and stderr output. */ -public class StdIOCapture { +public class StdIOCapture implements AutoCloseable { private final List stdout = new CopyOnWriteArrayList<>(); private final List stderr = new CopyOnWriteArrayList<>(); + private final PrintStream originalStdOut; + private final PrintStream originalStdErr; + private final ByteArrayOutputStream capturedStdOut; + private final ByteArrayOutputStream capturedStdErr; /** Put this in a try-with-resources block to capture all standard io that happens within the try block */ - public AutoCloseable capture() { - final PrintStream originalStdOut = System.out; - final PrintStream originalStdErr = System.err; - final ByteArrayOutputStream capturedStdOut = new ByteArrayOutputStream(); - final ByteArrayOutputStream capturedStdErr = new ByteArrayOutputStream(); + public static StdIOCapture capture() { + return new StdIOCapture(); + } + + private StdIOCapture() { + originalStdOut = System.out; + originalStdErr = System.err; + capturedStdOut = new ByteArrayOutputStream(); + capturedStdErr = new ByteArrayOutputStream(); System.setOut(new PrintStream(capturedStdOut)); System.setErr(new PrintStream(capturedStdErr)); - - return () -> { - System.setOut(originalStdOut); - System.setErr(originalStdErr); - stdout.addAll(asList(capturedStdOut.toString("UTF-8").split(System.lineSeparator()))); - stderr.addAll(asList(capturedStdErr.toString("UTF-8").split(System.lineSeparator()))); - }; } public List stdout() { @@ -57,4 +59,12 @@ public List stdout() { public List stderr() { return stderr; } + + @Override + public void close() throws UnsupportedEncodingException { + System.setOut(originalStdOut); + System.setErr(originalStdErr); + stdout.addAll(asList(capturedStdOut.toString("UTF-8").split(System.lineSeparator()))); + stderr.addAll(asList(capturedStdErr.toString("UTF-8").split(System.lineSeparator()))); + } } diff --git a/examples/pom.xml b/examples/pom.xml index 2902db145d..21c7cd41e0 100644 --- a/examples/pom.xml +++ b/examples/pom.xml @@ -18,6 +18,9 @@ ${project.basedir}/.. + + true + true @@ -82,13 +85,6 @@ - - org.apache.maven.plugins - maven-compiler-plugin - - - - org.apache.maven.plugins maven-javadoc-plugin diff --git a/examples/src/main/java/org/neo4j/docs/driver/AsyncAutocommitTransactionExample.java b/examples/src/main/java/org/neo4j/docs/driver/AsyncAutocommitTransactionExample.java index fefeb64521..a77113430a 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/AsyncAutocommitTransactionExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/AsyncAutocommitTransactionExample.java @@ -17,12 +17,15 @@ * limitations under the License. */ package org.neo4j.docs.driver; + // tag::async-autocommit-transaction-import[] + +import org.neo4j.driver.async.AsyncSession; + import java.util.Collections; import java.util.List; import java.util.Map; import java.util.concurrent.CompletionStage; -import org.neo4j.driver.async.AsyncSession; // end::async-autocommit-transaction-import[] public class AsyncAutocommitTransactionExample extends BaseApplication { diff --git a/examples/src/main/java/org/neo4j/docs/driver/AsyncResultConsumeExample.java b/examples/src/main/java/org/neo4j/docs/driver/AsyncResultConsumeExample.java index c8661c174b..d3fa0f54db 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/AsyncResultConsumeExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/AsyncResultConsumeExample.java @@ -20,9 +20,10 @@ // tag::async-result-consume-import[] +import org.neo4j.driver.async.AsyncSession; + import java.util.List; import java.util.concurrent.CompletionStage; -import org.neo4j.driver.async.AsyncSession; // end::async-result-consume-import[] public class AsyncResultConsumeExample extends BaseApplication { @@ -30,6 +31,7 @@ public AsyncResultConsumeExample(String uri, String user, String password) { super(uri, user, password); } + @SuppressWarnings("deprecation") // tag::async-result-consume[] public CompletionStage> getPeople() { diff --git a/examples/src/main/java/org/neo4j/docs/driver/AsyncRunMultipleTransactionExample.java b/examples/src/main/java/org/neo4j/docs/driver/AsyncRunMultipleTransactionExample.java index a241e1c287..7b108d1fe4 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/AsyncRunMultipleTransactionExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/AsyncRunMultipleTransactionExample.java @@ -20,24 +20,25 @@ // tag::async-result-consume-import[] -import static org.neo4j.driver.Values.parameters; -// end::async-result-consume-import[] - -import java.util.Arrays; -import java.util.List; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CompletionStage; import org.neo4j.driver.async.AsyncSession; import org.neo4j.driver.async.AsyncTransaction; import org.neo4j.driver.async.ResultCursor; import org.neo4j.driver.summary.ResultSummary; import org.neo4j.driver.summary.SummaryCounters; +import java.util.List; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.CompletionStage; + +import static org.neo4j.driver.Values.parameters; +// end::async-result-consume-import[] + public class AsyncRunMultipleTransactionExample extends BaseApplication { public AsyncRunMultipleTransactionExample(String uri, String user, String password) { super(uri, user, password); } + @SuppressWarnings("deprecation") // tag::async-multiple-tx[] public CompletionStage addEmployees(final String companyName) { AsyncSession session = driver.asyncSession(); @@ -53,14 +54,13 @@ private static CompletionStage> matchPersonNodes(AsyncTransaction t cursor -> cursor.listAsync(record -> record.get("name").asString())); } - private static CompletableFuture createNodes( + private static CompletionStage createNodes( AsyncTransaction tx, String companyName, List personNames) { - CompletableFuture[] nodeCreatedCounts = personNames.stream() + return personNames.stream() .map(personName -> createNode(tx, companyName, personName)) - .toArray(size -> new CompletableFuture[size]); - return CompletableFuture.allOf(nodeCreatedCounts).thenApply(ignored -> Arrays.stream(nodeCreatedCounts) - .map(CompletableFuture::join) - .reduce(0, Integer::sum)); + .reduce( + CompletableFuture.completedFuture(0), + (stage1, stage2) -> stage1.thenCombine(stage2, Integer::sum)); } private static CompletionStage createNode(AsyncTransaction tx, String companyName, String personName) { diff --git a/examples/src/main/java/org/neo4j/docs/driver/AsyncTransactionFunctionExample.java b/examples/src/main/java/org/neo4j/docs/driver/AsyncTransactionFunctionExample.java index 16cdfb9da6..6efac6db3d 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/AsyncTransactionFunctionExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/AsyncTransactionFunctionExample.java @@ -17,12 +17,15 @@ * limitations under the License. */ package org.neo4j.docs.driver; + // tag::async-transaction-function-import[] + +import org.neo4j.driver.async.AsyncSession; +import org.neo4j.driver.summary.ResultSummary; + import java.util.Collections; import java.util.Map; import java.util.concurrent.CompletionStage; -import org.neo4j.driver.async.AsyncSession; -import org.neo4j.driver.summary.ResultSummary; // end::async-transaction-function-import[] public class AsyncTransactionFunctionExample extends BaseApplication { @@ -30,6 +33,7 @@ public AsyncTransactionFunctionExample(String uri, String user, String password) super(uri, user, password); } + @SuppressWarnings("deprecation") // tag::async-transaction-function[] public CompletionStage printAllProducts() { String query = "MATCH (p:Product) WHERE p.id = $id RETURN p.title"; diff --git a/examples/src/main/java/org/neo4j/docs/driver/AsyncUnmanagedTransactionExample.java b/examples/src/main/java/org/neo4j/docs/driver/AsyncUnmanagedTransactionExample.java index f606add637..5d85672721 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/AsyncUnmanagedTransactionExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/AsyncUnmanagedTransactionExample.java @@ -17,14 +17,17 @@ * limitations under the License. */ package org.neo4j.docs.driver; + // tag::async-unmanaged-transaction-import[] + +import org.neo4j.driver.async.AsyncSession; +import org.neo4j.driver.async.AsyncTransaction; +import org.neo4j.driver.async.ResultCursor; + import java.util.Collections; import java.util.Map; import java.util.concurrent.CompletionStage; import java.util.function.Function; -import org.neo4j.driver.async.AsyncSession; -import org.neo4j.driver.async.AsyncTransaction; -import org.neo4j.driver.async.ResultCursor; // end::async-unmanaged-transaction-import[] public class AsyncUnmanagedTransactionExample extends BaseApplication { diff --git a/examples/src/main/java/org/neo4j/docs/driver/AutocommitTransactionExample.java b/examples/src/main/java/org/neo4j/docs/driver/AutocommitTransactionExample.java index 4ec6693357..16e10b516d 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/AutocommitTransactionExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/AutocommitTransactionExample.java @@ -20,11 +20,11 @@ // tag::autocommit-transaction-import[] +import org.neo4j.driver.Session; + import static org.neo4j.driver.Values.parameters; // end::autocommit-transaction-import[] -import org.neo4j.driver.Session; - public class AutocommitTransactionExample extends BaseApplication { public AutocommitTransactionExample(String uri, String user, String password) { super(uri, user, password); diff --git a/examples/src/main/java/org/neo4j/docs/driver/BaseApplication.java b/examples/src/main/java/org/neo4j/docs/driver/BaseApplication.java index 992fffb291..444fd92613 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/BaseApplication.java +++ b/examples/src/main/java/org/neo4j/docs/driver/BaseApplication.java @@ -30,7 +30,7 @@ public BaseApplication(String uri, String user, String password) { } @Override - public void close() throws Exception { + public void close() throws RuntimeException { driver.close(); } } diff --git a/examples/src/main/java/org/neo4j/docs/driver/BasicAuthExample.java b/examples/src/main/java/org/neo4j/docs/driver/BasicAuthExample.java index 5c3162418a..ffcf809ae5 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/BasicAuthExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/BasicAuthExample.java @@ -19,7 +19,6 @@ package org.neo4j.docs.driver; // tag::basic-auth-import[] - import org.neo4j.driver.AuthTokens; import org.neo4j.driver.Driver; import org.neo4j.driver.GraphDatabase; @@ -36,7 +35,7 @@ public BasicAuthExample(String uri, String user, String password) { // end::basic-auth[] @Override - public void close() throws Exception { + public void close() throws RuntimeException { driver.close(); } diff --git a/examples/src/main/java/org/neo4j/docs/driver/BearerAuthExample.java b/examples/src/main/java/org/neo4j/docs/driver/BearerAuthExample.java index 48f9062eef..51851ae37b 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/BearerAuthExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/BearerAuthExample.java @@ -19,7 +19,6 @@ package org.neo4j.docs.driver; // tag::bearer-auth-import[] - import org.neo4j.driver.AuthTokens; import org.neo4j.driver.Driver; import org.neo4j.driver.GraphDatabase; @@ -35,7 +34,7 @@ public BearerAuthExample(String uri, String bearerToken) { // end::bearer-auth[] @Override - public void close() throws Exception { + public void close() throws RuntimeException { driver.close(); } } diff --git a/examples/src/main/java/org/neo4j/docs/driver/ConfigConnectionPoolExample.java b/examples/src/main/java/org/neo4j/docs/driver/ConfigConnectionPoolExample.java index 926aeea0b2..89652e93bf 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/ConfigConnectionPoolExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/ConfigConnectionPoolExample.java @@ -17,13 +17,16 @@ * limitations under the License. */ package org.neo4j.docs.driver; + // tag::config-connection-pool-import[] -import java.util.concurrent.TimeUnit; + import org.neo4j.driver.AuthTokens; import org.neo4j.driver.Config; import org.neo4j.driver.Driver; import org.neo4j.driver.GraphDatabase; import org.neo4j.driver.Result; + +import java.util.concurrent.TimeUnit; // end::config-connection-pool-import[] public class ConfigConnectionPoolExample implements AutoCloseable { @@ -42,7 +45,7 @@ public ConfigConnectionPoolExample(String uri, String user, String password) { // end::config-connection-pool[] @Override - public void close() throws Exception { + public void close() throws RuntimeException { driver.close(); } diff --git a/examples/src/main/java/org/neo4j/docs/driver/ConfigConnectionTimeoutExample.java b/examples/src/main/java/org/neo4j/docs/driver/ConfigConnectionTimeoutExample.java index 7758828834..53ab8d5bd0 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/ConfigConnectionTimeoutExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/ConfigConnectionTimeoutExample.java @@ -20,14 +20,14 @@ // tag::config-connection-timeout-import[] -import static java.util.concurrent.TimeUnit.SECONDS; -// end::config-connection-timeout-import[] - import org.neo4j.driver.AuthTokens; import org.neo4j.driver.Config; import org.neo4j.driver.Driver; import org.neo4j.driver.GraphDatabase; +import static java.util.concurrent.TimeUnit.SECONDS; +// end::config-connection-timeout-import[] + public class ConfigConnectionTimeoutExample implements AutoCloseable { private final Driver driver; @@ -40,7 +40,7 @@ public ConfigConnectionTimeoutExample(String uri, String user, String password) // end::config-connection-timeout[] @Override - public void close() throws Exception { + public void close() throws RuntimeException { driver.close(); } } diff --git a/examples/src/main/java/org/neo4j/docs/driver/ConfigCustomResolverExample.java b/examples/src/main/java/org/neo4j/docs/driver/ConfigCustomResolverExample.java index 37f0950dab..9a2682e8da 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/ConfigCustomResolverExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/ConfigCustomResolverExample.java @@ -17,13 +17,9 @@ * limitations under the License. */ package org.neo4j.docs.driver; -// tag::config-custom-resolver-import[] -import static org.neo4j.driver.SessionConfig.builder; -import static org.neo4j.driver.Values.parameters; +// tag::config-custom-resolver-import[] -import java.util.Arrays; -import java.util.HashSet; import org.neo4j.driver.AccessMode; import org.neo4j.driver.AuthToken; import org.neo4j.driver.AuthTokens; @@ -34,7 +30,13 @@ import org.neo4j.driver.Session; import org.neo4j.driver.net.ServerAddress; +import java.util.Arrays; +import java.util.HashSet; + +import static org.neo4j.driver.SessionConfig.builder; +import static org.neo4j.driver.Values.parameters; // end::config-custom-resolver-import[] + public class ConfigCustomResolverExample implements AutoCloseable { private final Driver driver; @@ -75,7 +77,7 @@ private void addPerson(String name) { // end::config-custom-resolver[] @Override - public void close() throws Exception { + public void close() throws RuntimeException { driver.close(); } diff --git a/examples/src/main/java/org/neo4j/docs/driver/ConfigMaxRetryTimeExample.java b/examples/src/main/java/org/neo4j/docs/driver/ConfigMaxRetryTimeExample.java index 77e8a26cda..4ab5eaba99 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/ConfigMaxRetryTimeExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/ConfigMaxRetryTimeExample.java @@ -20,14 +20,14 @@ // tag::config-max-retry-time-import[] -import static java.util.concurrent.TimeUnit.SECONDS; -// end::config-max-retry-time-import[] - import org.neo4j.driver.AuthTokens; import org.neo4j.driver.Config; import org.neo4j.driver.Driver; import org.neo4j.driver.GraphDatabase; +import static java.util.concurrent.TimeUnit.SECONDS; +// end::config-max-retry-time-import[] + public class ConfigMaxRetryTimeExample implements AutoCloseable { private final Driver driver; @@ -41,7 +41,7 @@ public ConfigMaxRetryTimeExample(String uri, String user, String password) { // end::config-max-retry-time[] @Override - public void close() throws Exception { + public void close() throws RuntimeException { driver.close(); } } diff --git a/examples/src/main/java/org/neo4j/docs/driver/ConfigTrustExample.java b/examples/src/main/java/org/neo4j/docs/driver/ConfigTrustExample.java index a2ac8acda8..7bcf79a2fa 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/ConfigTrustExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/ConfigTrustExample.java @@ -19,7 +19,6 @@ package org.neo4j.docs.driver; // tag::config-trust-import[] - import org.neo4j.driver.AuthTokens; import org.neo4j.driver.Config; import org.neo4j.driver.Driver; @@ -40,7 +39,7 @@ public ConfigTrustExample(String uri, String user, String password) { // end::config-trust[] @Override - public void close() throws Exception { + public void close() throws RuntimeException { driver.close(); } } diff --git a/examples/src/main/java/org/neo4j/docs/driver/ConfigUnencryptedExample.java b/examples/src/main/java/org/neo4j/docs/driver/ConfigUnencryptedExample.java index f118f9d45e..dbc3831f5f 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/ConfigUnencryptedExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/ConfigUnencryptedExample.java @@ -19,7 +19,6 @@ package org.neo4j.docs.driver; // tag::config-unencrypted-import[] - import org.neo4j.driver.AuthTokens; import org.neo4j.driver.Config; import org.neo4j.driver.Driver; @@ -38,7 +37,7 @@ public ConfigUnencryptedExample(String uri, String user, String password) { // end::config-unencrypted[] @Override - public void close() throws Exception { + public void close() throws RuntimeException { driver.close(); } } diff --git a/examples/src/main/java/org/neo4j/docs/driver/CustomAuthExample.java b/examples/src/main/java/org/neo4j/docs/driver/CustomAuthExample.java index f4c2061113..4a2d214a33 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/CustomAuthExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/CustomAuthExample.java @@ -20,10 +20,11 @@ // tag::custom-auth-import[] -import java.util.Map; import org.neo4j.driver.AuthTokens; import org.neo4j.driver.Driver; import org.neo4j.driver.GraphDatabase; + +import java.util.Map; // end::custom-auth-import[] public class CustomAuthExample implements AutoCloseable { @@ -42,7 +43,7 @@ public CustomAuthExample( // end::custom-auth[] @Override - public void close() throws Exception { + public void close() throws RuntimeException { driver.close(); } } diff --git a/examples/src/main/java/org/neo4j/docs/driver/CypherErrorExample.java b/examples/src/main/java/org/neo4j/docs/driver/CypherErrorExample.java index a359ae864c..8dcb5db3ae 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/CypherErrorExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/CypherErrorExample.java @@ -20,20 +20,21 @@ // tag::cypher-error-import[] -import static org.neo4j.driver.Values.parameters; -// end::cypher-error-import[] - import org.neo4j.driver.Result; import org.neo4j.driver.Session; import org.neo4j.driver.Transaction; import org.neo4j.driver.TransactionWork; import org.neo4j.driver.exceptions.ClientException; +import static org.neo4j.driver.Values.parameters; +// end::cypher-error-import[] + public class CypherErrorExample extends BaseApplication { public CypherErrorExample(String uri, String user, String password) { super(uri, user, password); } + @SuppressWarnings("deprecation") // tag::cypher-error[] public int getEmployeeNumber(final String name) { try (Session session = driver.session()) { diff --git a/examples/src/main/java/org/neo4j/docs/driver/DriverIntroductionExample.java b/examples/src/main/java/org/neo4j/docs/driver/DriverIntroductionExample.java index 26f58443eb..7f0de86846 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/DriverIntroductionExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/DriverIntroductionExample.java @@ -20,11 +20,6 @@ // tag::driver-introduction-example-import[] -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; -import java.util.logging.Level; -import java.util.logging.Logger; import org.neo4j.driver.AuthTokens; import org.neo4j.driver.Config; import org.neo4j.driver.Driver; @@ -34,6 +29,12 @@ import org.neo4j.driver.Result; import org.neo4j.driver.Session; import org.neo4j.driver.exceptions.Neo4jException; + +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; // end::driver-introduction-example-import[] // tag::driver-introduction-example[] @@ -47,11 +48,12 @@ public DriverIntroductionExample(String uri, String user, String password, Confi } @Override - public void close() throws Exception { + public void close() throws RuntimeException { // The driver object should be closed before the application ends. driver.close(); } + @SuppressWarnings("deprecation") public void createFriendship(final String person1Name, final String person2Name, final String knowsFrom) { // To learn more about the Cypher syntax, see https://neo4j.com/docs/cypher-manual/current/ // The Reference Card is also a good resource for keywords https://neo4j.com/docs/cypher-refcard/current/ @@ -83,6 +85,7 @@ public void createFriendship(final String person1Name, final String person2Name, } } + @SuppressWarnings("deprecation") public void findPerson(final String personName) { String readPersonByNameQuery = "MATCH (p:Person)\n" + "WHERE p.name = $person_name\n" + "RETURN p.name AS name"; diff --git a/examples/src/main/java/org/neo4j/docs/driver/DriverLifecycleExample.java b/examples/src/main/java/org/neo4j/docs/driver/DriverLifecycleExample.java index e764eea5b7..7c15a0b19b 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/DriverLifecycleExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/DriverLifecycleExample.java @@ -19,7 +19,6 @@ package org.neo4j.docs.driver; // tag::driver-lifecycle-import[] - import org.neo4j.driver.AuthTokens; import org.neo4j.driver.Driver; import org.neo4j.driver.GraphDatabase; @@ -34,7 +33,7 @@ public DriverLifecycleExample(String uri, String user, String password) { } @Override - public void close() throws Exception { + public void close() throws RuntimeException { driver.close(); } } diff --git a/examples/src/main/java/org/neo4j/docs/driver/HelloWorldExample.java b/examples/src/main/java/org/neo4j/docs/driver/HelloWorldExample.java index 556cf1f543..50d5c8e62b 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/HelloWorldExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/HelloWorldExample.java @@ -20,15 +20,15 @@ // tag::hello-world-import[] -import static org.neo4j.driver.Values.parameters; -// end::hello-world-import[] - import org.neo4j.driver.AuthTokens; import org.neo4j.driver.Driver; import org.neo4j.driver.GraphDatabase; import org.neo4j.driver.Result; import org.neo4j.driver.Session; +import static org.neo4j.driver.Values.parameters; +// end::hello-world-import[] + // tag::hello-world[] public class HelloWorldExample implements AutoCloseable { private final Driver driver; @@ -38,10 +38,11 @@ public HelloWorldExample(String uri, String user, String password) { } @Override - public void close() throws Exception { + public void close() throws RuntimeException { driver.close(); } + @SuppressWarnings("deprecation") public void printGreeting(final String message) { try (Session session = driver.session()) { String greeting = session.writeTransaction(tx -> { diff --git a/examples/src/main/java/org/neo4j/docs/driver/KerberosAuthExample.java b/examples/src/main/java/org/neo4j/docs/driver/KerberosAuthExample.java index 51c71d180b..825d054f04 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/KerberosAuthExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/KerberosAuthExample.java @@ -19,7 +19,6 @@ package org.neo4j.docs.driver; // tag::kerberos-auth-import[] - import org.neo4j.driver.AuthTokens; import org.neo4j.driver.Driver; import org.neo4j.driver.GraphDatabase; @@ -35,7 +34,7 @@ public KerberosAuthExample(String uri, String ticket) { // end::kerberos-auth[] @Override - public void close() throws Exception { + public void close() throws RuntimeException { driver.close(); } } diff --git a/examples/src/main/java/org/neo4j/docs/driver/PassBookmarkExample.java b/examples/src/main/java/org/neo4j/docs/driver/PassBookmarkExample.java index c66ff09b58..6ff7c23e6f 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/PassBookmarkExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/PassBookmarkExample.java @@ -20,12 +20,6 @@ // tag::pass-bookmarks-import[] -import static org.neo4j.driver.SessionConfig.builder; -import static org.neo4j.driver.Values.parameters; -// end::pass-bookmarks-import[] - -import java.util.ArrayList; -import java.util.List; import org.neo4j.driver.AccessMode; import org.neo4j.driver.Bookmark; import org.neo4j.driver.Record; @@ -33,6 +27,13 @@ import org.neo4j.driver.Session; import org.neo4j.driver.Transaction; +import java.util.ArrayList; +import java.util.List; + +import static org.neo4j.driver.SessionConfig.builder; +import static org.neo4j.driver.Values.parameters; +// end::pass-bookmarks-import[] + public class PassBookmarkExample extends BaseApplication { public PassBookmarkExample(String uri, String user, String password) { @@ -79,6 +80,7 @@ private Result printFriends(final Transaction tx) { return result; } + @SuppressWarnings("deprecation") public void addEmployAndMakeFriends() { // To collect the session bookmarks List savedBookmarks = new ArrayList<>(); diff --git a/examples/src/main/java/org/neo4j/docs/driver/ReadWriteTransactionExample.java b/examples/src/main/java/org/neo4j/docs/driver/ReadWriteTransactionExample.java index d4a3a3e329..4addc14ae6 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/ReadWriteTransactionExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/ReadWriteTransactionExample.java @@ -20,18 +20,19 @@ // tag::read-write-transaction-import[] -import static org.neo4j.driver.Values.parameters; -// end::read-write-transaction-import[] - import org.neo4j.driver.Result; import org.neo4j.driver.Session; import org.neo4j.driver.Transaction; +import static org.neo4j.driver.Values.parameters; +// end::read-write-transaction-import[] + public class ReadWriteTransactionExample extends BaseApplication { public ReadWriteTransactionExample(String uri, String user, String password) { super(uri, user, password); } + @SuppressWarnings("deprecation") // tag::read-write-transaction[] public long addPerson(final String name) { try (Session session = driver.session()) { diff --git a/examples/src/main/java/org/neo4j/docs/driver/ReadingValuesExample.java b/examples/src/main/java/org/neo4j/docs/driver/ReadingValuesExample.java index 30fb0cab67..a1c3376039 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/ReadingValuesExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/ReadingValuesExample.java @@ -144,6 +144,7 @@ public void integerAsString() { }); } + @SuppressWarnings("deprecation") private O echo(T value, Function transformation) { try (Session session = driver.session()) { return session.readTransaction(tx -> { diff --git a/examples/src/main/java/org/neo4j/docs/driver/ResultConsumeExample.java b/examples/src/main/java/org/neo4j/docs/driver/ResultConsumeExample.java index f1d83739a9..b654212f78 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/ResultConsumeExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/ResultConsumeExample.java @@ -20,10 +20,11 @@ // tag::result-consume-import[] -import java.util.ArrayList; -import java.util.List; import org.neo4j.driver.Result; import org.neo4j.driver.Session; + +import java.util.ArrayList; +import java.util.List; // end::result-consume-import[] public class ResultConsumeExample extends BaseApplication { @@ -32,6 +33,7 @@ public ResultConsumeExample(String uri, String user, String password) { } // tag::result-consume[] + @SuppressWarnings("deprecation") public List getPeople() { try (Session session = driver.session()) { return session.readTransaction(tx -> { diff --git a/examples/src/main/java/org/neo4j/docs/driver/ResultRetainExample.java b/examples/src/main/java/org/neo4j/docs/driver/ResultRetainExample.java index fe5fe0db27..45a7cc1e71 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/ResultRetainExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/ResultRetainExample.java @@ -20,21 +20,23 @@ // tag::result-retain-import[] -import static org.neo4j.driver.Values.parameters; -// end::result-retain-import[] - -import java.util.List; import org.neo4j.driver.Record; import org.neo4j.driver.Result; import org.neo4j.driver.Session; import org.neo4j.driver.Transaction; import org.neo4j.driver.TransactionWork; +import java.util.List; + +import static org.neo4j.driver.Values.parameters; +// end::result-retain-import[] + public class ResultRetainExample extends BaseApplication { public ResultRetainExample(String uri, String user, String password) { super(uri, user, password); } + @SuppressWarnings("deprecation") // tag::result-retain[] public int addEmployees(final String companyName) { try (Session session = driver.session()) { diff --git a/examples/src/main/java/org/neo4j/docs/driver/RxAutocommitTransactionExample.java b/examples/src/main/java/org/neo4j/docs/driver/RxAutocommitTransactionExample.java index fd52be77de..9322be1045 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/RxAutocommitTransactionExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/RxAutocommitTransactionExample.java @@ -18,16 +18,19 @@ */ package org.neo4j.docs.driver; -import io.reactivex.Flowable; // tag::rx-autocommit-transaction-import[] + +import io.reactivex.Flowable; import io.reactivex.Observable; -import java.util.Collections; -import java.util.Map; import org.neo4j.driver.reactive.RxSession; -// end::rx-autocommit-transaction-import[] import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +import java.util.Collections; +import java.util.Map; +// end::rx-autocommit-transaction-import[] + +@SuppressWarnings("deprecation") public class RxAutocommitTransactionExample extends BaseApplication { public RxAutocommitTransactionExample(String uri, String user, String password) { super(uri, user, password); diff --git a/examples/src/main/java/org/neo4j/docs/driver/RxResultConsumeExample.java b/examples/src/main/java/org/neo4j/docs/driver/RxResultConsumeExample.java index 48fe16992b..81576b0b13 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/RxResultConsumeExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/RxResultConsumeExample.java @@ -18,17 +18,20 @@ */ package org.neo4j.docs.driver; -import io.reactivex.Flowable; // tag::rx-result-consume-import[] + +import io.reactivex.Flowable; import io.reactivex.Observable; -import java.util.Collections; -import java.util.Map; import org.neo4j.driver.reactive.RxResult; import org.neo4j.driver.reactive.RxSession; -// end::rx-result-consume-import[] import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +import java.util.Collections; +import java.util.Map; +// end::rx-result-consume-import[] + +@SuppressWarnings("deprecation") public class RxResultConsumeExample extends BaseApplication { public RxResultConsumeExample(String uri, String user, String password) { super(uri, user, password); diff --git a/examples/src/main/java/org/neo4j/docs/driver/RxTransactionFunctionExample.java b/examples/src/main/java/org/neo4j/docs/driver/RxTransactionFunctionExample.java index d2687780b1..0c64f07d38 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/RxTransactionFunctionExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/RxTransactionFunctionExample.java @@ -18,23 +18,26 @@ */ package org.neo4j.docs.driver; -import io.reactivex.Flowable; // tag::rx-transaction-function-import[] + +import io.reactivex.Flowable; import io.reactivex.Observable; -import java.util.Collections; -import java.util.Map; import org.neo4j.driver.reactive.RxResult; import org.neo4j.driver.reactive.RxSession; import org.neo4j.driver.summary.ResultSummary; -// end::rx-transaction-function-import[] import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +import java.util.Collections; +import java.util.Map; +// end::rx-transaction-function-import[] + public class RxTransactionFunctionExample extends BaseApplication { public RxTransactionFunctionExample(String uri, String user, String password) { super(uri, user, password); } + @SuppressWarnings("deprecation") // tag::rx-transaction-function[] public Flux printAllProducts() { String query = "MATCH (p:Product) WHERE p.id = $id RETURN p.title"; @@ -52,6 +55,7 @@ public Flux printAllProducts() { } // end::rx-transaction-function[] + @SuppressWarnings("deprecation") // tag::RxJava-transaction-function[] public Flowable printAllProductsRxJava() { String query = "MATCH (p:Product) WHERE p.id = $id RETURN p.title"; diff --git a/examples/src/main/java/org/neo4j/docs/driver/RxUnmanagedTransactionExample.java b/examples/src/main/java/org/neo4j/docs/driver/RxUnmanagedTransactionExample.java index 7402204b6f..7a40fdc1a6 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/RxUnmanagedTransactionExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/RxUnmanagedTransactionExample.java @@ -18,18 +18,21 @@ */ package org.neo4j.docs.driver; -import io.reactivex.Flowable; // tag::reactor-unmanaged-transaction-import[] + +import io.reactivex.Flowable; import io.reactivex.Observable; -import java.util.Collections; -import java.util.Map; import org.neo4j.driver.reactive.RxQueryRunner; import org.neo4j.driver.reactive.RxSession; import org.reactivestreams.Publisher; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; -// tag::reactor-unmanaged-transaction-import[] +import java.util.Collections; +import java.util.Map; +// end::reactor-unmanaged-transaction-import[] + +@SuppressWarnings("deprecation") public class RxUnmanagedTransactionExample extends BaseApplication { public RxUnmanagedTransactionExample(String uri, String user, String password) { super(uri, user, password); diff --git a/examples/src/main/java/org/neo4j/docs/driver/ServiceUnavailableExample.java b/examples/src/main/java/org/neo4j/docs/driver/ServiceUnavailableExample.java index 2bc9dd7c3b..87730b8c32 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/ServiceUnavailableExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/ServiceUnavailableExample.java @@ -20,9 +20,6 @@ // tag::service-unavailable-import[] -import static java.util.concurrent.TimeUnit.SECONDS; -// end::service-unavailable-import[] - import org.neo4j.driver.AuthTokens; import org.neo4j.driver.Config; import org.neo4j.driver.Driver; @@ -31,6 +28,9 @@ import org.neo4j.driver.Session; import org.neo4j.driver.exceptions.ServiceUnavailableException; +import static java.util.concurrent.TimeUnit.SECONDS; +// end::service-unavailable-import[] + public class ServiceUnavailableExample implements AutoCloseable { protected final Driver driver; @@ -44,10 +44,11 @@ public ServiceUnavailableExample(String uri, String user, String password) { } @Override - public void close() throws Exception { + public void close() throws RuntimeException { driver.close(); } + @SuppressWarnings("deprecation") // tag::service-unavailable[] public boolean addItem() { try (Session session = driver.session()) { diff --git a/examples/src/main/java/org/neo4j/docs/driver/SessionExample.java b/examples/src/main/java/org/neo4j/docs/driver/SessionExample.java index a0b31a5a24..b73cf5fe13 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/SessionExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/SessionExample.java @@ -20,11 +20,11 @@ // tag::session-import[] +import org.neo4j.driver.Session; + import static org.neo4j.driver.Values.parameters; // end::session-import[] -import org.neo4j.driver.Session; - public class SessionExample extends BaseApplication { public SessionExample(String uri, String user, String password) { super(uri, user, password); diff --git a/examples/src/main/java/org/neo4j/docs/driver/TransactionFunctionExample.java b/examples/src/main/java/org/neo4j/docs/driver/TransactionFunctionExample.java index d7e3c20f82..971424d9cc 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/TransactionFunctionExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/TransactionFunctionExample.java @@ -20,16 +20,17 @@ // tag::transaction-function-import[] +import org.neo4j.driver.Session; + import static org.neo4j.driver.Values.parameters; // end::transaction-function-import[] -import org.neo4j.driver.Session; - public class TransactionFunctionExample extends BaseApplication { public TransactionFunctionExample(String uri, String user, String password) { super(uri, user, password); } + @SuppressWarnings("deprecation") // tag::transaction-function[] public void addPerson(final String name) { try (Session session = driver.session()) { diff --git a/examples/src/main/java/org/neo4j/docs/driver/TransactionMetadataConfigExample.java b/examples/src/main/java/org/neo4j/docs/driver/TransactionMetadataConfigExample.java index 4bab5454ce..f47e0b5f26 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/TransactionMetadataConfigExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/TransactionMetadataConfigExample.java @@ -31,6 +31,7 @@ public TransactionMetadataConfigExample(String uri, String user, String password super(uri, user, password); } + @SuppressWarnings("deprecation") // tag::transaction-metadata-config[] public void addPerson(final String name) { try (Session session = driver.session()) { diff --git a/examples/src/main/java/org/neo4j/docs/driver/TransactionTimeoutConfigExample.java b/examples/src/main/java/org/neo4j/docs/driver/TransactionTimeoutConfigExample.java index 661b18f1ab..c7ed4f2654 100644 --- a/examples/src/main/java/org/neo4j/docs/driver/TransactionTimeoutConfigExample.java +++ b/examples/src/main/java/org/neo4j/docs/driver/TransactionTimeoutConfigExample.java @@ -30,6 +30,7 @@ public TransactionTimeoutConfigExample(String uri, String user, String password) super(uri, user, password); } + @SuppressWarnings("deprecation") // tag::transaction-timeout-config[] public void addPerson(final String name) { try (Session session = driver.session()) { diff --git a/examples/src/test/java/org/neo4j/docs/driver/ExamplesIT.java b/examples/src/test/java/org/neo4j/docs/driver/ExamplesIT.java index e62d97a2da..1bbef30d5b 100644 --- a/examples/src/test/java/org/neo4j/docs/driver/ExamplesIT.java +++ b/examples/src/test/java/org/neo4j/docs/driver/ExamplesIT.java @@ -74,6 +74,7 @@ class ExamplesIT { private String uri; + @SuppressWarnings("deprecation") private int readInt(String database, final String query, final Value parameters) { SessionConfig sessionConfig; if (database == null) { @@ -95,6 +96,7 @@ private int readInt(final String query) { return readInt(query, parameters()); } + @SuppressWarnings("deprecation") private void write(final String query, final Value parameters) { try (Session session = neo4j.driver().session()) { session.writeTransaction(tx -> { @@ -243,8 +245,8 @@ void testShouldRunCypherErrorExample() throws Exception { // Given try (CypherErrorExample example = new CypherErrorExample(uri, USER, neo4j.adminPassword())) { // When & Then - StdIOCapture stdIO = new StdIOCapture(); - try (AutoCloseable ignored = stdIO.capture()) { + StdIOCapture stdIO = StdIOCapture.capture(); + try (stdIO) { int employeeNumber = example.getEmployeeNumber("Alice"); assertThat(employeeNumber, equalTo(-1)); @@ -267,9 +269,9 @@ void testShouldRunHelloWorld() throws Exception { // Given try (HelloWorldExample greeter = new HelloWorldExample(uri, USER, neo4j.adminPassword())) { // When - StdIOCapture stdIO = new StdIOCapture(); + StdIOCapture stdIO = StdIOCapture.capture(); - try (AutoCloseable ignored = stdIO.capture()) { + try (stdIO) { greeter.printGreeting("hello, world"); } @@ -289,9 +291,9 @@ void testShouldRunDriverIntroduction() throws Exception { try (DriverIntroductionExample intro = new DriverIntroductionExample(uri, USER, neo4j.adminPassword(), config)) { // When - StdIOCapture stdIO = new StdIOCapture(); + StdIOCapture stdIO = StdIOCapture.capture(); - try (AutoCloseable ignored = stdIO.capture()) { + try (stdIO) { intro.createFriendship("Alice", "David", "School"); intro.findPerson("Alice"); } @@ -422,10 +424,10 @@ void testShouldRunAsyncTransactionFunctionExample() throws Exception { "UNWIND ['Infinity Gauntlet', 'Mjölnir'] AS item " + "CREATE (:Product {id: 0, title: item})"); } - StdIOCapture stdIOCapture = new StdIOCapture(); + StdIOCapture stdIOCapture = StdIOCapture.capture(); // print all 'Product' nodes to fake stdout - try (AutoCloseable ignore = stdIOCapture.capture()) { + try (stdIOCapture) { ResultSummary summary = await(example.printAllProducts()); assertEquals(QueryType.READ_ONLY, summary.queryType()); } @@ -470,10 +472,10 @@ void testAsyncUnmanagedTransactionExample() throws Exception { session.run("CREATE (:Product {id: 0, title: 'Mind Gem'})"); } - StdIOCapture stdIOCapture = new StdIOCapture(); + StdIOCapture stdIOCapture = StdIOCapture.capture(); // print the single 'Product' node - try (AutoCloseable ignore = stdIOCapture.capture()) { + try (stdIOCapture) { await(example.printSingleProduct()); } @@ -567,10 +569,10 @@ void testShouldRunRxTransactionFunctionExampleReactor() throws Exception { "UNWIND ['Infinity Gauntlet', 'Mjölnir'] AS item " + "CREATE (:Product {id: 0, title: item})"); } - StdIOCapture stdIOCapture = new StdIOCapture(); + StdIOCapture stdIOCapture = StdIOCapture.capture(); // print all 'Product' nodes to fake stdout - try (AutoCloseable ignore = stdIOCapture.capture()) { + try (stdIOCapture) { final List summaryList = await(example.printAllProducts()); assertThat(summaryList.size(), equalTo(1)); ResultSummary summary = summaryList.get(0); @@ -593,10 +595,10 @@ void testShouldRunRxTransactionFunctionExampleRxJava() throws Exception { "UNWIND ['Infinity Gauntlet', 'Mjölnir'] AS item " + "CREATE (:Product {id: 0, title: item})"); } - StdIOCapture stdIOCapture = new StdIOCapture(); + StdIOCapture stdIOCapture = StdIOCapture.capture(); // print all 'Product' nodes to fake stdout - try (AutoCloseable ignore = stdIOCapture.capture()) { + try (stdIOCapture) { final List summaryList = await(example.printAllProductsRxJava()); assertThat(summaryList.size(), equalTo(1)); ResultSummary summary = summaryList.get(0);