GH-2699 - Upgrade Java Driver to 5.6.0.

Closes #2699.
This commit is contained in:
Michael Simons
2023-03-22 15:19:53 +01:00
parent f284b309dc
commit edaa4ce77a
8 changed files with 10 additions and 42 deletions

View File

@@ -101,7 +101,7 @@
<maven.compiler.release>${java.version}</maven.compiler.release>
<mockito>${mockito.version}</mockito>
<mockito.version>4.4.0</mockito.version>
<neo4j-java-driver.version>5.4.0</neo4j-java-driver.version>
<neo4j-java-driver.version>5.6.0</neo4j-java-driver.version>
<neo4j-migrations.version>1.13.1</neo4j-migrations.version>
<neo4j.version>4.4.8</neo4j.version>
<objenesis.version>3.0.1</objenesis.version>

View File

@@ -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> neo4JConversions) {
return Neo4jMappingContext.builder().withNeo4jConversions(resolve(neo4JConversions)).withTypeSystem(driver.defaultTypeSystem()).build();
return Neo4jMappingContext.builder().withNeo4jConversions(resolve(neo4JConversions)).withTypeSystem(TypeSystem.getDefault()).build();
}
@Produces @Singleton

View File

@@ -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<T> 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<T> optionalValue = result.stream().map(partialMappingFunction(typeSystem)).filter(Objects::nonNull).findFirst();
Optional<T> 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<T> values = result.stream().map(partialMappingFunction(typeSystem)).filter(Objects::nonNull).collect(Collectors.toList());
Collection<T> values = result.stream().map(partialMappingFunction(TypeSystem.getDefault())).filter(Objects::nonNull).collect(Collectors.toList());
ResultSummaries.process(result.consume());
return values;
} catch (RuntimeException e) {

View File

@@ -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<T> executeWith(Tuple2<String, Map<String, Object>> 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));
}

View File

@@ -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

View File

@@ -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<SessionConfig> 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

View File

@@ -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 {

View File

@@ -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> bookmark = Set.of(new BookmarkForTesting("blubb"));