From 4d33c9c360a91dd5ee874a49d9b456917b9e29a5 Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Tue, 24 May 2011 17:32:23 +0200 Subject: [PATCH] DATADOC-149 - Removed constructor not taking a MongoDbFactory as well as setter for it from MappingMongoConverter. --- .../mongodb/config/MappingMongoConverterParser.java | 12 +++++++----- .../mongodb/convert/MappingMongoConverter.java | 11 +---------- .../data/document/mongodb/MongoTemplateTests.java | 2 +- .../mongodb/convert/CustomConvertersUnitTests.java | 5 ++++- .../mongodb/mapping/GenericMappingTests.java | 7 ++++++- .../mapping/MappingMongoConverterUnitTests.java | 8 ++++++-- .../repository/StringBasedMongoQueryUnitTests.java | 6 +++++- .../src/test/resources/template-mapping.xml | 1 + 8 files changed, 31 insertions(+), 21 deletions(-) diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/config/MappingMongoConverterParser.java b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/config/MappingMongoConverterParser.java index 68467ef27..17e1800ab 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/config/MappingMongoConverterParser.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/config/MappingMongoConverterParser.java @@ -88,15 +88,17 @@ public class MappingMongoConverterParser extends AbstractBeanDefinitionParser { registry.registerBeanDefinition(POST_PROCESSOR, postProcBuilder.getBeanDefinition()); } - BeanDefinitionBuilder converterBuilder = BeanDefinitionBuilder.genericBeanDefinition(MappingMongoConverter.class); - converterBuilder.addConstructorArgReference(ctxRef); - // Need a reference to a Mongo instance String dbFactoryRef = element.getAttribute("db-factory-ref"); if (!StringUtils.hasText(dbFactoryRef)) { dbFactoryRef = DB_FACTORY; } - converterBuilder.addPropertyReference("mongoDbFactory", dbFactoryRef); + + + BeanDefinitionBuilder converterBuilder = BeanDefinitionBuilder.genericBeanDefinition(MappingMongoConverter.class); + converterBuilder.addConstructorArgReference(dbFactoryRef); + converterBuilder.addConstructorArgReference(ctxRef); + try { registry.getBeanDefinition(INDEX_HELPER); @@ -113,7 +115,7 @@ public class MappingMongoConverterParser extends AbstractBeanDefinitionParser { List customConvertersElements = DomUtils.getChildElementsByTagName(element, "custom-converters"); if (customConvertersElements.size() == 1) { Element customerConvertersElement = customConvertersElements.get(0); - ManagedList converterBeans = new ManagedList(); + ManagedList converterBeans = new ManagedList(); List listenerElements = DomUtils.getChildElementsByTagName(customerConvertersElement, "converter"); if (listenerElements != null) { for (Element listenerElement : listenerElements) { diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/convert/MappingMongoConverter.java b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/convert/MappingMongoConverter.java index 4c3c42298..67b6ec725 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/convert/MappingMongoConverter.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/convert/MappingMongoConverter.java @@ -94,20 +94,11 @@ public class MappingMongoConverter extends AbstractMongoConverter implements App public MappingMongoConverter(MongoDbFactory mongoDbFactory, MappingContext, MongoPersistentProperty> mappingContext) { super(ConversionServiceFactory.createDefaultConversionService()); Assert.notNull(mappingContext); + Assert.notNull(mongoDbFactory); this.mongoDbFactory = mongoDbFactory; this.mappingContext = mappingContext; } - /** - * Creates a new {@link MappingMongoConverter} with the given {@link MappingContext}. - * - * @param mappingContext - */ - public MappingMongoConverter( - MappingContext, MongoPersistentProperty> mappingContext) { - this(null, mappingContext); - } - public MappingContext, MongoPersistentProperty> getMappingContext() { return mappingContext; } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/MongoTemplateTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/MongoTemplateTests.java index 315f0f7da..db3cf2b5f 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/MongoTemplateTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/MongoTemplateTests.java @@ -79,7 +79,7 @@ public class MongoTemplateTests { PersonWithIdPropertyOfTypeString.class))); mappingContext.afterPropertiesSet(); - MappingMongoConverter converter = new MappingMongoConverter(mappingContext); + MappingMongoConverter converter = new MappingMongoConverter(template.getDbFactory(), mappingContext); converter.afterPropertiesSet(); this.mappingTemplate = new MongoTemplate(template.getDbFactory(), converter); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/convert/CustomConvertersUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/convert/CustomConvertersUnitTests.java index 35cf3f54b..f68a93a06 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/convert/CustomConvertersUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/convert/CustomConvertersUnitTests.java @@ -31,6 +31,7 @@ import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.springframework.core.convert.converter.Converter; import org.springframework.data.annotation.Id; +import org.springframework.data.document.mongodb.MongoDbFactory; import org.springframework.data.document.mongodb.mapping.MongoMappingContext; import org.springframework.data.document.mongodb.mapping.MongoPersistentEntity; @@ -49,6 +50,8 @@ public class CustomConvertersUnitTests { BarToDBObjectConverter barToDBObjectConverter; @Mock DBObjectToBarConverter dbObjectToBarConverter; + @Mock + MongoDbFactory mongoDbFactory; MongoMappingContext context; MongoPersistentEntity fooEntity; @@ -65,7 +68,7 @@ public class CustomConvertersUnitTests { when(barToDBObjectConverter.convert(any(Bar.class))).thenReturn(new BasicDBObject()); when(dbObjectToBarConverter.convert(any(DBObject.class))).thenReturn(new Bar()); - converter = new MappingMongoConverter(context); + converter = new MappingMongoConverter(mongoDbFactory, context); converter.setCustomConverters(new HashSet(Arrays.asList(barToDBObjectConverter, dbObjectToBarConverter))); } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/GenericMappingTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/GenericMappingTests.java index 377ddd99c..d873cd959 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/GenericMappingTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/GenericMappingTests.java @@ -25,7 +25,9 @@ import com.mongodb.DBObject; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; +import org.springframework.data.document.mongodb.MongoDbFactory; import org.springframework.data.document.mongodb.convert.MappingMongoConverter; import org.springframework.data.document.mongodb.convert.MongoConverter; @@ -39,6 +41,9 @@ public class GenericMappingTests { MongoMappingContext context; MongoConverter converter; + + @Mock + MongoDbFactory factory; @Before public void setUp() throws Exception { @@ -46,7 +51,7 @@ public class GenericMappingTests { context.setInitialEntitySet(Collections.singleton(StringWrapper.class)); context.afterPropertiesSet(); - converter = new MappingMongoConverter(context); + converter = new MappingMongoConverter(factory, context); } @Test diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/MappingMongoConverterUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/MappingMongoConverterUnitTests.java index fae37313c..a6d090bfe 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/MappingMongoConverterUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/MappingMongoConverterUnitTests.java @@ -33,8 +33,10 @@ import org.joda.time.LocalDate; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.springframework.core.convert.converter.Converter; +import org.springframework.data.document.mongodb.MongoDbFactory; import org.springframework.data.document.mongodb.convert.MappingMongoConverter; import com.mongodb.BasicDBList; @@ -51,11 +53,13 @@ public class MappingMongoConverterUnitTests { MappingMongoConverter converter; MongoMappingContext mappingContext; + @Mock + MongoDbFactory factory; @Before public void setUp() { mappingContext = new MongoMappingContext(); - converter = new MappingMongoConverter(mappingContext); + converter = new MappingMongoConverter(factory, mappingContext); } @Test @@ -84,7 +88,7 @@ public class MappingMongoConverterUnitTests { customSimpleTypes.add(LocalDate.class); mappingContext.setCustomSimpleTypes(customSimpleTypes); - converter = new MappingMongoConverter(mappingContext); + converter = new MappingMongoConverter(factory, mappingContext); converter.setCustomConverters(converters); converter.afterPropertiesSet(); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/repository/StringBasedMongoQueryUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/repository/StringBasedMongoQueryUnitTests.java index 2d090d33b..6e0c2693b 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/repository/StringBasedMongoQueryUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/repository/StringBasedMongoQueryUnitTests.java @@ -26,6 +26,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; +import org.springframework.data.document.mongodb.MongoDbFactory; import org.springframework.data.document.mongodb.MongoTemplate; import org.springframework.data.document.mongodb.convert.MappingMongoConverter; import org.springframework.data.document.mongodb.convert.MongoConverter; @@ -51,11 +52,14 @@ public class StringBasedMongoQueryUnitTests { RepositoryMetadata metadata; @Mock EntityInformationCreator creator; + @Mock + MongoDbFactory factory; - MongoConverter converter = new MappingMongoConverter(new MongoMappingContext()); + MongoConverter converter; @Before public void setUp() { + converter = new MappingMongoConverter(factory, new MongoMappingContext()); when(template.getConverter()).thenReturn(converter); } diff --git a/spring-data-mongodb/src/test/resources/template-mapping.xml b/spring-data-mongodb/src/test/resources/template-mapping.xml index d71ac4a78..de2726a28 100644 --- a/spring-data-mongodb/src/test/resources/template-mapping.xml +++ b/spring-data-mongodb/src/test/resources/template-mapping.xml @@ -10,6 +10,7 @@ +