diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/MongoDBIntegrationTestConfiguration.java b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/MongoDBIntegrationTestConfiguration.java index 31ea7439dd..29177d33a4 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/MongoDBIntegrationTestConfiguration.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/MongoDBIntegrationTestConfiguration.java @@ -23,7 +23,6 @@ import org.springframework.batch.core.repository.JobRepository; import org.springframework.batch.core.step.builder.StepBuilder; import org.springframework.batch.repeat.RepeatStatus; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.mongodb.MongoDatabaseFactory; @@ -31,14 +30,24 @@ import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.SimpleMongoClientDatabaseFactory; import org.springframework.data.mongodb.core.convert.MappingMongoConverter; +import org.testcontainers.containers.MongoDBContainer; +import org.testcontainers.utility.DockerImageName; /** * @author Mahmoud Ben Hassine + * @author Yanming Zhou */ @Configuration @EnableBatchProcessing class MongoDBIntegrationTestConfiguration { + private static final DockerImageName MONGODB_IMAGE = DockerImageName.parse("mongo:8.0.1"); + + @Bean(initMethod = "start") + public MongoDBContainer mongoDBContainer() { + return new MongoDBContainer(MONGODB_IMAGE); + } + @Bean public JobRepository jobRepository(MongoTemplate mongoTemplate, MongoTransactionManager transactionManager) throws Exception { @@ -60,8 +69,8 @@ public JobExplorer jobExplorer(MongoTemplate mongoTemplate, MongoTransactionMana } @Bean - public MongoDatabaseFactory mongoDatabaseFactory(@Value("${mongo.connectionString}") String connectionString) { - return new SimpleMongoClientDatabaseFactory(connectionString + "/test"); + public MongoDatabaseFactory mongoDatabaseFactory(MongoDBContainer mongoDBContainer) { + return new SimpleMongoClientDatabaseFactory(mongoDBContainer.getConnectionString() + "/test"); } @Bean diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/MongoDBJobExplorerIntegrationTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/MongoDBJobExplorerIntegrationTests.java index f47c731990..eefb30a8b9 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/MongoDBJobExplorerIntegrationTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/MongoDBJobExplorerIntegrationTests.java @@ -31,13 +31,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.context.DynamicPropertyRegistry; -import org.springframework.test.context.DynamicPropertySource; import org.springframework.test.context.junit.jupiter.SpringJUnitConfig; -import org.testcontainers.containers.MongoDBContainer; -import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -45,22 +40,13 @@ /** * @author Henning Pöttker + * @author Yanming Zhou */ @DirtiesContext @Testcontainers(disabledWithoutDocker = true) @SpringJUnitConfig(MongoDBIntegrationTestConfiguration.class) public class MongoDBJobExplorerIntegrationTests { - private static final DockerImageName MONGODB_IMAGE = DockerImageName.parse("mongo:8.0.1"); - - @Container - public static MongoDBContainer mongodb = new MongoDBContainer(MONGODB_IMAGE); - - @DynamicPropertySource - static void setMongoDbConnectionString(DynamicPropertyRegistry registry) { - registry.add("mongo.connectionString", mongodb::getConnectionString); - } - @BeforeAll static void setUp(@Autowired MongoTemplate mongoTemplate) { mongoTemplate.createCollection("BATCH_JOB_INSTANCE"); diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/MongoDBJobRepositoryIntegrationTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/MongoDBJobRepositoryIntegrationTests.java index b70b80281c..632983d347 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/MongoDBJobRepositoryIntegrationTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/MongoDBJobRepositoryIntegrationTests.java @@ -26,13 +26,8 @@ import org.springframework.test.annotation.DirtiesContext; import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.index.Index; -import org.springframework.test.context.DynamicPropertyRegistry; -import org.springframework.test.context.DynamicPropertySource; import org.springframework.test.context.junit.jupiter.SpringJUnitConfig; -import org.testcontainers.containers.MongoDBContainer; -import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; import org.springframework.batch.core.ExitStatus; import org.springframework.batch.core.Job; @@ -45,22 +40,13 @@ /** * @author Mahmoud Ben Hassine + * @author Yanming Zhou */ @DirtiesContext @Testcontainers(disabledWithoutDocker = true) @SpringJUnitConfig(MongoDBIntegrationTestConfiguration.class) public class MongoDBJobRepositoryIntegrationTests { - private static final DockerImageName MONGODB_IMAGE = DockerImageName.parse("mongo:8.0.1"); - - @Container - public static MongoDBContainer mongodb = new MongoDBContainer(MONGODB_IMAGE); - - @DynamicPropertySource - static void setMongoDbConnectionString(DynamicPropertyRegistry registry) { - registry.add("mongo.connectionString", mongodb::getConnectionString); - } - @Autowired private MongoTemplate mongoTemplate; diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/MongoExecutionContextDaoIntegrationTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/MongoExecutionContextDaoIntegrationTests.java index a04795928f..c4dfeff8b4 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/MongoExecutionContextDaoIntegrationTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/MongoExecutionContextDaoIntegrationTests.java @@ -37,13 +37,8 @@ import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.context.DynamicPropertyRegistry; -import org.springframework.test.context.DynamicPropertySource; import org.springframework.test.context.junit.jupiter.SpringJUnitConfig; -import org.testcontainers.containers.MongoDBContainer; -import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -51,22 +46,13 @@ /** * @author Henning Pöttker + * @author Yanming Zhou */ @DirtiesContext @Testcontainers(disabledWithoutDocker = true) @SpringJUnitConfig({ MongoDBIntegrationTestConfiguration.class, ExecutionContextDaoConfiguration.class }) public class MongoExecutionContextDaoIntegrationTests { - private static final DockerImageName MONGODB_IMAGE = DockerImageName.parse("mongo:8.0.1"); - - @Container - public static MongoDBContainer mongodb = new MongoDBContainer(MONGODB_IMAGE); - - @DynamicPropertySource - static void setMongoDbConnectionString(DynamicPropertyRegistry registry) { - registry.add("mongo.connectionString", mongodb::getConnectionString); - } - @BeforeAll static void setUp(@Autowired MongoTemplate mongoTemplate) { mongoTemplate.createCollection("BATCH_JOB_INSTANCE");