Skip to content

Commit ab4ce64

Browse files
committed
Enable compilation failures on warnings for examples
1 parent b0d2c93 commit ab4ce64

38 files changed

+189
-139
lines changed

driver/src/test/java/org/neo4j/driver/util/StdIOCapture.java

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,32 +22,34 @@
2222

2323
import java.io.ByteArrayOutputStream;
2424
import java.io.PrintStream;
25+
import java.io.UnsupportedEncodingException;
2526
import java.util.List;
2627
import java.util.concurrent.CopyOnWriteArrayList;
2728

2829
/**
2930
* Utility that can be used to temporarily capture and store process-wide stdout and stderr output.
3031
*/
31-
public class StdIOCapture {
32+
public class StdIOCapture implements AutoCloseable {
3233
private final List<String> stdout = new CopyOnWriteArrayList<>();
3334
private final List<String> stderr = new CopyOnWriteArrayList<>();
35+
private final PrintStream originalStdOut;
36+
private final PrintStream originalStdErr;
37+
private final ByteArrayOutputStream capturedStdOut;
38+
private final ByteArrayOutputStream capturedStdErr;
3439

3540
/** Put this in a try-with-resources block to capture all standard io that happens within the try block */
36-
public AutoCloseable capture() {
37-
final PrintStream originalStdOut = System.out;
38-
final PrintStream originalStdErr = System.err;
39-
final ByteArrayOutputStream capturedStdOut = new ByteArrayOutputStream();
40-
final ByteArrayOutputStream capturedStdErr = new ByteArrayOutputStream();
41+
public static StdIOCapture capture() {
42+
return new StdIOCapture();
43+
}
44+
45+
private StdIOCapture() {
46+
originalStdOut = System.out;
47+
originalStdErr = System.err;
48+
capturedStdOut = new ByteArrayOutputStream();
49+
capturedStdErr = new ByteArrayOutputStream();
4150

4251
System.setOut(new PrintStream(capturedStdOut));
4352
System.setErr(new PrintStream(capturedStdErr));
44-
45-
return () -> {
46-
System.setOut(originalStdOut);
47-
System.setErr(originalStdErr);
48-
stdout.addAll(asList(capturedStdOut.toString("UTF-8").split(System.lineSeparator())));
49-
stderr.addAll(asList(capturedStdErr.toString("UTF-8").split(System.lineSeparator())));
50-
};
5153
}
5254

5355
public List<String> stdout() {
@@ -57,4 +59,12 @@ public List<String> stdout() {
5759
public List<String> stderr() {
5860
return stderr;
5961
}
62+
63+
@Override
64+
public void close() throws UnsupportedEncodingException {
65+
System.setOut(originalStdOut);
66+
System.setErr(originalStdErr);
67+
stdout.addAll(asList(capturedStdOut.toString("UTF-8").split(System.lineSeparator())));
68+
stderr.addAll(asList(capturedStdErr.toString("UTF-8").split(System.lineSeparator())));
69+
}
6070
}

examples/pom.xml

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818

1919
<properties>
2020
<rootDir>${project.basedir}/..</rootDir>
21+
<!-- Turned off because it moves/deletes example tags and needs investigation. -->
22+
<spotless.check.skip>true</spotless.check.skip>
23+
<spotless.apply.skip>true</spotless.apply.skip>
2124
</properties>
2225

2326
<dependencies>
@@ -82,13 +85,6 @@
8285

8386
<build>
8487
<plugins>
85-
<plugin>
86-
<groupId>org.apache.maven.plugins</groupId>
87-
<artifactId>maven-compiler-plugin</artifactId>
88-
<configuration>
89-
<compilerArgs combine.self="override"/>
90-
</configuration>
91-
</plugin>
9288
<plugin>
9389
<groupId>org.apache.maven.plugins</groupId>
9490
<artifactId>maven-javadoc-plugin</artifactId>

examples/src/main/java/org/neo4j/docs/driver/AsyncAutocommitTransactionExample.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,15 @@
1717
* limitations under the License.
1818
*/
1919
package org.neo4j.docs.driver;
20+
2021
// tag::async-autocommit-transaction-import[]
22+
23+
import org.neo4j.driver.async.AsyncSession;
24+
2125
import java.util.Collections;
2226
import java.util.List;
2327
import java.util.Map;
2428
import java.util.concurrent.CompletionStage;
25-
import org.neo4j.driver.async.AsyncSession;
2629
// end::async-autocommit-transaction-import[]
2730

2831
public class AsyncAutocommitTransactionExample extends BaseApplication {

examples/src/main/java/org/neo4j/docs/driver/AsyncResultConsumeExample.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,18 @@
2020

2121
// tag::async-result-consume-import[]
2222

23+
import org.neo4j.driver.async.AsyncSession;
24+
2325
import java.util.List;
2426
import java.util.concurrent.CompletionStage;
25-
import org.neo4j.driver.async.AsyncSession;
2627
// end::async-result-consume-import[]
2728

2829
public class AsyncResultConsumeExample extends BaseApplication {
2930
public AsyncResultConsumeExample(String uri, String user, String password) {
3031
super(uri, user, password);
3132
}
3233

34+
@SuppressWarnings("deprecation")
3335
// tag::async-result-consume[]
3436
public CompletionStage<List<String>> getPeople() {
3537

examples/src/main/java/org/neo4j/docs/driver/AsyncRunMultipleTransactionExample.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,24 +20,25 @@
2020

2121
// tag::async-result-consume-import[]
2222

23-
import static org.neo4j.driver.Values.parameters;
24-
// end::async-result-consume-import[]
25-
26-
import java.util.Arrays;
27-
import java.util.List;
28-
import java.util.concurrent.CompletableFuture;
29-
import java.util.concurrent.CompletionStage;
3023
import org.neo4j.driver.async.AsyncSession;
3124
import org.neo4j.driver.async.AsyncTransaction;
3225
import org.neo4j.driver.async.ResultCursor;
3326
import org.neo4j.driver.summary.ResultSummary;
3427
import org.neo4j.driver.summary.SummaryCounters;
3528

29+
import java.util.List;
30+
import java.util.concurrent.CompletableFuture;
31+
import java.util.concurrent.CompletionStage;
32+
33+
import static org.neo4j.driver.Values.parameters;
34+
// end::async-result-consume-import[]
35+
3636
public class AsyncRunMultipleTransactionExample extends BaseApplication {
3737
public AsyncRunMultipleTransactionExample(String uri, String user, String password) {
3838
super(uri, user, password);
3939
}
4040

41+
@SuppressWarnings("deprecation")
4142
// tag::async-multiple-tx[]
4243
public CompletionStage<Integer> addEmployees(final String companyName) {
4344
AsyncSession session = driver.asyncSession();
@@ -53,14 +54,13 @@ private static CompletionStage<List<String>> matchPersonNodes(AsyncTransaction t
5354
cursor -> cursor.listAsync(record -> record.get("name").asString()));
5455
}
5556

56-
private static CompletableFuture<Integer> createNodes(
57+
private static CompletionStage<Integer> createNodes(
5758
AsyncTransaction tx, String companyName, List<String> personNames) {
58-
CompletableFuture<Integer>[] nodeCreatedCounts = personNames.stream()
59+
return personNames.stream()
5960
.map(personName -> createNode(tx, companyName, personName))
60-
.toArray(size -> new CompletableFuture[size]);
61-
return CompletableFuture.allOf(nodeCreatedCounts).thenApply(ignored -> Arrays.stream(nodeCreatedCounts)
62-
.map(CompletableFuture::join)
63-
.reduce(0, Integer::sum));
61+
.reduce(
62+
CompletableFuture.completedFuture(0),
63+
(stage1, stage2) -> stage1.thenCombine(stage2, Integer::sum));
6464
}
6565

6666
private static CompletionStage<Integer> createNode(AsyncTransaction tx, String companyName, String personName) {

examples/src/main/java/org/neo4j/docs/driver/AsyncTransactionFunctionExample.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,23 @@
1717
* limitations under the License.
1818
*/
1919
package org.neo4j.docs.driver;
20+
2021
// tag::async-transaction-function-import[]
22+
23+
import org.neo4j.driver.async.AsyncSession;
24+
import org.neo4j.driver.summary.ResultSummary;
25+
2126
import java.util.Collections;
2227
import java.util.Map;
2328
import java.util.concurrent.CompletionStage;
24-
import org.neo4j.driver.async.AsyncSession;
25-
import org.neo4j.driver.summary.ResultSummary;
2629
// end::async-transaction-function-import[]
2730

2831
public class AsyncTransactionFunctionExample extends BaseApplication {
2932
public AsyncTransactionFunctionExample(String uri, String user, String password) {
3033
super(uri, user, password);
3134
}
3235

36+
@SuppressWarnings("deprecation")
3337
// tag::async-transaction-function[]
3438
public CompletionStage<ResultSummary> printAllProducts() {
3539
String query = "MATCH (p:Product) WHERE p.id = $id RETURN p.title";

examples/src/main/java/org/neo4j/docs/driver/AsyncUnmanagedTransactionExample.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,17 @@
1717
* limitations under the License.
1818
*/
1919
package org.neo4j.docs.driver;
20+
2021
// tag::async-unmanaged-transaction-import[]
22+
23+
import org.neo4j.driver.async.AsyncSession;
24+
import org.neo4j.driver.async.AsyncTransaction;
25+
import org.neo4j.driver.async.ResultCursor;
26+
2127
import java.util.Collections;
2228
import java.util.Map;
2329
import java.util.concurrent.CompletionStage;
2430
import java.util.function.Function;
25-
import org.neo4j.driver.async.AsyncSession;
26-
import org.neo4j.driver.async.AsyncTransaction;
27-
import org.neo4j.driver.async.ResultCursor;
2831
// end::async-unmanaged-transaction-import[]
2932

3033
public class AsyncUnmanagedTransactionExample extends BaseApplication {

examples/src/main/java/org/neo4j/docs/driver/AutocommitTransactionExample.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@
2020

2121
// tag::autocommit-transaction-import[]
2222

23+
import org.neo4j.driver.Session;
24+
2325
import static org.neo4j.driver.Values.parameters;
2426
// end::autocommit-transaction-import[]
2527

26-
import org.neo4j.driver.Session;
27-
2828
public class AutocommitTransactionExample extends BaseApplication {
2929
public AutocommitTransactionExample(String uri, String user, String password) {
3030
super(uri, user, password);

examples/src/main/java/org/neo4j/docs/driver/BaseApplication.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public BaseApplication(String uri, String user, String password) {
3030
}
3131

3232
@Override
33-
public void close() throws Exception {
33+
public void close() throws RuntimeException {
3434
driver.close();
3535
}
3636
}

examples/src/main/java/org/neo4j/docs/driver/BasicAuthExample.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
package org.neo4j.docs.driver;
2020

2121
// tag::basic-auth-import[]
22-
2322
import org.neo4j.driver.AuthTokens;
2423
import org.neo4j.driver.Driver;
2524
import org.neo4j.driver.GraphDatabase;
@@ -36,7 +35,7 @@ public BasicAuthExample(String uri, String user, String password) {
3635
// end::basic-auth[]
3736

3837
@Override
39-
public void close() throws Exception {
38+
public void close() throws RuntimeException {
4039
driver.close();
4140
}
4241

examples/src/main/java/org/neo4j/docs/driver/BearerAuthExample.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
package org.neo4j.docs.driver;
2020

2121
// tag::bearer-auth-import[]
22-
2322
import org.neo4j.driver.AuthTokens;
2423
import org.neo4j.driver.Driver;
2524
import org.neo4j.driver.GraphDatabase;
@@ -35,7 +34,7 @@ public BearerAuthExample(String uri, String bearerToken) {
3534
// end::bearer-auth[]
3635

3736
@Override
38-
public void close() throws Exception {
37+
public void close() throws RuntimeException {
3938
driver.close();
4039
}
4140
}

examples/src/main/java/org/neo4j/docs/driver/ConfigConnectionPoolExample.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,16 @@
1717
* limitations under the License.
1818
*/
1919
package org.neo4j.docs.driver;
20+
2021
// tag::config-connection-pool-import[]
21-
import java.util.concurrent.TimeUnit;
22+
2223
import org.neo4j.driver.AuthTokens;
2324
import org.neo4j.driver.Config;
2425
import org.neo4j.driver.Driver;
2526
import org.neo4j.driver.GraphDatabase;
2627
import org.neo4j.driver.Result;
28+
29+
import java.util.concurrent.TimeUnit;
2730
// end::config-connection-pool-import[]
2831

2932
public class ConfigConnectionPoolExample implements AutoCloseable {
@@ -42,7 +45,7 @@ public ConfigConnectionPoolExample(String uri, String user, String password) {
4245
// end::config-connection-pool[]
4346

4447
@Override
45-
public void close() throws Exception {
48+
public void close() throws RuntimeException {
4649
driver.close();
4750
}
4851

examples/src/main/java/org/neo4j/docs/driver/ConfigConnectionTimeoutExample.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@
2020

2121
// tag::config-connection-timeout-import[]
2222

23-
import static java.util.concurrent.TimeUnit.SECONDS;
24-
// end::config-connection-timeout-import[]
25-
2623
import org.neo4j.driver.AuthTokens;
2724
import org.neo4j.driver.Config;
2825
import org.neo4j.driver.Driver;
2926
import org.neo4j.driver.GraphDatabase;
3027

28+
import static java.util.concurrent.TimeUnit.SECONDS;
29+
// end::config-connection-timeout-import[]
30+
3131
public class ConfigConnectionTimeoutExample implements AutoCloseable {
3232
private final Driver driver;
3333

@@ -40,7 +40,7 @@ public ConfigConnectionTimeoutExample(String uri, String user, String password)
4040
// end::config-connection-timeout[]
4141

4242
@Override
43-
public void close() throws Exception {
43+
public void close() throws RuntimeException {
4444
driver.close();
4545
}
4646
}

examples/src/main/java/org/neo4j/docs/driver/ConfigCustomResolverExample.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,9 @@
1717
* limitations under the License.
1818
*/
1919
package org.neo4j.docs.driver;
20-
// tag::config-custom-resolver-import[]
2120

22-
import static org.neo4j.driver.SessionConfig.builder;
23-
import static org.neo4j.driver.Values.parameters;
21+
// tag::config-custom-resolver-import[]
2422

25-
import java.util.Arrays;
26-
import java.util.HashSet;
2723
import org.neo4j.driver.AccessMode;
2824
import org.neo4j.driver.AuthToken;
2925
import org.neo4j.driver.AuthTokens;
@@ -34,7 +30,13 @@
3430
import org.neo4j.driver.Session;
3531
import org.neo4j.driver.net.ServerAddress;
3632

33+
import java.util.Arrays;
34+
import java.util.HashSet;
35+
36+
import static org.neo4j.driver.SessionConfig.builder;
37+
import static org.neo4j.driver.Values.parameters;
3738
// end::config-custom-resolver-import[]
39+
3840
public class ConfigCustomResolverExample implements AutoCloseable {
3941
private final Driver driver;
4042

@@ -75,7 +77,7 @@ private void addPerson(String name) {
7577
// end::config-custom-resolver[]
7678

7779
@Override
78-
public void close() throws Exception {
80+
public void close() throws RuntimeException {
7981
driver.close();
8082
}
8183

examples/src/main/java/org/neo4j/docs/driver/ConfigMaxRetryTimeExample.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@
2020

2121
// tag::config-max-retry-time-import[]
2222

23-
import static java.util.concurrent.TimeUnit.SECONDS;
24-
// end::config-max-retry-time-import[]
25-
2623
import org.neo4j.driver.AuthTokens;
2724
import org.neo4j.driver.Config;
2825
import org.neo4j.driver.Driver;
2926
import org.neo4j.driver.GraphDatabase;
3027

28+
import static java.util.concurrent.TimeUnit.SECONDS;
29+
// end::config-max-retry-time-import[]
30+
3131
public class ConfigMaxRetryTimeExample implements AutoCloseable {
3232
private final Driver driver;
3333

@@ -41,7 +41,7 @@ public ConfigMaxRetryTimeExample(String uri, String user, String password) {
4141
// end::config-max-retry-time[]
4242

4343
@Override
44-
public void close() throws Exception {
44+
public void close() throws RuntimeException {
4545
driver.close();
4646
}
4747
}

0 commit comments

Comments
 (0)