Skip to content

Commit 8e1f6b7

Browse files
GH-2699 - Upgrade Java Driver to 5.6.0.
Closes #2699.
1 parent 18bc92d commit 8e1f6b7

File tree

8 files changed

+10
-42
lines changed

8 files changed

+10
-42
lines changed

pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@
101101
<maven.compiler.release>${java.version}</maven.compiler.release>
102102
<mockito>${mockito.version}</mockito>
103103
<mockito.version>4.4.0</mockito.version>
104-
<neo4j-java-driver.version>5.4.0</neo4j-java-driver.version>
104+
<neo4j-java-driver.version>5.6.0</neo4j-java-driver.version>
105105
<neo4j-migrations.version>1.13.1</neo4j-migrations.version>
106106
<neo4j.version>4.4.8</neo4j.version>
107107
<objenesis.version>3.0.1</objenesis.version>

src/main/java/org/springframework/data/neo4j/config/Neo4jCdiConfigurationSupport.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import org.neo4j.cypherdsl.core.renderer.Configuration;
2020
import org.neo4j.cypherdsl.core.renderer.Renderer;
2121
import org.neo4j.driver.Driver;
22+
import org.neo4j.driver.types.TypeSystem;
2223
import org.springframework.data.neo4j.core.DatabaseSelectionProvider;
2324
import org.springframework.data.neo4j.core.Neo4jClient;
2425
import org.springframework.data.neo4j.core.Neo4jOperations;
@@ -89,7 +90,7 @@ public Neo4jClient neo4jClient(@SuppressWarnings("CdiInjectionPointsInspection")
8990
@Produces @Singleton
9091
public Neo4jMappingContext neo4jMappingContext(@SuppressWarnings("CdiInjectionPointsInspection") Driver driver, @Any Instance<Neo4jConversions> neo4JConversions) {
9192

92-
return Neo4jMappingContext.builder().withNeo4jConversions(resolve(neo4JConversions)).withTypeSystem(driver.defaultTypeSystem()).build();
93+
return Neo4jMappingContext.builder().withNeo4jConversions(resolve(neo4JConversions)).withTypeSystem(TypeSystem.getDefault()).build();
9394
}
9495

9596
@Produces @Singleton

src/main/java/org/springframework/data/neo4j/core/DefaultNeo4jClient.java

+3-5
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@
6262
final class DefaultNeo4jClient implements Neo4jClient {
6363

6464
private final Driver driver;
65-
private final TypeSystem typeSystem;
6665
private @Nullable final DatabaseSelectionProvider databaseSelectionProvider;
6766
private @Nullable final UserSelectionProvider userSelectionProvider;
6867
private final ConversionService conversionService;
@@ -75,7 +74,6 @@ final class DefaultNeo4jClient implements Neo4jClient {
7574
DefaultNeo4jClient(Builder builder) {
7675

7776
this.driver = builder.driver;
78-
this.typeSystem = driver.defaultTypeSystem();
7977
this.databaseSelectionProvider = builder.databaseSelectionProvider;
8078
this.userSelectionProvider = builder.userSelectionProvider;
8179

@@ -452,7 +450,7 @@ public Optional<T> one() {
452450
try (QueryRunner statementRunner = getQueryRunner(this.databaseSelection, this.impersonatedUser)) {
453451
Result result = runnableStatement.runWith(statementRunner);
454452
Optional<T> optionalValue = result.hasNext() ?
455-
Optional.ofNullable(mappingFunction.apply(typeSystem, result.single())) :
453+
Optional.ofNullable(mappingFunction.apply(TypeSystem.getDefault(), result.single())) :
456454
Optional.empty();
457455
ResultSummaries.process(result.consume());
458456
return optionalValue;
@@ -468,7 +466,7 @@ public Optional<T> first() {
468466

469467
try (QueryRunner statementRunner = getQueryRunner(this.databaseSelection, this.impersonatedUser)) {
470468
Result result = runnableStatement.runWith(statementRunner);
471-
Optional<T> optionalValue = result.stream().map(partialMappingFunction(typeSystem)).filter(Objects::nonNull).findFirst();
469+
Optional<T> optionalValue = result.stream().map(partialMappingFunction(TypeSystem.getDefault())).filter(Objects::nonNull).findFirst();
472470
ResultSummaries.process(result.consume());
473471
return optionalValue;
474472
} catch (RuntimeException e) {
@@ -483,7 +481,7 @@ public Collection<T> all() {
483481

484482
try (QueryRunner statementRunner = getQueryRunner(this.databaseSelection, this.impersonatedUser)) {
485483
Result result = runnableStatement.runWith(statementRunner);
486-
Collection<T> values = result.stream().map(partialMappingFunction(typeSystem)).filter(Objects::nonNull).collect(Collectors.toList());
484+
Collection<T> values = result.stream().map(partialMappingFunction(TypeSystem.getDefault())).filter(Objects::nonNull).collect(Collectors.toList());
487485
ResultSummaries.process(result.consume());
488486
return values;
489487
} catch (RuntimeException e) {

src/main/java/org/springframework/data/neo4j/core/DefaultReactiveNeo4jClient.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@
6565
final class DefaultReactiveNeo4jClient implements ReactiveNeo4jClient {
6666

6767
private final Driver driver;
68-
private final TypeSystem typeSystem;
6968
private @Nullable final ReactiveDatabaseSelectionProvider databaseSelectionProvider;
7069
private @Nullable final ReactiveUserSelectionProvider userSelectionProvider;
7170
private final ConversionService conversionService;
@@ -78,7 +77,6 @@ final class DefaultReactiveNeo4jClient implements ReactiveNeo4jClient {
7877
DefaultReactiveNeo4jClient(Builder builder) {
7978

8079
this.driver = builder.driver;
81-
this.typeSystem = driver.defaultTypeSystem();
8280
this.databaseSelectionProvider = builder.databaseSelectionProvider;
8381
this.userSelectionProvider = builder.impersonatedUserProvider;
8482

@@ -418,7 +416,7 @@ Mono<Tuple2<String, Map<String, Object>>> prepareStatement() {
418416
Flux<T> executeWith(Tuple2<String, Map<String, Object>> t, ReactiveQueryRunner runner) {
419417

420418
return Flux.usingWhen(Flux.from(runner.run(t.getT1(), t.getT2())),
421-
result -> Flux.from(result.records()).mapNotNull(r -> mappingFunction.apply(typeSystem, r)),
419+
result -> Flux.from(result.records()).mapNotNull(r -> mappingFunction.apply(TypeSystem.getDefault(), r)),
422420
result -> Flux.from(result.consume()).doOnNext(ResultSummaries::process));
423421
}
424422

src/test/java/org/springframework/data/neo4j/core/Neo4jClientTest.java

-3
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,6 @@ class Neo4jClientTest {
9090
void prepareMocks() {
9191

9292
when(driver.session(any(SessionConfig.class))).thenReturn(session);
93-
when(driver.defaultTypeSystem()).thenReturn(typeSystem);
9493

9594
when(session.lastBookmarks()).thenReturn(Set.of(Mockito.mock(Bookmark.class)));
9695
}
@@ -308,8 +307,6 @@ void databaseSelectionShouldPreventIllegalValues() {
308307
for (String invalidDatabaseName : invalidDatabaseNames) {
309308
assertThatIllegalArgumentException().isThrownBy(() -> client.query("RETURN 1").in(invalidDatabaseName));
310309
}
311-
312-
verify(driver).defaultTypeSystem();
313310
}
314311

315312
@Test // GH-2159

src/test/java/org/springframework/data/neo4j/core/ReactiveNeo4jClientTest.java

-7
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
import org.neo4j.driver.reactivestreams.ReactiveResult;
3434
import org.neo4j.driver.reactivestreams.ReactiveSession;
3535
import org.neo4j.driver.summary.ResultSummary;
36-
import org.neo4j.driver.types.TypeSystem;
3736
import org.springframework.data.neo4j.core.transaction.Neo4jTransactionUtils;
3837
import org.springframework.lang.Nullable;
3938
import org.springframework.util.ReflectionUtils;
@@ -70,8 +69,6 @@ class ReactiveNeo4jClientTest {
7069

7170
@Mock private Driver driver;
7271

73-
@Mock private TypeSystem typeSystem;
74-
7572
private ArgumentCaptor<SessionConfig> configArgumentCaptor = ArgumentCaptor.forClass(SessionConfig.class);
7673

7774
@Mock private ReactiveSession session;
@@ -86,8 +83,6 @@ class ReactiveNeo4jClientTest {
8683

8784
void prepareMocks() {
8885

89-
when(driver.defaultTypeSystem()).thenReturn(typeSystem);
90-
9186
when(driver.session(eq(ReactiveSession.class), any(SessionConfig.class))).thenReturn(session);
9287

9388
when(session.lastBookmarks()).thenReturn(Set.of(Mockito.mock(Bookmark.class)));
@@ -308,8 +303,6 @@ void databaseSelectionShouldPreventIllegalValues() {
308303
for (String invalidDatabaseName : invalidDatabaseNames) {
309304
assertThatIllegalArgumentException().isThrownBy(() -> client.query("RETURN 1").in(invalidDatabaseName));
310305
}
311-
312-
verify(driver).defaultTypeSystem();
313306
}
314307

315308
@Test // GH-2159

src/test/java/org/springframework/data/neo4j/core/TransactionHandlingTest.java

+3-20
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,8 @@
2626
import static org.mockito.Mockito.verifyNoMoreInteractions;
2727
import static org.mockito.Mockito.when;
2828

29-
import reactor.core.publisher.Mono;
30-
import reactor.test.StepVerifier;
31-
3229
import java.util.concurrent.atomic.AtomicBoolean;
3330

34-
import org.junit.jupiter.api.AfterEach;
35-
import org.junit.jupiter.api.BeforeEach;
3631
import org.junit.jupiter.api.Nested;
3732
import org.junit.jupiter.api.Test;
3833
import org.junit.jupiter.api.extension.ExtendWith;
@@ -47,10 +42,12 @@
4742
import org.neo4j.driver.TransactionConfig;
4843
import org.neo4j.driver.reactivestreams.ReactiveSession;
4944
import org.neo4j.driver.reactivestreams.ReactiveTransaction;
50-
import org.neo4j.driver.types.TypeSystem;
5145
import org.springframework.data.neo4j.core.transaction.Neo4jTransactionManager;
5246
import org.springframework.transaction.support.TransactionTemplate;
5347

48+
import reactor.core.publisher.Mono;
49+
import reactor.test.StepVerifier;
50+
5451
/**
5552
* Ensure correct behaviour of both imperative and reactive clients in and outside Springs transaction management.
5653
*
@@ -63,20 +60,6 @@ class TransactionHandlingTest {
6360

6461
@Mock private Session session;
6562

66-
@Mock private TypeSystem typeSystem;
67-
68-
@BeforeEach
69-
void prepareMocks() {
70-
71-
when(driver.defaultTypeSystem()).thenReturn(typeSystem);
72-
}
73-
74-
@AfterEach
75-
void verifyTypeSystemOnSession() {
76-
77-
verify(driver).defaultTypeSystem();
78-
}
79-
8063
@Nested
8164
class Neo4jClientTest {
8265

src/test/java/org/springframework/data/neo4j/core/transaction/Neo4jTransactionManagerTest.java

-2
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,6 @@ void shouldWorkWithoutSynchronizations() {
9191
@Test
9292
void triggerCommitCorrectly() {
9393

94-
when(driver.defaultTypeSystem()).thenReturn(typeSystem);
9594
when(driver.session(any(SessionConfig.class))).thenReturn(session);
9695
when(session.beginTransaction(any(TransactionConfig.class))).thenReturn(transaction);
9796
when(transaction.run(anyString(), anyMap())).thenReturn(statementResult);
@@ -122,7 +121,6 @@ void triggerCommitCorrectly() {
122121
@Test
123122
void usesBookmarksCorrectly() throws Exception {
124123

125-
when(driver.defaultTypeSystem()).thenReturn(typeSystem);
126124
when(driver.session(any(SessionConfig.class))).thenReturn(session);
127125
when(session.beginTransaction(any(TransactionConfig.class))).thenReturn(transaction);
128126
Set<Bookmark> bookmark = Set.of(new BookmarkForTesting("blubb"));

0 commit comments

Comments
 (0)