diff --git a/pom.xml b/pom.xml
index b688f3ee50..2a64e01fff 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.springframework.data
spring-data-mongodb-parent
- 3.3.0-SNAPSHOT
+ 3.3.0-GH-3749-SNAPSHOT
pom
Spring Data MongoDB
diff --git a/spring-data-mongodb-benchmarks/pom.xml b/spring-data-mongodb-benchmarks/pom.xml
index 0033bd11d5..4915c708d5 100644
--- a/spring-data-mongodb-benchmarks/pom.xml
+++ b/spring-data-mongodb-benchmarks/pom.xml
@@ -7,7 +7,7 @@
org.springframework.data
spring-data-mongodb-parent
- 3.3.0-SNAPSHOT
+ 3.3.0-GH-3749-SNAPSHOT
../pom.xml
diff --git a/spring-data-mongodb-distribution/pom.xml b/spring-data-mongodb-distribution/pom.xml
index f62c8dc7f4..26acb7f162 100644
--- a/spring-data-mongodb-distribution/pom.xml
+++ b/spring-data-mongodb-distribution/pom.xml
@@ -14,7 +14,7 @@
org.springframework.data
spring-data-mongodb-parent
- 3.3.0-SNAPSHOT
+ 3.3.0-GH-3749-SNAPSHOT
../pom.xml
diff --git a/spring-data-mongodb/pom.xml b/spring-data-mongodb/pom.xml
index 1f157e75bc..55b2083f6c 100644
--- a/spring-data-mongodb/pom.xml
+++ b/spring-data-mongodb/pom.xml
@@ -11,7 +11,7 @@
org.springframework.data
spring-data-mongodb-parent
- 3.3.0-SNAPSHOT
+ 3.3.0-GH-3749-SNAPSHOT
../pom.xml
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/EntityOperationsUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/EntityOperationsUnitTests.java
index 901ac1f0dd..160a598bc7 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/EntityOperationsUnitTests.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/EntityOperationsUnitTests.java
@@ -24,6 +24,7 @@
import org.springframework.data.mapping.MappingException;
import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
import org.springframework.data.mongodb.core.mapping.TimeSeries;
+import org.springframework.data.mongodb.test.util.MongoTestMappingContext;
/**
* Unit tests for {@link EntityOperations}.
@@ -32,7 +33,7 @@
*/
class EntityOperationsUnitTests {
- EntityOperations operations = new EntityOperations(new MongoMappingContext());
+ EntityOperations operations = new EntityOperations(MongoTestMappingContext.newTestContext());
@Test // GH-3731
void shouldReportInvalidTimeField() {
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateTests.java
index f5521008f8..28cdaa4830 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateTests.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateTests.java
@@ -138,7 +138,7 @@ public class MongoTemplateTests {
cfg.configureMappingContext(it -> {
it.autocreateIndex(false);
- it.intitalEntitySet(AuditablePerson.class);
+ it.initialEntitySet(AuditablePerson.class);
});
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MappingContextConfigurer.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MappingContextConfigurer.java
new file mode 100644
index 0000000000..ce7f9b84a1
--- /dev/null
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MappingContextConfigurer.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2021 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.data.mongodb.test.util;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * @author Christoph Strobl
+ */
+public class MappingContextConfigurer {
+
+ Set> intitalEntitySet;
+ boolean autocreateIndex = false;
+
+ public void autocreateIndex(boolean autocreateIndex) {
+ this.autocreateIndex = autocreateIndex;
+ }
+
+ public void initialEntitySet(Set> initialEntitySet) {
+ this.intitalEntitySet = initialEntitySet;
+ }
+
+ public void initialEntitySet(Class>... initialEntitySet) {
+ this.intitalEntitySet = new HashSet<>(Arrays.asList(initialEntitySet));
+ }
+
+ Set> initialEntitySet() {
+ return intitalEntitySet != null ? intitalEntitySet : Collections.emptySet();
+ }
+}
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoConverterConfigurer.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoConverterConfigurer.java
new file mode 100644
index 0000000000..d65321a109
--- /dev/null
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoConverterConfigurer.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2021 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.data.mongodb.test.util;
+
+import java.util.Arrays;
+
+import org.springframework.core.convert.converter.Converter;
+import org.springframework.data.convert.CustomConversions;
+import org.springframework.data.mongodb.core.convert.MongoCustomConversions;
+
+/**
+ * @author Christoph Strobl
+ */
+public class MongoConverterConfigurer {
+
+ CustomConversions customConversions;
+
+ public void customConversions(CustomConversions customConversions) {
+ this.customConversions = customConversions;
+ }
+
+ public void customConverters(Converter, ?>... converters) {
+ customConversions(new MongoCustomConversions(Arrays.asList(converters)));
+ }
+}
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTestMappingContext.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTestMappingContext.java
new file mode 100644
index 0000000000..f9701d24aa
--- /dev/null
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTestMappingContext.java
@@ -0,0 +1,78 @@
+/*
+ * Copyright 2021 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.data.mongodb.test.util;
+
+import java.util.Collections;
+import java.util.function.Consumer;
+
+import org.springframework.data.mongodb.core.convert.MongoCustomConversions;
+import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
+
+/**
+ * @author Christoph Strobl
+ */
+public class MongoTestMappingContext extends MongoMappingContext {
+
+ private MappingContextConfigurer contextConfigurer;
+ private MongoConverterConfigurer converterConfigurer;
+
+ public static MongoTestMappingContext newTestContext() {
+ return new MongoTestMappingContext(conig -> {}).init();
+ }
+
+ public MongoTestMappingContext(MappingContextConfigurer contextConfig) {
+
+ this.contextConfigurer = contextConfig;
+ this.converterConfigurer = new MongoConverterConfigurer();
+ }
+
+ public MongoTestMappingContext(Consumer contextConfig) {
+
+ this(new MappingContextConfigurer());
+ contextConfig.accept(contextConfigurer);
+ }
+
+ public MongoTestMappingContext customConversions(MongoConverterConfigurer converterConfig) {
+
+ this.converterConfigurer = converterConfig;
+ return this;
+ }
+
+ public MongoTestMappingContext customConversions(Consumer converterConfig) {
+
+ converterConfig.accept(converterConfigurer);
+ return this;
+ }
+
+ public MongoTestMappingContext init() {
+
+ setInitialEntitySet(contextConfigurer.initialEntitySet());
+ setAutoIndexCreation(contextConfigurer.autocreateIndex);
+ if (converterConfigurer.customConversions != null) {
+ setSimpleTypeHolder(converterConfigurer.customConversions.getSimpleTypeHolder());
+ } else {
+ setSimpleTypeHolder(new MongoCustomConversions(Collections.emptyList()).getSimpleTypeHolder());
+ }
+
+ super.afterPropertiesSet();
+ return this;
+ }
+
+ @Override
+ public void afterPropertiesSet() {
+ init();
+ }
+}
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTestTemplate.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTestTemplate.java
index ff1363965d..c612319e55 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTestTemplate.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTestTemplate.java
@@ -50,7 +50,7 @@ public MongoTestTemplate(MongoClient client, String database, Class>... initia
cfg.configureMappingContext(it -> {
it.autocreateIndex(false);
- it.intitalEntitySet(initialEntities);
+ it.initialEntitySet(initialEntities);
});
});
}
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTestTemplateConfiguration.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTestTemplateConfiguration.java
index ee75da8b19..b50ff88133 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTestTemplateConfiguration.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTestTemplateConfiguration.java
@@ -16,20 +16,15 @@
package org.springframework.data.mongodb.test.util;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collections;
-import java.util.HashSet;
import java.util.List;
-import java.util.Set;
import java.util.function.Consumer;
import java.util.function.Function;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationListener;
import org.springframework.context.ConfigurableApplicationContext;
-import org.springframework.core.convert.converter.Converter;
import org.springframework.data.auditing.IsNewAwareAuditingHandler;
-import org.springframework.data.convert.CustomConversions;
import org.springframework.data.mapping.context.MappingContext;
import org.springframework.data.mongodb.MongoDatabaseFactory;
import org.springframework.data.mongodb.ReactiveMongoDatabaseFactory;
@@ -115,16 +110,7 @@ ApplicationContext getApplicationContext() {
MongoMappingContext mappingContext() {
if (mappingContext == null) {
-
- mappingContext = new MongoMappingContext();
- mappingContext.setInitialEntitySet(mappingContextConfigurer.initialEntitySet());
- mappingContext.setAutoIndexCreation(mappingContextConfigurer.autocreateIndex);
- if(mongoConverterConfigurer.customConversions != null) {
- mappingContext.setSimpleTypeHolder(mongoConverterConfigurer.customConversions.getSimpleTypeHolder());
- } else {
- mappingContext.setSimpleTypeHolder(new MongoCustomConversions(Collections.emptyList()).getSimpleTypeHolder());
- }
- mappingContext.afterPropertiesSet();
+ mappingContext = new MongoTestMappingContext(mappingContextConfigurer).customConversions(mongoConverterConfigurer).init();
}
return mappingContext;
@@ -222,41 +208,6 @@ public void defaultDb(String defaultDatabase) {
}
}
- public static class MongoConverterConfigurer {
-
- CustomConversions customConversions;
-
- public void customConversions(CustomConversions customConversions) {
- this.customConversions = customConversions;
- }
-
- public void customConverters(Converter, ?>... converters) {
- customConversions(new MongoCustomConversions(Arrays.asList(converters)));
- }
- }
-
- public static class MappingContextConfigurer {
-
- Set> intitalEntitySet;
- boolean autocreateIndex = false;
-
- public void autocreateIndex(boolean autocreateIndex) {
- this.autocreateIndex = autocreateIndex;
- }
-
- public void intitalEntitySet(Set> intitalEntitySet) {
- this.intitalEntitySet = intitalEntitySet;
- }
-
- public void intitalEntitySet(Class>... initialEntitySet) {
- this.intitalEntitySet = new HashSet<>(Arrays.asList(initialEntitySet));
- }
-
- Set> initialEntitySet() {
- return intitalEntitySet != null ? intitalEntitySet : Collections.emptySet();
- }
- }
-
public static class AuditingConfigurer {
Function auditingHandlerFunction;
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/ReactiveMongoTestTemplate.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/ReactiveMongoTestTemplate.java
index 9e7d2bbbfa..774493322e 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/ReactiveMongoTestTemplate.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/ReactiveMongoTestTemplate.java
@@ -56,7 +56,7 @@ public ReactiveMongoTestTemplate(MongoClient client, String database, Class>..
cfg.configureMappingContext(it -> {
it.autocreateIndex(false);
- it.intitalEntitySet(initialEntities);
+ it.initialEntitySet(initialEntities);
});
});
}