Allow to override auto index creation flag via XML configuration.
Closes: #4275
This commit is contained in:
committed by
Christoph Strobl
parent
136e22edcd
commit
8c43747653
@@ -73,6 +73,7 @@ import org.w3c.dom.Element;
|
||||
* @author Christoph Strobl
|
||||
* @author Mark Paluch
|
||||
* @author Zied Yaich
|
||||
* @author Tomasz Forys
|
||||
*/
|
||||
public class MappingMongoConverterParser implements BeanDefinitionParser {
|
||||
|
||||
@@ -99,7 +100,7 @@ public class MappingMongoConverterParser implements BeanDefinitionParser {
|
||||
parserContext.pushContainingComponent(new CompositeComponentDefinition("Mapping Mongo Converter", element));
|
||||
|
||||
BeanDefinition conversionsDefinition = getCustomConversions(element, parserContext);
|
||||
String ctxRef = potentiallyCreateMappingContext(element, parserContext, conversionsDefinition, id);
|
||||
String ctxRef = potentiallyCreateMappingContext(element, parserContext, conversionsDefinition, id, autoIndexCreationEnabled);
|
||||
|
||||
// Need a reference to a Mongo instance
|
||||
String dbFactoryRef = element.getAttribute("db-factory-ref");
|
||||
@@ -279,10 +280,8 @@ public class MappingMongoConverterParser implements BeanDefinitionParser {
|
||||
ManagedList<BeanMetadataElement> converterBeans = new ManagedList<>();
|
||||
List<Element> converterElements = DomUtils.getChildElementsByTagName(customerConvertersElement, "converter");
|
||||
|
||||
if (converterElements != null) {
|
||||
for (Element listenerElement : converterElements) {
|
||||
converterBeans.add(parseConverter(listenerElement, parserContext));
|
||||
}
|
||||
for (Element listenerElement : converterElements) {
|
||||
converterBeans.add(parseConverter(listenerElement, parserContext));
|
||||
}
|
||||
|
||||
// Scan for Converter and GenericConverter beans in the given base-package
|
||||
|
||||
@@ -38,6 +38,7 @@ import org.springframework.data.mapping.model.CamelCaseAbbreviatingFieldNamingSt
|
||||
import org.springframework.data.mongodb.core.convert.MappingMongoConverter;
|
||||
import org.springframework.data.mongodb.core.convert.MongoTypeMapper;
|
||||
import org.springframework.data.mongodb.core.mapping.Account;
|
||||
import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
|
||||
import org.springframework.data.mongodb.repository.Person;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@@ -48,6 +49,7 @@ import org.springframework.stereotype.Component;
|
||||
* @author Thomas Darimont
|
||||
* @author Christoph Strobl
|
||||
* @author Ryan Tenney
|
||||
* @author Tomasz Forys
|
||||
*/
|
||||
public class MappingMongoConverterParserIntegrationTests {
|
||||
|
||||
@@ -61,6 +63,22 @@ public class MappingMongoConverterParserIntegrationTests {
|
||||
factory.getBean("converter");
|
||||
}
|
||||
|
||||
@Test
|
||||
void allowsToOverrideAutoIndexCreation() {
|
||||
|
||||
loadValidConfiguration();
|
||||
MongoMappingContext mongoMappingContext = factory.getBean("autoIndexCreationConverter.mongoMappingContext", MongoMappingContext.class);
|
||||
assertThat(mongoMappingContext.isAutoIndexCreation()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
void testDefaultValueForAutoIndexCreation() {
|
||||
|
||||
loadValidConfiguration();
|
||||
MongoMappingContext mongoMappingContext = factory.getBean("converter.mongoMappingContext", MongoMappingContext.class);
|
||||
assertThat(mongoMappingContext.isAutoIndexCreation()).isFalse();
|
||||
}
|
||||
|
||||
@Test // DATAMONGO-725
|
||||
void hasCustomTypeMapper() {
|
||||
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
|
||||
<mongo:mapping-converter id="abbreviatingConverter" abbreviate-field-names="true" />
|
||||
|
||||
<mongo:mapping-converter id="autoIndexCreationConverter" db-factory-ref="factory" auto-index-creation="true" />
|
||||
|
||||
<bean name="customMongoTypeMapper" class="org.springframework.data.mongodb.config.CustomMongoTypeMapper"/>
|
||||
|
||||
</beans>
|
||||
|
||||
Reference in New Issue
Block a user