diff --git a/pom.xml b/pom.xml
index 08c481ffb..ba8d35e4e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -101,7 +101,7 @@
${java.version}
${mockito.version}
4.4.0
- 5.4.0
+ 5.6.0
1.13.1
4.4.8
3.0.1
diff --git a/src/main/java/org/springframework/data/neo4j/config/Neo4jCdiConfigurationSupport.java b/src/main/java/org/springframework/data/neo4j/config/Neo4jCdiConfigurationSupport.java
index 0859cd97f..b725b0000 100644
--- a/src/main/java/org/springframework/data/neo4j/config/Neo4jCdiConfigurationSupport.java
+++ b/src/main/java/org/springframework/data/neo4j/config/Neo4jCdiConfigurationSupport.java
@@ -19,6 +19,7 @@ import org.apiguardian.api.API;
import org.neo4j.cypherdsl.core.renderer.Configuration;
import org.neo4j.cypherdsl.core.renderer.Renderer;
import org.neo4j.driver.Driver;
+import org.neo4j.driver.types.TypeSystem;
import org.springframework.data.neo4j.core.DatabaseSelectionProvider;
import org.springframework.data.neo4j.core.Neo4jClient;
import org.springframework.data.neo4j.core.Neo4jOperations;
@@ -89,7 +90,7 @@ class Neo4jCdiConfigurationSupport {
@Produces @Singleton
public Neo4jMappingContext neo4jMappingContext(@SuppressWarnings("CdiInjectionPointsInspection") Driver driver, @Any Instance neo4JConversions) {
- return Neo4jMappingContext.builder().withNeo4jConversions(resolve(neo4JConversions)).withTypeSystem(driver.defaultTypeSystem()).build();
+ return Neo4jMappingContext.builder().withNeo4jConversions(resolve(neo4JConversions)).withTypeSystem(TypeSystem.getDefault()).build();
}
@Produces @Singleton
diff --git a/src/main/java/org/springframework/data/neo4j/core/DefaultNeo4jClient.java b/src/main/java/org/springframework/data/neo4j/core/DefaultNeo4jClient.java
index 51477fd57..6d08d6306 100644
--- a/src/main/java/org/springframework/data/neo4j/core/DefaultNeo4jClient.java
+++ b/src/main/java/org/springframework/data/neo4j/core/DefaultNeo4jClient.java
@@ -62,7 +62,6 @@ import org.springframework.util.StringUtils;
final class DefaultNeo4jClient implements Neo4jClient {
private final Driver driver;
- private final TypeSystem typeSystem;
private @Nullable final DatabaseSelectionProvider databaseSelectionProvider;
private @Nullable final UserSelectionProvider userSelectionProvider;
private final ConversionService conversionService;
@@ -75,7 +74,6 @@ final class DefaultNeo4jClient implements Neo4jClient {
DefaultNeo4jClient(Builder builder) {
this.driver = builder.driver;
- this.typeSystem = driver.defaultTypeSystem();
this.databaseSelectionProvider = builder.databaseSelectionProvider;
this.userSelectionProvider = builder.userSelectionProvider;
@@ -452,7 +450,7 @@ final class DefaultNeo4jClient implements Neo4jClient {
try (QueryRunner statementRunner = getQueryRunner(this.databaseSelection, this.impersonatedUser)) {
Result result = runnableStatement.runWith(statementRunner);
Optional optionalValue = result.hasNext() ?
- Optional.ofNullable(mappingFunction.apply(typeSystem, result.single())) :
+ Optional.ofNullable(mappingFunction.apply(TypeSystem.getDefault(), result.single())) :
Optional.empty();
ResultSummaries.process(result.consume());
return optionalValue;
@@ -468,7 +466,7 @@ final class DefaultNeo4jClient implements Neo4jClient {
try (QueryRunner statementRunner = getQueryRunner(this.databaseSelection, this.impersonatedUser)) {
Result result = runnableStatement.runWith(statementRunner);
- Optional optionalValue = result.stream().map(partialMappingFunction(typeSystem)).filter(Objects::nonNull).findFirst();
+ Optional optionalValue = result.stream().map(partialMappingFunction(TypeSystem.getDefault())).filter(Objects::nonNull).findFirst();
ResultSummaries.process(result.consume());
return optionalValue;
} catch (RuntimeException e) {
@@ -483,7 +481,7 @@ final class DefaultNeo4jClient implements Neo4jClient {
try (QueryRunner statementRunner = getQueryRunner(this.databaseSelection, this.impersonatedUser)) {
Result result = runnableStatement.runWith(statementRunner);
- Collection values = result.stream().map(partialMappingFunction(typeSystem)).filter(Objects::nonNull).collect(Collectors.toList());
+ Collection values = result.stream().map(partialMappingFunction(TypeSystem.getDefault())).filter(Objects::nonNull).collect(Collectors.toList());
ResultSummaries.process(result.consume());
return values;
} catch (RuntimeException e) {
diff --git a/src/main/java/org/springframework/data/neo4j/core/DefaultReactiveNeo4jClient.java b/src/main/java/org/springframework/data/neo4j/core/DefaultReactiveNeo4jClient.java
index a9de67c50..d1e94ec50 100644
--- a/src/main/java/org/springframework/data/neo4j/core/DefaultReactiveNeo4jClient.java
+++ b/src/main/java/org/springframework/data/neo4j/core/DefaultReactiveNeo4jClient.java
@@ -65,7 +65,6 @@ import java.util.function.Supplier;
final class DefaultReactiveNeo4jClient implements ReactiveNeo4jClient {
private final Driver driver;
- private final TypeSystem typeSystem;
private @Nullable final ReactiveDatabaseSelectionProvider databaseSelectionProvider;
private @Nullable final ReactiveUserSelectionProvider userSelectionProvider;
private final ConversionService conversionService;
@@ -78,7 +77,6 @@ final class DefaultReactiveNeo4jClient implements ReactiveNeo4jClient {
DefaultReactiveNeo4jClient(Builder builder) {
this.driver = builder.driver;
- this.typeSystem = driver.defaultTypeSystem();
this.databaseSelectionProvider = builder.databaseSelectionProvider;
this.userSelectionProvider = builder.impersonatedUserProvider;
@@ -418,7 +416,7 @@ final class DefaultReactiveNeo4jClient implements ReactiveNeo4jClient {
Flux executeWith(Tuple2> t, ReactiveQueryRunner runner) {
return Flux.usingWhen(Flux.from(runner.run(t.getT1(), t.getT2())),
- result -> Flux.from(result.records()).mapNotNull(r -> mappingFunction.apply(typeSystem, r)),
+ result -> Flux.from(result.records()).mapNotNull(r -> mappingFunction.apply(TypeSystem.getDefault(), r)),
result -> Flux.from(result.consume()).doOnNext(ResultSummaries::process));
}
diff --git a/src/test/java/org/springframework/data/neo4j/core/Neo4jClientTest.java b/src/test/java/org/springframework/data/neo4j/core/Neo4jClientTest.java
index 2222e2b08..4c350c0b9 100644
--- a/src/test/java/org/springframework/data/neo4j/core/Neo4jClientTest.java
+++ b/src/test/java/org/springframework/data/neo4j/core/Neo4jClientTest.java
@@ -90,7 +90,6 @@ class Neo4jClientTest {
void prepareMocks() {
when(driver.session(any(SessionConfig.class))).thenReturn(session);
- when(driver.defaultTypeSystem()).thenReturn(typeSystem);
when(session.lastBookmarks()).thenReturn(Set.of(Mockito.mock(Bookmark.class)));
}
@@ -308,8 +307,6 @@ class Neo4jClientTest {
for (String invalidDatabaseName : invalidDatabaseNames) {
assertThatIllegalArgumentException().isThrownBy(() -> client.query("RETURN 1").in(invalidDatabaseName));
}
-
- verify(driver).defaultTypeSystem();
}
@Test // GH-2159
diff --git a/src/test/java/org/springframework/data/neo4j/core/ReactiveNeo4jClientTest.java b/src/test/java/org/springframework/data/neo4j/core/ReactiveNeo4jClientTest.java
index f64bda693..fd2c3dbae 100644
--- a/src/test/java/org/springframework/data/neo4j/core/ReactiveNeo4jClientTest.java
+++ b/src/test/java/org/springframework/data/neo4j/core/ReactiveNeo4jClientTest.java
@@ -33,7 +33,6 @@ import org.neo4j.driver.Values;
import org.neo4j.driver.reactivestreams.ReactiveResult;
import org.neo4j.driver.reactivestreams.ReactiveSession;
import org.neo4j.driver.summary.ResultSummary;
-import org.neo4j.driver.types.TypeSystem;
import org.springframework.data.neo4j.core.transaction.Neo4jTransactionUtils;
import org.springframework.lang.Nullable;
import org.springframework.util.ReflectionUtils;
@@ -70,8 +69,6 @@ class ReactiveNeo4jClientTest {
@Mock private Driver driver;
- @Mock private TypeSystem typeSystem;
-
private ArgumentCaptor configArgumentCaptor = ArgumentCaptor.forClass(SessionConfig.class);
@Mock private ReactiveSession session;
@@ -86,8 +83,6 @@ class ReactiveNeo4jClientTest {
void prepareMocks() {
- when(driver.defaultTypeSystem()).thenReturn(typeSystem);
-
when(driver.session(eq(ReactiveSession.class), any(SessionConfig.class))).thenReturn(session);
when(session.lastBookmarks()).thenReturn(Set.of(Mockito.mock(Bookmark.class)));
@@ -308,8 +303,6 @@ class ReactiveNeo4jClientTest {
for (String invalidDatabaseName : invalidDatabaseNames) {
assertThatIllegalArgumentException().isThrownBy(() -> client.query("RETURN 1").in(invalidDatabaseName));
}
-
- verify(driver).defaultTypeSystem();
}
@Test // GH-2159
diff --git a/src/test/java/org/springframework/data/neo4j/core/TransactionHandlingTest.java b/src/test/java/org/springframework/data/neo4j/core/TransactionHandlingTest.java
index 1fab214af..a9e2f22a5 100644
--- a/src/test/java/org/springframework/data/neo4j/core/TransactionHandlingTest.java
+++ b/src/test/java/org/springframework/data/neo4j/core/TransactionHandlingTest.java
@@ -26,13 +26,8 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
-import reactor.core.publisher.Mono;
-import reactor.test.StepVerifier;
-
import java.util.concurrent.atomic.AtomicBoolean;
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -47,10 +42,12 @@ import org.neo4j.driver.Transaction;
import org.neo4j.driver.TransactionConfig;
import org.neo4j.driver.reactivestreams.ReactiveSession;
import org.neo4j.driver.reactivestreams.ReactiveTransaction;
-import org.neo4j.driver.types.TypeSystem;
import org.springframework.data.neo4j.core.transaction.Neo4jTransactionManager;
import org.springframework.transaction.support.TransactionTemplate;
+import reactor.core.publisher.Mono;
+import reactor.test.StepVerifier;
+
/**
* Ensure correct behaviour of both imperative and reactive clients in and outside Springs transaction management.
*
@@ -63,20 +60,6 @@ class TransactionHandlingTest {
@Mock private Session session;
- @Mock private TypeSystem typeSystem;
-
- @BeforeEach
- void prepareMocks() {
-
- when(driver.defaultTypeSystem()).thenReturn(typeSystem);
- }
-
- @AfterEach
- void verifyTypeSystemOnSession() {
-
- verify(driver).defaultTypeSystem();
- }
-
@Nested
class Neo4jClientTest {
diff --git a/src/test/java/org/springframework/data/neo4j/core/transaction/Neo4jTransactionManagerTest.java b/src/test/java/org/springframework/data/neo4j/core/transaction/Neo4jTransactionManagerTest.java
index cb5b62d7b..ef6521b8c 100644
--- a/src/test/java/org/springframework/data/neo4j/core/transaction/Neo4jTransactionManagerTest.java
+++ b/src/test/java/org/springframework/data/neo4j/core/transaction/Neo4jTransactionManagerTest.java
@@ -91,7 +91,6 @@ class Neo4jTransactionManagerTest {
@Test
void triggerCommitCorrectly() {
- when(driver.defaultTypeSystem()).thenReturn(typeSystem);
when(driver.session(any(SessionConfig.class))).thenReturn(session);
when(session.beginTransaction(any(TransactionConfig.class))).thenReturn(transaction);
when(transaction.run(anyString(), anyMap())).thenReturn(statementResult);
@@ -122,7 +121,6 @@ class Neo4jTransactionManagerTest {
@Test
void usesBookmarksCorrectly() throws Exception {
- when(driver.defaultTypeSystem()).thenReturn(typeSystem);
when(driver.session(any(SessionConfig.class))).thenReturn(session);
when(session.beginTransaction(any(TransactionConfig.class))).thenReturn(transaction);
Set bookmark = Set.of(new BookmarkForTesting("blubb"));