18
18
19
19
import java .lang .reflect .InvocationTargetException ;
20
20
21
+ import org .springframework .beans .factory .annotation .Autowired ;
22
+ import org .springframework .context .ApplicationContext ;
21
23
import org .springframework .context .annotation .Bean ;
22
24
import org .springframework .context .annotation .Configuration ;
23
25
import org .springframework .data .auditing .DateTimeProvider ;
26
+ import org .springframework .data .convert .CustomConversions ;
24
27
import org .springframework .data .couchbase .CouchbaseClientFactory ;
25
28
import org .springframework .data .couchbase .SimpleCouchbaseClientFactory ;
26
29
import org .springframework .data .couchbase .config .AbstractCouchbaseConfiguration ;
33
36
import org .springframework .data .couchbase .core .mapping .CouchbaseMappingContext ;
34
37
import org .springframework .data .couchbase .domain .time .AuditingDateTimeProvider ;
35
38
import org .springframework .data .couchbase .repository .auditing .EnableCouchbaseAuditing ;
39
+ import org .springframework .data .couchbase .repository .auditing .EnableReactiveCouchbaseAuditing ;
36
40
import org .springframework .data .couchbase .repository .config .EnableCouchbaseRepositories ;
37
41
import org .springframework .data .couchbase .repository .config .ReactiveRepositoryOperationsMapping ;
38
42
import org .springframework .data .couchbase .repository .config .RepositoryOperationsMapping ;
48
52
*/
49
53
@ Configuration
50
54
@ EnableCouchbaseRepositories
51
- @ EnableCouchbaseAuditing (auditorAwareRef = "auditorAwareRef" , dateTimeProviderRef = "dateTimeProviderRef" )
55
+ @ EnableCouchbaseAuditing (auditorAwareRef = "auditorAwareRef" , dateTimeProviderRef = "dateTimeProviderRef" ) // this
56
+ // activates
57
+ // auditing
58
+ @ EnableReactiveCouchbaseAuditing (auditorAwareRef = "reactiveAuditorAwareRef" ,
59
+ dateTimeProviderRef = "dateTimeProviderRef" ) // this activates auditing
60
+
52
61
public class Config extends AbstractCouchbaseConfiguration {
53
62
String bucketname = "travel-sample" ;
54
63
String username = "Administrator" ;
@@ -104,6 +113,11 @@ public NaiveAuditorAware testAuditorAware() {
104
113
return new NaiveAuditorAware ();
105
114
}
106
115
116
+ @ Bean (name = "reactiveAuditorAwareRef" )
117
+ public ReactiveNaiveAuditorAware testReactiveAuditorAware () {
118
+ return new ReactiveNaiveAuditorAware ();
119
+ }
120
+
107
121
@ Bean (name = "dateTimeProviderRef" )
108
122
public DateTimeProvider testDateTimeProvider () {
109
123
return new AuditingDateTimeProvider ();
@@ -113,12 +127,12 @@ public DateTimeProvider testDateTimeProvider() {
113
127
public void configureReactiveRepositoryOperationsMapping (ReactiveRepositoryOperationsMapping baseMapping ) {
114
128
try {
115
129
// comment out references to 'protected' and 'mybucket' - they are only to show how multi-bucket would work
116
- // ReactiveCouchbaseTemplate personTemplate =
117
- // myReactiveCouchbaseTemplate(myCouchbaseClientFactory("protected"),new MappingCouchbaseConverter( ));
130
+ // ReactiveCouchbaseTemplate personTemplate = myReactiveCouchbaseTemplate(myCouchbaseClientFactory("protected"),
131
+ // (MappingCouchbaseConverter) (baseMapping.getDefault().getConverter() ));
118
132
// baseMapping.mapEntity(Person.class, personTemplate); // Person goes in "protected" bucket
119
- // ReactiveCouchbaseTemplate userTemplate = myReactiveCouchbaseTemplate(myCouchbaseClientFactory("mybucket"),new
120
- // MappingCouchbaseConverter( ));
121
- // baseMapping.mapEntity(User.class, userTemplate); // User goes in "mybucket"
133
+ // ReactiveCouchbaseTemplate userTemplate = myReactiveCouchbaseTemplate(myCouchbaseClientFactory("mybucket"),
134
+ // ( MappingCouchbaseConverter) (baseMapping.getDefault().getConverter() ));
135
+ //baseMapping.mapEntity(User.class, userTemplate); // User goes in "mybucket"
122
136
// everything else goes in getBucketName() ( which is travel-sample )
123
137
} catch (Exception e ) {
124
138
throw e ;
@@ -129,11 +143,12 @@ public void configureReactiveRepositoryOperationsMapping(ReactiveRepositoryOpera
129
143
public void configureRepositoryOperationsMapping (RepositoryOperationsMapping baseMapping ) {
130
144
try {
131
145
// comment out references to 'protected' and 'mybucket' - they are only to show how multi-bucket would work
132
- // CouchbaseTemplate personTemplate = myCouchbaseTemplate(myCouchbaseClientFactory("protected"),new
133
- // MappingCouchbaseConverter( ));
146
+ // CouchbaseTemplate personTemplate = myCouchbaseTemplate(myCouchbaseClientFactory("protected"),
147
+ // ( MappingCouchbaseConverter) (baseMapping.getDefault().getConverter() ));
134
148
// baseMapping.mapEntity(Person.class, personTemplate); // Person goes in "protected" bucket
135
- // CouchbaseTemplate userTemplate = myCouchbaseTemplate(myCouchbaseClientFactory("mybucket"),new
136
- // MappingCouchbaseConverter());
149
+ // MappingCouchbaseConverter cvtr = (MappingCouchbaseConverter)baseMapping.getDefault().getConverter();
150
+ // CouchbaseTemplate userTemplate = myCouchbaseTemplate(myCouchbaseClientFactory("mybucket"),
151
+ // (MappingCouchbaseConverter) (baseMapping.getDefault().getConverter()));
137
152
// baseMapping.mapEntity(User.class, userTemplate); // User goes in "mybucket"
138
153
// everything else goes in getBucketName() ( which is travel-sample )
139
154
} catch (Exception e ) {
@@ -176,10 +191,11 @@ public MappingCouchbaseConverter mappingCouchbaseConverter() {
176
191
return converter ;
177
192
}
178
193
194
+ /* This uses a CustomMappingCouchbaseConverter instead of MappingCouchbaseConverter */
179
195
@ Override
180
- @ Bean (name = "couchbaseMappingConverter " )
196
+ @ Bean (name = "mappingCouchbaseConverter " )
181
197
public MappingCouchbaseConverter mappingCouchbaseConverter (CouchbaseMappingContext couchbaseMappingContext ,
182
- CouchbaseCustomConversions couchbaseCustomConversions ) {
198
+ CouchbaseCustomConversions couchbaseCustomConversions /* there is a customConversions() method bean */ ) {
183
199
// MappingCouchbaseConverter relies on a SimpleInformationMapper
184
200
// that has an getAliasFor(info) that just returns getType().getName().
185
201
// Our CustomMappingCouchbaseConverter uses a TypeBasedCouchbaseTypeMapper that will
0 commit comments