Skip to content

Commit 9ae3a29

Browse files
committed
DATAMONGO-1660 - Adapt to moved CustomConversions to Spring Data Commons.
Introduce MongoCustomConversions extending o.s.d.convert.CustomConversions. Remove o.s.d.mongo.core.convert.CustomConversions implementation code and utility classes and let it extend MongoCustomConversions. Replace references to o.s.d.m.c.c.CustomConversions with o.s.d.convert.CustomConversions. Adapt tests and MappingMongoConverter to MongoCustomConversions. Related ticket: DATACMNS-1035.
1 parent 6a446cb commit 9ae3a29

20 files changed

+254
-1039
lines changed

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/config/MappingMongoConverterParser.java

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@
5353
import org.springframework.data.config.BeanComponentDefinitionBuilder;
5454
import org.springframework.data.mapping.context.MappingContextIsNewStrategyFactory;
5555
import org.springframework.data.mapping.model.CamelCaseAbbreviatingFieldNamingStrategy;
56-
import org.springframework.data.mongodb.core.convert.CustomConversions;
5756
import org.springframework.data.mongodb.core.convert.MappingMongoConverter;
57+
import org.springframework.data.mongodb.core.convert.MongoCustomConversions;
5858
import org.springframework.data.mongodb.core.convert.QueryMapper;
5959
import org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexCreator;
6060
import org.springframework.data.mongodb.core.mapping.Document;
@@ -122,12 +122,15 @@ public BeanDefinition parse(Element element, ParserContext parserContext) {
122122
converterBuilder.addPropertyValue("customConversions", conversionsDefinition);
123123
}
124124

125-
if(!registry.containsBeanDefinition("indexOperationsProvider")){
125+
if (!registry.containsBeanDefinition("indexOperationsProvider")) {
126126

127-
BeanDefinitionBuilder indexOperationsProviderBuilder = BeanDefinitionBuilder.genericBeanDefinition("org.springframework.data.mongodb.core.DefaultIndexOperationsProvider");
127+
BeanDefinitionBuilder indexOperationsProviderBuilder = BeanDefinitionBuilder
128+
.genericBeanDefinition("org.springframework.data.mongodb.core.DefaultIndexOperationsProvider");
128129
indexOperationsProviderBuilder.addConstructorArgReference(dbFactoryRef);
129-
indexOperationsProviderBuilder.addConstructorArgValue(BeanDefinitionBuilder.genericBeanDefinition(QueryMapper.class).addConstructorArgReference(id).getBeanDefinition());
130-
parserContext.registerBeanComponent(new BeanComponentDefinition(indexOperationsProviderBuilder.getBeanDefinition(), "indexOperationsProvider"));
130+
indexOperationsProviderBuilder.addConstructorArgValue(BeanDefinitionBuilder
131+
.genericBeanDefinition(QueryMapper.class).addConstructorArgReference(id).getBeanDefinition());
132+
parserContext.registerBeanComponent(
133+
new BeanComponentDefinition(indexOperationsProviderBuilder.getBeanDefinition(), "indexOperationsProvider"));
131134
}
132135

133136
try {
@@ -140,15 +143,15 @@ public BeanDefinition parse(Element element, ParserContext parserContext) {
140143
indexHelperBuilder.addConstructorArgReference("indexOperationsProvider");
141144
indexHelperBuilder.addDependsOn(ctxRef);
142145

143-
parserContext.registerBeanComponent(new BeanComponentDefinition(indexHelperBuilder.getBeanDefinition(),
144-
INDEX_HELPER_BEAN_NAME));
146+
parserContext.registerBeanComponent(
147+
new BeanComponentDefinition(indexHelperBuilder.getBeanDefinition(), INDEX_HELPER_BEAN_NAME));
145148
}
146149

147150
BeanDefinition validatingMongoEventListener = potentiallyCreateValidatingMongoEventListener(element, parserContext);
148151

149152
if (validatingMongoEventListener != null) {
150-
parserContext.registerBeanComponent(new BeanComponentDefinition(validatingMongoEventListener,
151-
VALIDATING_EVENT_LISTENER_BEAN_NAME));
153+
parserContext.registerBeanComponent(
154+
new BeanComponentDefinition(validatingMongoEventListener, VALIDATING_EVENT_LISTENER_BEAN_NAME));
152155
}
153156

154157
parserContext.registerBeanComponent(new BeanComponentDefinition(converterBuilder.getBeanDefinition(), id));
@@ -287,7 +290,7 @@ private BeanDefinition getCustomConversions(Element element, ParserContext parse
287290
}
288291
}
289292

290-
BeanDefinitionBuilder conversionsBuilder = BeanDefinitionBuilder.rootBeanDefinition(CustomConversions.class);
293+
BeanDefinitionBuilder conversionsBuilder = BeanDefinitionBuilder.rootBeanDefinition(MongoCustomConversions.class);
291294
conversionsBuilder.addConstructorArgValue(converterBeans);
292295

293296
AbstractBeanDefinition conversionsBean = conversionsBuilder.getBeanDefinition();
@@ -335,8 +338,8 @@ public BeanMetadataElement parseConverter(Element element, ParserContext parserC
335338
return beanDef;
336339
}
337340

338-
parserContext.getReaderContext().error(
339-
"Element <converter> must specify 'ref' or contain a bean definition for the converter", element);
341+
parserContext.getReaderContext()
342+
.error("Element <converter> must specify 'ref' or contain a bean definition for the converter", element);
340343
return null;
341344
}
342345

