|
|
|
|
@ -53,32 +53,18 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@@ -53,32 +53,18 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
|
|
|
|
* @author Vince Bickers |
|
|
|
|
* @author Stephane Nicoll |
|
|
|
|
* @author Kazuki Shimizu |
|
|
|
|
* @author Michael Simons |
|
|
|
|
* @since 1.4.0 |
|
|
|
|
*/ |
|
|
|
|
@Configuration(proxyBeanMethods = false) |
|
|
|
|
@ConditionalOnClass({ SessionFactory.class, Neo4jTransactionManager.class, PlatformTransactionManager.class }) |
|
|
|
|
@ConditionalOnMissingBean(SessionFactory.class) |
|
|
|
|
@EnableConfigurationProperties(Neo4jProperties.class) |
|
|
|
|
@Import(Neo4jBookmarkManagementConfiguration.class) |
|
|
|
|
public class Neo4jDataAutoConfiguration { |
|
|
|
|
|
|
|
|
|
@Bean |
|
|
|
|
@ConditionalOnMissingBean |
|
|
|
|
public org.neo4j.ogm.config.Configuration configuration(Neo4jProperties properties) { |
|
|
|
|
return properties.createConfiguration(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Bean |
|
|
|
|
public SessionFactory sessionFactory(org.neo4j.ogm.config.Configuration configuration, |
|
|
|
|
ApplicationContext applicationContext, ObjectProvider<EventListener> eventListeners) { |
|
|
|
|
SessionFactory sessionFactory = new SessionFactory(configuration, getPackagesToScan(applicationContext)); |
|
|
|
|
eventListeners.stream().forEach(sessionFactory::register); |
|
|
|
|
return sessionFactory; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Bean |
|
|
|
|
@ConditionalOnMissingBean(PlatformTransactionManager.class) |
|
|
|
|
public Neo4jTransactionManager transactionManager(SessionFactory sessionFactory, Neo4jProperties properties, |
|
|
|
|
public Neo4jTransactionManager transactionManager(SessionFactory sessionFactory, |
|
|
|
|
ObjectProvider<TransactionManagerCustomizers> transactionManagerCustomizers) { |
|
|
|
|
return customize(new Neo4jTransactionManager(sessionFactory), transactionManagerCustomizers.getIfAvailable()); |
|
|
|
|
} |
|
|
|
|
@ -91,12 +77,32 @@ public class Neo4jDataAutoConfiguration {
@@ -91,12 +77,32 @@ public class Neo4jDataAutoConfiguration {
|
|
|
|
|
return transactionManager; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private String[] getPackagesToScan(ApplicationContext applicationContext) { |
|
|
|
|
List<String> packages = EntityScanPackages.get(applicationContext).getPackageNames(); |
|
|
|
|
if (packages.isEmpty() && AutoConfigurationPackages.has(applicationContext)) { |
|
|
|
|
packages = AutoConfigurationPackages.get(applicationContext); |
|
|
|
|
@Configuration(proxyBeanMethods = false) |
|
|
|
|
@ConditionalOnMissingBean(SessionFactory.class) |
|
|
|
|
protected static class Neo4jOgmSessionFactoryConfiguration { |
|
|
|
|
|
|
|
|
|
@Bean |
|
|
|
|
@ConditionalOnMissingBean |
|
|
|
|
public org.neo4j.ogm.config.Configuration configuration(Neo4jProperties properties) { |
|
|
|
|
return properties.createConfiguration(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Bean |
|
|
|
|
public SessionFactory sessionFactory(org.neo4j.ogm.config.Configuration configuration, |
|
|
|
|
ApplicationContext applicationContext, ObjectProvider<EventListener> eventListeners) { |
|
|
|
|
SessionFactory sessionFactory = new SessionFactory(configuration, getPackagesToScan(applicationContext)); |
|
|
|
|
eventListeners.stream().forEach(sessionFactory::register); |
|
|
|
|
return sessionFactory; |
|
|
|
|
} |
|
|
|
|
return StringUtils.toStringArray(packages); |
|
|
|
|
|
|
|
|
|
private String[] getPackagesToScan(ApplicationContext applicationContext) { |
|
|
|
|
List<String> packages = EntityScanPackages.get(applicationContext).getPackageNames(); |
|
|
|
|
if (packages.isEmpty() && AutoConfigurationPackages.has(applicationContext)) { |
|
|
|
|
packages = AutoConfigurationPackages.get(applicationContext); |
|
|
|
|
} |
|
|
|
|
return StringUtils.toStringArray(packages); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Configuration(proxyBeanMethods = false) |
|
|
|
|
|