53
53
* @author Vince Bickers
54
54
* @author Stephane Nicoll
55
55
* @author Kazuki Shimizu
56
+ * @author Michael Simons
56
57
* @since 1.4.0
57
58
*/
58
59
@ Configuration (proxyBeanMethods = false )
59
60
@ ConditionalOnClass ({ SessionFactory .class , Neo4jTransactionManager .class , PlatformTransactionManager .class })
60
- @ ConditionalOnMissingBean (SessionFactory .class )
61
61
@ EnableConfigurationProperties (Neo4jProperties .class )
62
62
@ Import (Neo4jBookmarkManagementConfiguration .class )
63
63
public class Neo4jDataAutoConfiguration {
64
64
65
- @ Bean
66
- @ ConditionalOnMissingBean
67
- public org .neo4j .ogm .config .Configuration configuration (Neo4jProperties properties ) {
68
- return properties .createConfiguration ();
69
- }
70
-
71
- @ Bean
72
- public SessionFactory sessionFactory (org .neo4j .ogm .config .Configuration configuration ,
73
- ApplicationContext applicationContext , ObjectProvider <EventListener > eventListeners ) {
74
- SessionFactory sessionFactory = new SessionFactory (configuration , getPackagesToScan (applicationContext ));
75
- eventListeners .stream ().forEach (sessionFactory ::register );
76
- return sessionFactory ;
77
- }
78
-
79
65
@ Bean
80
66
@ ConditionalOnMissingBean (PlatformTransactionManager .class )
81
- public Neo4jTransactionManager transactionManager (SessionFactory sessionFactory , Neo4jProperties properties ,
67
+ public Neo4jTransactionManager transactionManager (SessionFactory sessionFactory ,
82
68
ObjectProvider <TransactionManagerCustomizers > transactionManagerCustomizers ) {
83
69
return customize (new Neo4jTransactionManager (sessionFactory ), transactionManagerCustomizers .getIfAvailable ());
84
70
}
@@ -91,12 +77,32 @@ private Neo4jTransactionManager customize(Neo4jTransactionManager transactionMan
91
77
return transactionManager ;
92
78
}
93
79
94
- private String [] getPackagesToScan (ApplicationContext applicationContext ) {
95
- List <String > packages = EntityScanPackages .get (applicationContext ).getPackageNames ();
96
- if (packages .isEmpty () && AutoConfigurationPackages .has (applicationContext )) {
97
- packages = AutoConfigurationPackages .get (applicationContext );
80
+ @ Configuration (proxyBeanMethods = false )
81
+ @ ConditionalOnMissingBean (SessionFactory .class )
82
+ protected static class Neo4jOgmSessionFactoryConfiguration {
83
+
84
+ @ Bean
85
+ @ ConditionalOnMissingBean
86
+ public org .neo4j .ogm .config .Configuration configuration (Neo4jProperties properties ) {
87
+ return properties .createConfiguration ();
88
+ }
89
+
90
+ @ Bean
91
+ public SessionFactory sessionFactory (org .neo4j .ogm .config .Configuration configuration ,
92
+ ApplicationContext applicationContext , ObjectProvider <EventListener > eventListeners ) {
93
+ SessionFactory sessionFactory = new SessionFactory (configuration , getPackagesToScan (applicationContext ));
94
+ eventListeners .stream ().forEach (sessionFactory ::register );
95
+ return sessionFactory ;
98
96
}
99
- return StringUtils .toStringArray (packages );
97
+
98
+ private String [] getPackagesToScan (ApplicationContext applicationContext ) {
99
+ List <String > packages = EntityScanPackages .get (applicationContext ).getPackageNames ();
100
+ if (packages .isEmpty () && AutoConfigurationPackages .has (applicationContext )) {
101
+ packages = AutoConfigurationPackages .get (applicationContext );
102
+ }
103
+ return StringUtils .toStringArray (packages );
104
+ }
105
+
100
106
}
101
107
102
108
@ Configuration (proxyBeanMethods = false )
0 commit comments