@@ -348,8 +351,8 @@ public static String createIsNewStrategyFactoryBeanDefinition(String mappingCont
348351
mappingContextStrategyFactoryBuilder.addConstructorArgReference(mappingContextRef);
349352

350353
BeanComponentDefinitionBuilder builder = new BeanComponentDefinitionBuilder(element, context);
351-
context.registerBeanComponent(builder.getComponent(mappingContextStrategyFactoryBuilder,
352-
IS_NEW_STRATEGY_FACTORY_BEAN_NAME));
354+
context.registerBeanComponent(
355+
builder.getComponent(mappingContextStrategyFactoryBuilder, IS_NEW_STRATEGY_FACTORY_BEAN_NAME));
353356

354357
return IS_NEW_STRATEGY_FACTORY_BEAN_NAME;
355358
}
@@ -379,7 +382,8 @@ public NegatingFilter(TypeFilter... filters) {
379382
* (non-Javadoc)
380383
* @see org.springframework.core.type.filter.TypeFilter#match(org.springframework.core.type.classreading.MetadataReader, org.springframework.core.type.classreading.MetadataReaderFactory)
381384
*/
382-
public boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory) throws IOException {
385+
public boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory)
386+
throws IOException {
383387

384388
for (TypeFilter delegate : delegates) {
385389
if (delegate.match(metadataReader, metadataReaderFactory)) {

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/config/MongoConfigurationSupport.java

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
1716
package org.springframework.data.mongodb.config;
1817

1918
import java.util.Arrays;
@@ -28,30 +27,21 @@
2827
import org.springframework.core.convert.converter.Converter;
2928
import org.springframework.core.type.filter.AnnotationTypeFilter;
3029
import org.springframework.data.annotation.Persistent;
31-
import org.springframework.data.authentication.UserCredentials;
30+
import org.springframework.data.convert.CustomConversions;
3231
import org.springframework.data.mapping.context.MappingContext;
3332
import org.springframework.data.mapping.context.MappingContextIsNewStrategyFactory;
3433
import org.springframework.data.mapping.context.PersistentEntities;
3534
import org.springframework.data.mapping.model.CamelCaseAbbreviatingFieldNamingStrategy;
3635
import org.springframework.data.mapping.model.FieldNamingStrategy;
3736
import org.springframework.data.mapping.model.PropertyNameFieldNamingStrategy;
38-
import org.springframework.data.mongodb.MongoDbFactory;
39-
import org.springframework.data.mongodb.core.MongoTemplate;
40-
import org.springframework.data.mongodb.core.SimpleMongoDbFactory;
41-
import org.springframework.data.mongodb.core.convert.CustomConversions;
42-
import org.springframework.data.mongodb.core.convert.DbRefResolver;
43-
import org.springframework.data.mongodb.core.convert.DefaultDbRefResolver;
44-
import org.springframework.data.mongodb.core.convert.MappingMongoConverter;
37+
import org.springframework.data.mongodb.core.convert.MongoCustomConversions;
4538
import org.springframework.data.mongodb.core.mapping.Document;
4639
import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
4740
import org.springframework.data.support.CachingIsNewStrategyFactory;
4841
import org.springframework.data.support.IsNewStrategyFactory;
4942
import org.springframework.util.ClassUtils;
5043
import org.springframework.util.StringUtils;
5144

52-
import com.mongodb.Mongo;
53-
import com.mongodb.MongoClient;
54-
5545
/**
5646
* Base class for Spring Data MongoDB to be extended for JavaConfiguration usage.
5747
*
@@ -117,13 +107,13 @@ public IsNewStrategyFactory isNewStrategyFactory() throws ClassNotFoundException
117107
/**
118108
* Register custom {@link Converter}s in a {@link CustomConversions} object if required. These
119109
* {@link CustomConversions} will be registered with the {@link #mappingMongoConverter()} and
120-
* {@link #mongoMappingContext()}. Returns an empty {@link CustomConversions} instance by default.
110+
* {@link #mongoMappingContext()}. Returns an empty {@link MongoCustomConversions} instance by default.
121111
*
122112
* @return must not be {@literal null}.
123113
*/
124114
@Bean
125115
public CustomConversions customConversions() {
126-
return new CustomConversions(Collections.emptyList());
116+
return new MongoCustomConversions(Collections.emptyList());
127117
}
128118

129119
/**

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/AbstractMongoConverter.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2011-2015 the original author or authors.
2+
* Copyright 2011-2017 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -22,6 +22,7 @@
2222
import org.springframework.core.convert.ConversionService;
2323
import org.springframework.core.convert.support.DefaultConversionService;
2424
import org.springframework.core.convert.support.GenericConversionService;
25+
import org.springframework.data.convert.CustomConversions;
2526
import org.springframework.data.convert.EntityInstantiators;
2627
import org.springframework.data.mongodb.core.convert.MongoConverters.BigIntegerToObjectIdConverter;
2728
import org.springframework.data.mongodb.core.convert.MongoConverters.ObjectIdToBigIntegerConverter;
@@ -34,11 +35,12 @@
3435
*
3536
* @author Jon Brisbin
3637
* @author Oliver Gierke
38+
* @author Mark Paluch
3739
*/
3840
public abstract class AbstractMongoConverter implements MongoConverter, InitializingBean {
3941

4042
protected final GenericConversionService conversionService;
41-
protected CustomConversions conversions = new CustomConversions();
43+
protected CustomConversions conversions = new MongoCustomConversions();
4244
protected EntityInstantiators instantiators = new EntityInstantiators();
4345

4446
/**

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/ConverterRegistration.java

Lines changed: 0 additions & 116 deletions
This file was deleted.

0 commit comments

Comments
 (0)