diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoAdmin.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoAdmin.java index e48c33680..fe1d757f3 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoAdmin.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoAdmin.java @@ -38,7 +38,7 @@ public class MongoAdmin implements MongoAdminOperations { /** * @param mongoClient - * @deprecated since 2.2 in favor of {@link MongoAdmin(com.mongodb.client.MongoClient)}. + * @deprecated since 2.2 in favor of {@link MongoAdmin#MongoAdmin(com.mongodb.client.MongoClient)}. */ @Deprecated public MongoAdmin(MongoClient mongoClient) { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/ReactiveTransactionIntegrationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/ReactiveTransactionIntegrationTests.java index 7a014309d..1a4aa79f2 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/ReactiveTransactionIntegrationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/ReactiveTransactionIntegrationTests.java @@ -85,13 +85,12 @@ public class ReactiveTransactionIntegrationTests { personService = context.getBean(PersonService.class); operations = context.getBean(ReactiveMongoOperations.class); - try (MongoClient client = MongoClients.create()) { + MongoClient client = MongoTestUtils.reactiveClient(); - Flux.merge( // - MongoTestUtils.createOrReplaceCollection(DATABASE, operations.getCollectionName(Person.class), client), - MongoTestUtils.createOrReplaceCollection(DATABASE, operations.getCollectionName(EventLog.class), client) // - ).then().as(StepVerifier::create).verifyComplete(); - } + Flux.merge( // + MongoTestUtils.createOrReplaceCollection(DATABASE, operations.getCollectionName(Person.class), client), + MongoTestUtils.createOrReplaceCollection(DATABASE, operations.getCollectionName(EventLog.class), client) // + ).then().as(StepVerifier::create).verifyComplete(); } @Test // DATAMONGO-2265 @@ -224,7 +223,7 @@ public class ReactiveTransactionIntegrationTests { @Override public MongoClient reactiveMongoClient() { - return MongoClients.create("mongodb://localhost"); + return MongoTestUtils.reactiveClient(); } @Override diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractIntegrationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractIntegrationTests.java index f8042e218..7df685cc7 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractIntegrationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractIntegrationTests.java @@ -27,6 +27,7 @@ import org.springframework.context.annotation.Configuration; import org.springframework.dao.DataAccessException; import org.springframework.data.mongodb.core.CollectionCallback; import org.springframework.data.mongodb.core.MongoOperations; +import org.springframework.data.mongodb.test.util.MongoTestUtils; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @@ -52,7 +53,7 @@ public abstract class AbstractIntegrationTests { @Override public MongoClient mongoClient() { - return MongoClients.create(); + return MongoTestUtils.client(); } } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractReactiveMongoConfigurationIntegrationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractReactiveMongoConfigurationIntegrationTests.java index fcc8acb21..a9c3c3318 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractReactiveMongoConfigurationIntegrationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractReactiveMongoConfigurationIntegrationTests.java @@ -25,6 +25,7 @@ import org.springframework.context.annotation.Configuration; import org.springframework.data.mongodb.core.ReactiveMongoOperations; import org.springframework.data.mongodb.core.ReactiveMongoTemplate; import org.springframework.data.mongodb.core.SimpleReactiveMongoDatabaseFactory; +import org.springframework.data.mongodb.test.util.MongoTestUtils; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringRunner; @@ -56,7 +57,7 @@ public class AbstractReactiveMongoConfigurationIntegrationTests { @Override public MongoClient reactiveMongoClient() { - return MongoClients.create(); + return MongoTestUtils.reactiveClient(); } @Override diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractReactiveMongoConfigurationUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractReactiveMongoConfigurationUnitTests.java index d187aaa72..ea80df1c4 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractReactiveMongoConfigurationUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractReactiveMongoConfigurationUnitTests.java @@ -38,6 +38,7 @@ import org.springframework.data.mongodb.core.convert.MongoTypeMapper; import org.springframework.data.mongodb.core.mapping.BasicMongoPersistentEntity; import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.MongoMappingContext; +import org.springframework.data.mongodb.test.util.MongoTestUtils; import org.springframework.data.spel.EvaluationContextProvider; import org.springframework.data.spel.ExtensionAwareEvaluationContextProvider; import org.springframework.test.util.ReflectionTestUtils; @@ -155,7 +156,7 @@ public class AbstractReactiveMongoConfigurationUnitTests { @Override public MongoClient reactiveMongoClient() { - return MongoClients.create(); + return MongoTestUtils.reactiveClient(); } @Bean @@ -183,7 +184,7 @@ public class AbstractReactiveMongoConfigurationUnitTests { @Override public MongoClient reactiveMongoClient() { - return MongoClients.create(); + return MongoTestUtils.reactiveClient(); } @Override diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/ReactiveAuditingTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/ReactiveAuditingTests.java index b9c458f45..31b649b09 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/ReactiveAuditingTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/ReactiveAuditingTests.java @@ -38,6 +38,7 @@ import org.springframework.data.mongodb.core.mapping.MongoMappingContext; import org.springframework.data.mongodb.core.mapping.MongoPersistentEntity; import org.springframework.data.mongodb.repository.ReactiveMongoRepository; import org.springframework.data.mongodb.repository.config.EnableReactiveMongoRepositories; +import org.springframework.data.mongodb.test.util.MongoTestUtils; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringRunner; @@ -70,7 +71,7 @@ public class ReactiveAuditingTests { @Override public MongoClient reactiveMongoClient() { - return MongoClients.create(); + return MongoTestUtils.reactiveClient(); } @Bean diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ClientSessionTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ClientSessionTests.java index 5fd906c65..dcdb60935 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ClientSessionTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ClientSessionTests.java @@ -69,11 +69,6 @@ public class ClientSessionTests { template.getDb().getCollection(COLLECTION_NAME).insertOne(new Document("_id", "id-1").append("value", "spring")); } - @After - public void tearDown() { - client.close(); - } - @Test // DATAMONGO-1880 public void shouldApplyClientSession() { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultReactiveIndexOperationsTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultReactiveIndexOperationsTests.java index e1a49198a..a8b79b24c 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultReactiveIndexOperationsTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultReactiveIndexOperationsTests.java @@ -39,6 +39,7 @@ import org.springframework.data.mongodb.core.index.IndexInfo; import org.springframework.data.mongodb.core.mapping.Field; import org.springframework.data.mongodb.core.query.Collation; import org.springframework.data.mongodb.core.query.Collation.CaseFirst; +import org.springframework.data.mongodb.test.util.MongoTestUtils; import org.springframework.data.util.Version; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @@ -60,7 +61,7 @@ public class DefaultReactiveIndexOperationsTests { @Override public MongoClient reactiveMongoClient() { - return MongoClients.create(); + return MongoTestUtils.reactiveClient(); } @Override diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/JsonSchemaQueryTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/JsonSchemaQueryTests.java index 38b54a20b..62e9c6abf 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/JsonSchemaQueryTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/JsonSchemaQueryTests.java @@ -33,6 +33,7 @@ import org.junit.Test; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Field; import org.springframework.data.mongodb.core.schema.MongoJsonSchema; +import org.springframework.data.mongodb.test.util.MongoTestUtils; import org.springframework.data.mongodb.test.util.MongoVersionRule; import org.springframework.data.util.Version; @@ -50,13 +51,13 @@ public class JsonSchemaQueryTests { public static @ClassRule MongoVersionRule REQUIRES_AT_LEAST_3_6_0 = MongoVersionRule.atLeast(Version.parse("3.6.0")); - static MongoClient client = MongoClients.create(); + static MongoClient client = MongoTestUtils.client(); MongoTemplate template; Person jellyBelly, roseSpringHeart, kazmardBoombub; @BeforeClass public static void beforeClass() { - client = MongoClients.create(); + client = MongoTestUtils.client(); } @Before @@ -93,13 +94,6 @@ public class JsonSchemaQueryTests { template.save(kazmardBoombub); } - @AfterClass - public static void afterClass() { - if (client != null) { - client.close(); - } - } - @Test // DATAMONGO-1835 public void findsDocumentsWithRequiredFieldsCorrectly() { @@ -114,12 +108,10 @@ public class JsonSchemaQueryTests { MongoJsonSchema schema = MongoJsonSchema.builder().required("address").build(); - com.mongodb.reactivestreams.client.MongoClient mongoClient = com.mongodb.reactivestreams.client.MongoClients.create(); + com.mongodb.reactivestreams.client.MongoClient mongoClient = MongoTestUtils.reactiveClient(); new ReactiveMongoTemplate(mongoClient, DATABASE_NAME).find(query(matchingDocumentStructure(schema)), Person.class) .as(StepVerifier::create).expectNextCount(2).verifyComplete(); - - mongoClient.close(); } @Test // DATAMONGO-1835 diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveFindOperationSupportTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveFindOperationSupportTests.java index efaece8d2..98b654342 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveFindOperationSupportTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveFindOperationSupportTests.java @@ -76,7 +76,7 @@ public class ReactiveFindOperationSupportTests { insertObjects(); - template = new ReactiveMongoTemplate(MongoClients.create(), "ExecutableFindOperationSupportTests"); + template = new ReactiveMongoTemplate(MongoTestUtils.reactiveClient(), "ExecutableFindOperationSupportTests"); } void insertObjects() { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateCollationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateCollationTests.java index 5e8424d62..f0f602b73 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateCollationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateCollationTests.java @@ -28,17 +28,18 @@ import org.junit.Before; import org.junit.ClassRule; import org.junit.Test; import org.junit.runner.RunWith; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.data.mongodb.config.AbstractReactiveMongoConfiguration; import org.springframework.data.mongodb.core.query.Collation; +import org.springframework.data.mongodb.test.util.MongoTestUtils; import org.springframework.data.mongodb.test.util.MongoVersionRule; import org.springframework.data.util.Version; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.mongodb.reactivestreams.client.MongoClient; -import com.mongodb.reactivestreams.client.MongoClients; /** * @author Mark Paluch @@ -56,7 +57,7 @@ public class ReactiveMongoTemplateCollationTests { @Override public MongoClient reactiveMongoClient() { - return MongoClients.create(); + return MongoTestUtils.reactiveClient(); } @Override @@ -98,10 +99,9 @@ public class ReactiveMongoTemplateCollationTests { return template.execute(db -> { - return Flux - .from(db.runCommand(new Document() // - .append("listCollections", 1) // - .append("filter", new Document("name", collectionName)))) // + return Flux.from(db.runCommand(new Document() // + .append("listCollections", 1) // + .append("filter", new Document("name", collectionName)))) // .map(it -> it.get("cursor", Document.class)) .flatMapIterable(it -> (List) it.get("firstBatch", List.class)); }).next(); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveRemoveOperationSupportTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveRemoveOperationSupportTests.java index 16daea720..99fadce8e 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveRemoveOperationSupportTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveRemoveOperationSupportTests.java @@ -62,7 +62,7 @@ public class ReactiveRemoveOperationSupportTests { blocking.save(han); blocking.save(luke); - template = new ReactiveMongoTemplate(MongoClients.create(), "ExecutableRemoveOperationSupportTests"); + template = new ReactiveMongoTemplate(MongoTestUtils.reactiveClient(), "ExecutableRemoveOperationSupportTests"); } @Test // DATAMONGO-1719 diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveUpdateOperationSupportTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveUpdateOperationSupportTests.java index 9b385014f..270a45e10 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveUpdateOperationSupportTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveUpdateOperationSupportTests.java @@ -65,7 +65,7 @@ public class ReactiveUpdateOperationSupportTests { blocking.save(han); blocking.save(luke); - template = new ReactiveMongoTemplate(MongoClients.create(), "ExecutableUpdateOperationSupportTests"); + template = new ReactiveMongoTemplate(MongoTestUtils.reactiveClient(), "ExecutableUpdateOperationSupportTests"); } @Test // DATAMONGO-1719 diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SessionBoundMongoTemplateTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SessionBoundMongoTemplateTests.java index 954c0f905..1fe289f6f 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SessionBoundMongoTemplateTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SessionBoundMongoTemplateTests.java @@ -149,7 +149,6 @@ public class SessionBoundMongoTemplateTests { public void tearDown() { session.close(); - client.close(); } @Test // DATAMONGO-1880 diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/auditing/ReactiveMongoTemplateAuditingTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/auditing/ReactiveMongoTemplateAuditingTests.java index d0b8d5497..42da6644b 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/auditing/ReactiveMongoTemplateAuditingTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/auditing/ReactiveMongoTemplateAuditingTests.java @@ -60,7 +60,7 @@ public class ReactiveMongoTemplateAuditingTests { @Bean @Override public MongoClient reactiveMongoClient() { - return MongoClients.create(); + return MongoTestUtils.reactiveClient(); } @Override diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterTests.java index 21c41443a..2f8b7a615 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterTests.java @@ -35,6 +35,7 @@ import org.springframework.data.mongodb.MongoDbFactory; import org.springframework.data.mongodb.core.SimpleMongoClientDbFactory; import org.springframework.data.mongodb.core.mapping.DBRef; import org.springframework.data.mongodb.core.mapping.MongoMappingContext; +import org.springframework.data.mongodb.test.util.MongoTestUtils; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; @@ -55,7 +56,7 @@ public class MappingMongoConverterTests { @Before public void setUp() { - client = MongoClients.create(); + client = MongoTestUtils.client(); client.getDatabase("mapping-converter-tests").drop(); MongoDbFactory factory = new SimpleMongoClientDbFactory(client, "mapping-converter-tests"); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/ApplicationContextEventTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/ApplicationContextEventTests.java index 04c998d13..8e0a04e26 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/ApplicationContextEventTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/ApplicationContextEventTests.java @@ -46,6 +46,7 @@ import org.springframework.data.mongodb.repository.QPerson; import org.springframework.data.mongodb.repository.query.MongoEntityInformation; import org.springframework.data.mongodb.repository.support.MongoRepositoryFactory; import org.springframework.data.mongodb.repository.support.QuerydslMongoPredicateExecutor; +import org.springframework.data.mongodb.test.util.MongoTestUtils; import com.mongodb.WriteConcern; import com.mongodb.client.MongoClient; @@ -75,12 +76,7 @@ public class ApplicationContextEventTests { @BeforeClass public static void beforeClass() { - mongo = MongoClients.create(); - } - - @AfterClass - public static void afterClass() { - mongo.close(); + mongo = MongoTestUtils.client(); } @Before diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/CriteriaTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/CriteriaTests.java index 93855a08b..566628a94 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/CriteriaTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/CriteriaTests.java @@ -32,6 +32,7 @@ import org.junit.Test; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.test.util.MongoTestUtils; import org.springframework.util.Base64Utils; import com.mongodb.client.MongoClient; @@ -59,7 +60,7 @@ public class CriteriaTests { @Before public void setUp() { - client = MongoClients.create(); + client = MongoTestUtils.client(); ops = new MongoTemplate(client, "criteria-tests"); ops.dropCollection(DocumentWithBitmask.class); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/schema/ReactiveMongoJsonSchemaTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/schema/ReactiveMongoJsonSchemaTests.java index 8f622fa8a..e333adf34 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/schema/ReactiveMongoJsonSchemaTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/schema/ReactiveMongoJsonSchemaTests.java @@ -36,6 +36,7 @@ import org.springframework.data.mongodb.core.CollectionOptions; import org.springframework.data.mongodb.core.ReactiveMongoTemplate; import org.springframework.data.mongodb.core.convert.MongoJsonSchemaMapper; import org.springframework.data.mongodb.core.mapping.Field; +import org.springframework.data.mongodb.test.util.MongoTestUtils; import org.springframework.data.mongodb.test.util.MongoVersionRule; import org.springframework.data.util.Version; import org.springframework.test.context.ContextConfiguration; @@ -60,7 +61,7 @@ public class ReactiveMongoJsonSchemaTests { @Override public MongoClient reactiveMongoClient() { - return MongoClients.create(); + return MongoTestUtils.reactiveClient(); } @Override diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/ReactiveMongoRepositoryTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/ReactiveMongoRepositoryTests.java index ee22b3957..a5640f4e4 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/ReactiveMongoRepositoryTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/ReactiveMongoRepositoryTests.java @@ -67,7 +67,6 @@ import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.mongodb.reactivestreams.client.MongoClient; -import com.mongodb.reactivestreams.client.MongoClients; /** * Test for {@link ReactiveMongoRepository} query methods. @@ -94,7 +93,7 @@ public class ReactiveMongoRepositoryTests { @Bean @Override public MongoClient reactiveMongoClient() { - return MongoClients.create(); + return MongoTestUtils.reactiveClient(); } @Override @@ -133,11 +132,10 @@ public class ReactiveMongoRepositoryTests { @BeforeClass public static void cleanDb() { - try (MongoClient client = MongoClients.create()) { + MongoClient client = MongoTestUtils.reactiveClient(); - MongoTestUtils.createOrReplaceCollectionNow("reactive", "person", client); - MongoTestUtils.createOrReplaceCollectionNow("reactive", "capped", client); - } + MongoTestUtils.createOrReplaceCollectionNow("reactive", "person", client); + MongoTestUtils.createOrReplaceCollectionNow("reactive", "capped", client); } @Before diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/config/ReactiveMongoRepositoriesRegistrarIntegrationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/config/ReactiveMongoRepositoriesRegistrarIntegrationTests.java index 08e5f0ec2..201207096 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/config/ReactiveMongoRepositoriesRegistrarIntegrationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/config/ReactiveMongoRepositoriesRegistrarIntegrationTests.java @@ -25,6 +25,7 @@ import org.springframework.context.annotation.Configuration; import org.springframework.data.mongodb.core.ReactiveMongoTemplate; import org.springframework.data.mongodb.core.SimpleReactiveMongoDatabaseFactory; import org.springframework.data.mongodb.repository.ReactivePersonRepository; +import org.springframework.data.mongodb.test.util.MongoTestUtils; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @@ -45,7 +46,8 @@ public class ReactiveMongoRepositoriesRegistrarIntegrationTests { @Bean public ReactiveMongoTemplate reactiveMongoTemplate() throws Exception { - return new ReactiveMongoTemplate(new SimpleReactiveMongoDatabaseFactory(MongoClients.create(), "database")); + return new ReactiveMongoTemplate( + new SimpleReactiveMongoDatabaseFactory(MongoTestUtils.reactiveClient(), "database")); } } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/ReactiveQuerydslMongoPredicateExecutorTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/ReactiveQuerydslMongoPredicateExecutorTests.java index f67045c01..e5cb46d6e 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/ReactiveQuerydslMongoPredicateExecutorTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/ReactiveQuerydslMongoPredicateExecutorTests.java @@ -78,7 +78,7 @@ public class ReactiveQuerydslMongoPredicateExecutorTests { @Override public MongoClient reactiveMongoClient() { - return MongoClients.create(); + return MongoTestUtils.reactiveClient(); } @Override @@ -90,11 +90,10 @@ public class ReactiveQuerydslMongoPredicateExecutorTests { @BeforeClass public static void cleanDb() { - try (MongoClient client = MongoClients.create()) { + MongoClient client = MongoTestUtils.reactiveClient(); - MongoTestUtils.createOrReplaceCollectionNow("reactive", "person", client); - MongoTestUtils.createOrReplaceCollectionNow("reactive", "user", client); - } + MongoTestUtils.createOrReplaceCollectionNow("reactive", "person", client); + MongoTestUtils.createOrReplaceCollectionNow("reactive", "user", client); } @Before diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepositoryVersionedEntityTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepositoryVersionedEntityTests.java index b2bfd0487..ad797cb51 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepositoryVersionedEntityTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepositoryVersionedEntityTests.java @@ -33,6 +33,7 @@ import org.springframework.data.mongodb.core.mapping.BasicMongoPersistentEntity; import org.springframework.data.mongodb.core.mapping.MongoPersistentEntity; import org.springframework.data.mongodb.repository.VersionedPerson; import org.springframework.data.mongodb.repository.query.MongoEntityInformation; +import org.springframework.data.mongodb.test.util.MongoTestUtils; import org.springframework.data.mongodb.test.util.MongoVersion; import org.springframework.data.mongodb.test.util.ReplicaSet; import org.springframework.data.util.ClassTypeInformation; @@ -56,7 +57,7 @@ public class SimpleMongoRepositoryVersionedEntityTests { @Override public MongoClient mongoClient() { - return MongoClients.create(); + return MongoTestUtils.client(); } @Override diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleReactiveMongoRepositoryVersionedEntityTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleReactiveMongoRepositoryVersionedEntityTests.java index 33d4784db..0488a417a 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleReactiveMongoRepositoryVersionedEntityTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleReactiveMongoRepositoryVersionedEntityTests.java @@ -31,6 +31,7 @@ import org.springframework.data.mongodb.core.ReactiveMongoTemplate; import org.springframework.data.mongodb.core.mapping.MongoPersistentEntity; import org.springframework.data.mongodb.repository.VersionedPerson; import org.springframework.data.mongodb.repository.query.MongoEntityInformation; +import org.springframework.data.mongodb.test.util.MongoTestUtils; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @@ -49,7 +50,7 @@ public class SimpleReactiveMongoRepositoryVersionedEntityTests { @Override public MongoClient reactiveMongoClient() { - return MongoClients.create(); + return MongoTestUtils.reactiveClient(); } @Override diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/CleanMongoDB.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/CleanMongoDB.java index f2f7b21bc..e54e92035 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/CleanMongoDB.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/CleanMongoDB.java @@ -361,14 +361,13 @@ public class CleanMongoDB implements TestRule { boolean isInternal = false; if (client == null) { - client = MongoClients.create(); + client = MongoTestUtils.client(); isInternal = true; } doClean(); if (isInternal) { - client.close(); client = null; } } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTestUtils.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTestUtils.java index a2585d21c..bb14d10a1 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTestUtils.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTestUtils.java @@ -15,7 +15,6 @@ */ package org.springframework.data.mongodb.test.util; -import com.mongodb.client.MongoClient; import reactor.core.publisher.Mono; import reactor.test.StepVerifier; @@ -25,20 +24,29 @@ import org.bson.Document; import com.mongodb.ReadPreference; import com.mongodb.WriteConcern; +import com.mongodb.client.MongoClient; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.reactivestreams.client.MongoClients; import com.mongodb.reactivestreams.client.Success; /** + * Utility to create (and reuse) imperative and reactive {@code MongoClient} instances. + * * @author Christoph Strobl + * @author Mark Paluch */ public class MongoTestUtils { + public static final String CONNECTION_STRING = "mongodb://localhost:27017/?replicaSet=rs0"; // &readPreference=primary&w=majority private static final String CONNECTION_STRING_PATTERN = "mongodb://%s:%s/"; - public static final String CONNECTION_STRING = "mongodb://localhost:27017/?replicaSet=rs0"; // &readPreference=primary&w=majority + /** + * Create a new {@link com.mongodb.client.MongoClient} with defaults. + * + * @return new instance of {@link com.mongodb.client.MongoClient}. + */ public static MongoClient client() { return client("localhost", 27017); } @@ -46,6 +54,20 @@ public class MongoTestUtils { public static MongoClient client(String host, int port) { return com.mongodb.client.MongoClients.create(String.format(CONNECTION_STRING_PATTERN, host, port)); } + + /** + * Create a new {@link com.mongodb.reactivestreams.client.MongoClient} with defaults. + * + * @return new instance of {@link com.mongodb.reactivestreams.client.MongoClient}. + */ + public static com.mongodb.reactivestreams.client.MongoClient reactiveClient() { + return reactiveClient("localhost", 27017); + } + + public static com.mongodb.reactivestreams.client.MongoClient reactiveClient(String host, int port) { + return MongoClients.create(String.format(CONNECTION_STRING_PATTERN, host, port)); + } + /** * Create a {@link com.mongodb.client.MongoCollection} if it does not exist, or drop and recreate it if it does. * diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoVersionRule.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoVersionRule.java index 607296f4f..9e2cccf83 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoVersionRule.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoVersionRule.java @@ -178,7 +178,6 @@ public class MongoVersionRule implements TestRule { MongoClient client = MongoTestUtils.client(host, port); MongoDatabase database = client.getDatabase("test"); Document result = database.runCommand(new Document("buildInfo", 1)); - client.close(); return Version.parse(result.get("version", String.class)); } catch (Exception e) { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/ReplicaSet.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/ReplicaSet.java index 01f282f6a..6d606de93 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/ReplicaSet.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/ReplicaSet.java @@ -94,12 +94,11 @@ public class ReplicaSet implements TestRule { if (runsAsReplicaSet.get() == null) { - try (MongoClient client = MongoTestUtils.client()) { + MongoClient client = MongoTestUtils.client(); - boolean tmp = client.getDatabase("admin").runCommand(new Document("getCmdLineOpts", "1")) - .get("argv", List.class).contains("--replSet"); - runsAsReplicaSet.compareAndSet(null, tmp); - } + boolean tmp = client.getDatabase("admin").runCommand(new Document("getCmdLineOpts", "1")).get("argv", List.class) + .contains("--replSet"); + runsAsReplicaSet.compareAndSet(null, tmp); } return runsAsReplicaSet.get(); }