23
23
import org .neo4j .ogm .session .SessionFactory ;
24
24
import org .neo4j .ogm .session .event .EventListener ;
25
25
26
+ import org .springframework .beans .factory .BeanFactory ;
26
27
import org .springframework .beans .factory .ObjectProvider ;
27
28
import org .springframework .boot .autoconfigure .AutoConfigurationPackages ;
28
29
import org .springframework .boot .autoconfigure .EnableAutoConfiguration ;
34
35
import org .springframework .boot .autoconfigure .domain .EntityScanPackages ;
35
36
import org .springframework .boot .autoconfigure .transaction .TransactionManagerCustomizers ;
36
37
import org .springframework .boot .context .properties .EnableConfigurationProperties ;
37
- import org .springframework .context .ApplicationContext ;
38
38
import org .springframework .context .annotation .Bean ;
39
39
import org .springframework .context .annotation .Configuration ;
40
40
import org .springframework .context .annotation .Import ;
@@ -66,39 +66,33 @@ public class Neo4jDataAutoConfiguration {
66
66
@ ConditionalOnMissingBean (PlatformTransactionManager .class )
67
67
public Neo4jTransactionManager transactionManager (SessionFactory sessionFactory ,
68
68
ObjectProvider <TransactionManagerCustomizers > transactionManagerCustomizers ) {
69
- return customize (new Neo4jTransactionManager (sessionFactory ), transactionManagerCustomizers .getIfAvailable ());
70
- }
71
-
72
- private Neo4jTransactionManager customize (Neo4jTransactionManager transactionManager ,
73
- TransactionManagerCustomizers customizers ) {
74
- if (customizers != null ) {
75
- customizers .customize (transactionManager );
76
- }
69
+ Neo4jTransactionManager transactionManager = new Neo4jTransactionManager (sessionFactory );
70
+ transactionManagerCustomizers .ifAvailable ((customizers ) -> customizers .customize (transactionManager ));
77
71
return transactionManager ;
78
72
}
79
73
80
74
@ Configuration (proxyBeanMethods = false )
81
75
@ ConditionalOnMissingBean (SessionFactory .class )
82
- protected static class Neo4jOgmSessionFactoryConfiguration {
76
+ static class Neo4jOgmSessionFactoryConfiguration {
83
77
84
78
@ Bean
85
79
@ ConditionalOnMissingBean
86
- public org .neo4j .ogm .config .Configuration configuration (Neo4jProperties properties ) {
80
+ org .neo4j .ogm .config .Configuration configuration (Neo4jProperties properties ) {
87
81
return properties .createConfiguration ();
88
82
}
89
83
90
84
@ 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 );
85
+ SessionFactory sessionFactory (org .neo4j .ogm .config .Configuration configuration , BeanFactory beanFactory ,
86
+ ObjectProvider <EventListener > eventListeners ) {
87
+ SessionFactory sessionFactory = new SessionFactory (configuration , getPackagesToScan (beanFactory ));
88
+ eventListeners .orderedStream ().forEach (sessionFactory ::register );
95
89
return sessionFactory ;
96
90
}
97
91
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 );
92
+ private String [] getPackagesToScan (BeanFactory beanFactory ) {
93
+ List <String > packages = EntityScanPackages .get (beanFactory ).getPackageNames ();
94
+ if (packages .isEmpty () && AutoConfigurationPackages .has (beanFactory )) {
95
+ packages = AutoConfigurationPackages .get (beanFactory );
102
96
}
103
97
return StringUtils .toStringArray (packages );
104
98
}
@@ -111,19 +105,13 @@ private String[] getPackagesToScan(ApplicationContext applicationContext) {
111
105
@ ConditionalOnMissingBean (OpenSessionInViewInterceptor .class )
112
106
@ ConditionalOnProperty (prefix = "spring.data.neo4j" , name = "open-in-view" , havingValue = "true" ,
113
107
matchIfMissing = true )
114
- protected static class Neo4jWebConfiguration {
108
+ static class Neo4jWebConfiguration {
115
109
116
110
private static final Log logger = LogFactory .getLog (Neo4jWebConfiguration .class );
117
111
118
- private final Neo4jProperties neo4jProperties ;
119
-
120
- protected Neo4jWebConfiguration (Neo4jProperties neo4jProperties ) {
121
- this .neo4jProperties = neo4jProperties ;
122
- }
123
-
124
112
@ Bean
125
- public OpenSessionInViewInterceptor neo4jOpenSessionInViewInterceptor () {
126
- if (this . neo4jProperties .getOpenInView () == null ) {
113
+ OpenSessionInViewInterceptor neo4jOpenSessionInViewInterceptor (Neo4jProperties properties ) {
114
+ if (properties .getOpenInView () == null ) {
127
115
logger .warn ("spring.data.neo4j.open-in-view is enabled by default."
128
116
+ "Therefore, database queries may be performed during view "
129
117
+ "rendering. Explicitly configure "
@@ -133,7 +121,7 @@ public OpenSessionInViewInterceptor neo4jOpenSessionInViewInterceptor() {
133
121
}
134
122
135
123
@ Bean
136
- public WebMvcConfigurer neo4jOpenSessionInViewInterceptorConfigurer (OpenSessionInViewInterceptor interceptor ) {
124
+ WebMvcConfigurer neo4jOpenSessionInViewInterceptorConfigurer (OpenSessionInViewInterceptor interceptor ) {
137
125
return new WebMvcConfigurer () {
138
126
139
127
@ Override
0 commit comments