16
16
17
17
package org .springframework .data .mongodb .repository .config ;
18
18
19
- import java .lang .annotation .Annotation ;
20
19
import java .util .Collection ;
21
20
import java .util .Collections ;
22
- import java .util .stream .Collectors ;
23
21
24
- import org .springframework .beans .factory .support .AbstractBeanDefinition ;
25
22
import org .springframework .beans .factory .support .BeanDefinitionBuilder ;
26
- import org .springframework .beans .factory .support .BeanDefinitionRegistry ;
27
- import org .springframework .beans .factory .support .RootBeanDefinition ;
28
23
import org .springframework .core .annotation .AnnotationAttributes ;
29
- import org .springframework .core .io .ResourceLoader ;
30
24
import org .springframework .data .config .ParsingUtils ;
31
- import org .springframework .data .mongodb .config .BeanNames ;
32
- import org .springframework .data .mongodb .core .mapping .Document ;
33
- import org .springframework .data .mongodb .core .mapping .MongoMappingContext ;
34
25
import org .springframework .data .mongodb .repository .ReactiveMongoRepository ;
35
26
import org .springframework .data .mongodb .repository .support .ReactiveMongoRepositoryFactoryBean ;
36
27
import org .springframework .data .repository .config .AnnotationRepositoryConfigurationSource ;
37
- import org .springframework .data .repository .config .RepositoryConfiguration ;
38
28
import org .springframework .data .repository .config .RepositoryConfigurationExtension ;
39
- import org .springframework .data .repository .config .RepositoryConfigurationExtensionSupport ;
40
- import org .springframework .data .repository .config .RepositoryConfigurationSource ;
41
29
import org .springframework .data .repository .config .XmlRepositoryConfigurationSource ;
30
+ import org .springframework .data .repository .core .RepositoryMetadata ;
42
31
import org .w3c .dom .Element ;
43
32
44
33
/**
45
34
* Reactive {@link RepositoryConfigurationExtension} for MongoDB.
46
35
*
47
36
* @author Mark Paluch
48
37
* @author Christoph Strobl
38
+ * @author Oliver Gierke
49
39
* @since 2.0
50
40
*/
51
- public class ReactiveMongoRepositoryConfigurationExtension extends RepositoryConfigurationExtensionSupport {
41
+ class ReactiveMongoRepositoryConfigurationExtension extends MongoRepositoryConfigurationExtension {
52
42
53
43
private static final String MONGO_TEMPLATE_REF = "reactive-mongo-template-ref" ;
54
44
private static final String CREATE_QUERY_INDEXES = "create-query-indexes" ;
55
45
56
- private boolean fallbackMappingContextCreated = false ;
57
-
58
46
/*
59
47
* (non-Javadoc)
60
48
* @see org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport#getModuleName()
@@ -64,15 +52,6 @@ public String getModuleName() {
64
52
return "Reactive MongoDB" ;
65
53
}
66
54
67
- /*
68
- * (non-Javadoc)
69
- * @see org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport#getModulePrefix()
70
- */
71
- @ Override
72
- protected String getModulePrefix () {
73
- return "mongo" ;
74
- }
75
-
76
55
/*
77
56
* (non-Javadoc)
78
57
* @see org.springframework.data.repository.config.RepositoryConfigurationExtension#getRepositoryFactoryClassName()
@@ -81,15 +60,6 @@ public String getRepositoryFactoryClassName() {
81
60
return ReactiveMongoRepositoryFactoryBean .class .getName ();
82
61
}
83
62
84
- /*
85
- * (non-Javadoc)
86
- * @see org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport#getIdentifyingAnnotations()
87
- */
88
- @ Override
89
- protected Collection <Class <? extends Annotation >> getIdentifyingAnnotations () {
90
- return Collections .singleton (Document .class );
91
- }
92
-
93
63
/*
94
64
* (non-Javadoc)
95
65
* @see org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport#getIdentifyingTypes()
@@ -99,18 +69,6 @@ protected Collection<Class<?>> getIdentifyingTypes() {
99
69
return Collections .singleton (ReactiveMongoRepository .class );
100
70
}
101
71
102
- /*
103
- * (non-Javadoc)
104
- * @see org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport#postProcess(org.springframework.beans.factory.support.BeanDefinitionBuilder, org.springframework.data.repository.config.RepositoryConfigurationSource)
105
- */
106
- @ Override
107
- public void postProcess (BeanDefinitionBuilder builder , RepositoryConfigurationSource source ) {
108
-
109
- if (fallbackMappingContextCreated ) {
110
- builder .addPropertyReference ("mappingContext" , BeanNames .MAPPING_CONTEXT_BEAN_NAME );
111
- }
112
- }
113
-
114
72
/*
115
73
* (non-Javadoc)
116
74
* @see org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport#postProcess(org.springframework.beans.factory.support.BeanDefinitionBuilder, org.springframework.data.repository.config.XmlRepositoryConfigurationSource)
@@ -139,32 +97,10 @@ public void postProcess(BeanDefinitionBuilder builder, AnnotationRepositoryConfi
139
97
140
98
/*
141
99
* (non-Javadoc)
142
- * @see org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport#registerBeansForRoot (org.springframework.beans.factory.support.BeanDefinitionRegistry, org.springframework. data.repository.config.RepositoryConfigurationSource )
100
+ * @see org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport#useRepositoryConfiguration (org.springframework.data.repository.core.RepositoryMetadata )
143
101
*/
144
102
@ Override
145
- public void registerBeansForRoot (BeanDefinitionRegistry registry , RepositoryConfigurationSource configurationSource ) {
146
-
147
- super .registerBeansForRoot (registry , configurationSource );
148
-
149
- if (!registry .containsBeanDefinition (BeanNames .MAPPING_CONTEXT_BEAN_NAME )) {
150
-
151
- RootBeanDefinition definition = new RootBeanDefinition (MongoMappingContext .class );
152
- definition .setRole (AbstractBeanDefinition .ROLE_INFRASTRUCTURE );
153
- definition .setSource (configurationSource .getSource ());
154
-
155
- registry .registerBeanDefinition (BeanNames .MAPPING_CONTEXT_BEAN_NAME , definition );
156
- }
157
- }
158
-
159
- @ Override
160
- public <T extends RepositoryConfigurationSource > Collection <RepositoryConfiguration <T >> getRepositoryConfigurations (
161
- T configSource , ResourceLoader loader , boolean strictMatchesOnly ) {
162
-
163
- Collection <RepositoryConfiguration <T >> repositoryConfigurations = super .getRepositoryConfigurations (configSource ,
164
- loader , strictMatchesOnly );
165
-
166
- return repositoryConfigurations .stream ()
167
- .filter (configuration -> RepositoryType .isReactiveRepository (loadRepositoryInterface (configuration , loader )))
168
- .collect (Collectors .toList ());
103
+ protected boolean useRepositoryConfiguration (RepositoryMetadata metadata ) {
104
+ return metadata .isReactiveRepository ();
169
105
}
170
106
}
0 commit comments