DATADOC-149 - Removed constructor not taking a MongoDbFactory as well as setter for it from MappingMongoConverter.

This commit is contained in:
Oliver Gierke
2011-05-24 17:32:23 +02:00
parent 8474a28538
commit 4d33c9c360
8 changed files with 31 additions and 21 deletions

View File

@@ -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<Element> customConvertersElements = DomUtils.getChildElementsByTagName(element, "custom-converters");
if (customConvertersElements.size() == 1) {
Element customerConvertersElement = customConvertersElements.get(0);
ManagedList converterBeans = new ManagedList();
ManagedList<BeanMetadataElement> converterBeans = new ManagedList<BeanMetadataElement>();
List<Element> listenerElements = DomUtils.getChildElementsByTagName(customerConvertersElement, "converter");
if (listenerElements != null) {
for (Element listenerElement : listenerElements) {

View File

@@ -94,20 +94,11 @@ public class MappingMongoConverter extends AbstractMongoConverter implements App
public MappingMongoConverter(MongoDbFactory mongoDbFactory, MappingContext<? extends MongoPersistentEntity<?>, 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<? extends MongoPersistentEntity<?>, MongoPersistentProperty> mappingContext) {
this(null, mappingContext);
}
public MappingContext<? extends MongoPersistentEntity<?>, MongoPersistentProperty> getMappingContext() {
return mappingContext;
}

View File

@@ -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);

View File

@@ -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<Foo> 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<Object>(Arrays.asList(barToDBObjectConverter, dbObjectToBarConverter)));
}

View File

@@ -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

View File

@@ -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();

View File

@@ -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);
}

View File

@@ -10,6 +10,7 @@
<mongo:db-factory dbname="database"/>
<bean id="mappingConverter1" class="org.springframework.data.document.mongodb.convert.MappingMongoConverter">
<constructor-arg ref="mongoDbFactory" />
<constructor-arg ref="mappingContext" />
<property name="customConverters">
<list>