Fix circular dependency of bookmarkmanagers.

This commit is contained in:
Michael Simons
2023-09-07 16:05:29 +02:00
parent d208634ec0
commit 2bc92b78ea
2 changed files with 14 additions and 6 deletions

View File

@@ -49,7 +49,7 @@ public abstract class AbstractNeo4jConfig extends Neo4jConfigurationSupport {
private ObjectProvider<UserSelectionProvider> userSelectionProviders;
@Autowired
private Neo4jBookmarkManager bookmarkManager;
private ObjectProvider<Neo4jBookmarkManager> bookmarkManagerProviders;
/**
* The driver to be used for interacting with Neo4j.
@@ -70,10 +70,14 @@ public abstract class AbstractNeo4jConfig extends Neo4jConfigurationSupport {
return Neo4jClient.with(driver)
.withDatabaseSelectionProvider(databaseSelectionProvider)
.withUserSelectionProvider(getUserSelectionProvider())
.withNeo4jBookmarkManager(bookmarkManager)
.withNeo4jBookmarkManager(getBootBookmarkManager())
.build();
}
private Neo4jBookmarkManager getBootBookmarkManager() {
return this.bookmarkManagerProviders.getIfAvailable(Neo4jBookmarkManager::create);
}
@Nullable
private UserSelectionProvider getUserSelectionProvider() {
return this.userSelectionProviders == null ? null : this.userSelectionProviders.getIfUnique();
@@ -99,7 +103,7 @@ public abstract class AbstractNeo4jConfig extends Neo4jConfigurationSupport {
.with(driver)
.withDatabaseSelectionProvider(databaseSelectionProvider)
.withUserSelectionProvider(getUserSelectionProvider())
.withBookmarkManager(bookmarkManager)
.withBookmarkManager(getBootBookmarkManager())
.build();
}

View File

@@ -49,7 +49,7 @@ public abstract class AbstractReactiveNeo4jConfig extends Neo4jConfigurationSupp
private ObjectProvider<ReactiveUserSelectionProvider> userSelectionProviders;
@Autowired
private Neo4jBookmarkManager bookmarkManager;
private ObjectProvider<Neo4jBookmarkManager> bookmarkManagerProviders;
/**
* The driver to be used for interacting with Neo4j.
@@ -70,10 +70,14 @@ public abstract class AbstractReactiveNeo4jConfig extends Neo4jConfigurationSupp
return ReactiveNeo4jClient.with(driver)
.withDatabaseSelectionProvider(databaseSelectionProvider)
.withUserSelectionProvider(getUserSelectionProvider())
.withNeo4jBookmarkManager(bookmarkManager)
.withNeo4jBookmarkManager(getBootBookmarkManager())
.build();
}
private Neo4jBookmarkManager getBootBookmarkManager() {
return this.bookmarkManagerProviders.getIfAvailable(Neo4jBookmarkManager::createReactive);
}
@Nullable
private ReactiveUserSelectionProvider getUserSelectionProvider() {
return this.userSelectionProviders == null ? null : this.userSelectionProviders.getIfUnique();
@@ -99,7 +103,7 @@ public abstract class AbstractReactiveNeo4jConfig extends Neo4jConfigurationSupp
return ReactiveNeo4jTransactionManager.with(driver)
.withDatabaseSelectionProvider(databaseSelectionProvider)
.withUserSelectionProvider(getUserSelectionProvider())
.withBookmarkManager(bookmarkManager)
.withBookmarkManager(getBootBookmarkManager())
.build();
}