Skip to content

Commit 3a5f2ba

Browse files
Fix circular dependency of bookmarkmanagers.
1 parent 5148521 commit 3a5f2ba

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

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

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public abstract class AbstractNeo4jConfig extends Neo4jConfigurationSupport {
4949
private ObjectProvider<UserSelectionProvider> userSelectionProviders;
5050

5151
@Autowired
52-
private Neo4jBookmarkManager bookmarkManager;
52+
private ObjectProvider<Neo4jBookmarkManager> bookmarkManagerProviders;
5353

5454
/**
5555
* The driver to be used for interacting with Neo4j.
@@ -70,10 +70,14 @@ public Neo4jClient neo4jClient(Driver driver, DatabaseSelectionProvider database
7070
return Neo4jClient.with(driver)
7171
.withDatabaseSelectionProvider(databaseSelectionProvider)
7272
.withUserSelectionProvider(getUserSelectionProvider())
73-
.withNeo4jBookmarkManager(bookmarkManager)
73+
.withNeo4jBookmarkManager(getBootBookmarkManager())
7474
.build();
7575
}
7676

77+
private Neo4jBookmarkManager getBootBookmarkManager() {
78+
return this.bookmarkManagerProviders.getIfAvailable(Neo4jBookmarkManager::create);
79+
}
80+
7781
@Nullable
7882
private UserSelectionProvider getUserSelectionProvider() {
7983
return this.userSelectionProviders == null ? null : this.userSelectionProviders.getIfUnique();
@@ -99,7 +103,7 @@ public PlatformTransactionManager transactionManager(Driver driver, DatabaseSele
99103
.with(driver)
100104
.withDatabaseSelectionProvider(databaseSelectionProvider)
101105
.withUserSelectionProvider(getUserSelectionProvider())
102-
.withBookmarkManager(bookmarkManager)
106+
.withBookmarkManager(getBootBookmarkManager())
103107
.build();
104108
}
105109

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

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public abstract class AbstractReactiveNeo4jConfig extends Neo4jConfigurationSupp
4949
private ObjectProvider<ReactiveUserSelectionProvider> userSelectionProviders;
5050

5151
@Autowired
52-
private Neo4jBookmarkManager bookmarkManager;
52+
private ObjectProvider<Neo4jBookmarkManager> bookmarkManagerProviders;
5353

5454
/**
5555
* The driver to be used for interacting with Neo4j.
@@ -70,10 +70,14 @@ public ReactiveNeo4jClient neo4jClient(Driver driver, ReactiveDatabaseSelectionP
7070
return ReactiveNeo4jClient.with(driver)
7171
.withDatabaseSelectionProvider(databaseSelectionProvider)
7272
.withUserSelectionProvider(getUserSelectionProvider())
73-
.withNeo4jBookmarkManager(bookmarkManager)
73+
.withNeo4jBookmarkManager(getBootBookmarkManager())
7474
.build();
7575
}
7676

77+
private Neo4jBookmarkManager getBootBookmarkManager() {
78+
return this.bookmarkManagerProviders.getIfAvailable(Neo4jBookmarkManager::createReactive);
79+
}
80+
7781
@Nullable
7882
private ReactiveUserSelectionProvider getUserSelectionProvider() {
7983
return this.userSelectionProviders == null ? null : this.userSelectionProviders.getIfUnique();
@@ -99,7 +103,7 @@ public ReactiveTransactionManager reactiveTransactionManager(Driver driver,
99103
return ReactiveNeo4jTransactionManager.with(driver)
100104
.withDatabaseSelectionProvider(databaseSelectionProvider)
101105
.withUserSelectionProvider(getUserSelectionProvider())
102-
.withBookmarkManager(bookmarkManager)
106+
.withBookmarkManager(getBootBookmarkManager())
103107
.build();
104108
}
105109

0 commit comments

Comments
 (0)