Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,8 @@ ComposeFileCustomizer mongoDbComposeFileCustomizer(Build build, DockerServiceRes

private boolean isMongoEnabled(Build build) {
return build.dependencies().has("mongodb") || build.dependencies().has("data-mongodb")
|| build.dependencies().has("data-mongodb-reactive") || build.dependencies().has("session-data-mongodb")
|| build.dependencies().has("data-mongodb-reactive") || build.dependencies().has("batch-data-mongodb")
|| build.dependencies().has("session-data-mongodb")
|| build.dependencies().has("spring-ai-chat-memory-repository-mongodb");
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ static Iterable<ImplicitDependency> create(Testcontainers testcontainers) {
builders.add(onDependencies("elasticsearch", "data-elasticsearch", "spring-ai-vectordb-elasticsearch")
.customizeBuild(addModule("elasticsearch", testcontainers, SupportedContainer.ELASTICSEARCH))
.customizeHelpDocument(addReferenceLink("Elasticsearch Container", "elasticsearch/")));
builders.add(onDependencies("mongodb", "data-mongodb", "data-mongodb-reactive",
builders.add(onDependencies("mongodb", "data-mongodb", "data-mongodb-reactive", "batch-data-mongodb",
"spring-ai-vectordb-mongodb-atlas", "session-data-mongodb", "spring-ai-chat-memory-repository-mongodb")
.customizeBuild(addModule("mongodb", testcontainers, SupportedContainer.MONGODB))
.customizeHelpDocument(addReferenceLink("MongoDB Module", "databases/mongodb/")));
Expand Down
9 changes: 9 additions & 0 deletions start-site/src/main/resources/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1142,6 +1142,15 @@ initializr:
links:
- rel: reference
href: https://docs.spring.io/spring-boot/{bootVersion}/how-to/batch.html
- name: Spring Batch MongoDB
id: batch-data-mongodb
groupId: org.springframework.boot
artifactId: spring-boot-starter-batch-data-mongodb
description: MongoDB support for Spring Batch applications.
compatibilityRange: "4.1.0-SNAPSHOT"
links:
- rel: reference
href: https://docs.spring.io/spring-boot/{bootVersion}/how-to/batch.html
- name: Hazelcast
id: hazelcast
groupId: org.springframework.boot
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,4 +78,23 @@ void createsMongoDbServiceWhenSpringAiChatMemoryIsSelected() {
assertThat(composeFile(request)).hasSameContentAs(new ClassPathResource("compose/mongodb.yaml"));
}

@Test
void createsMongoDbServiceWhenBatchDataMongoDbIsSelected() {
ProjectRequest request = createProjectRequest(SupportedBootVersion.V4_1, "docker-compose",
"batch-data-mongodb");
assertThat(composeFile(request)).hasSameContentAs(new ClassPathResource("compose/mongodb.yaml"));
}

@Test
void createsMongoDbServiceConnectionWhenBatchDataMongoDbIsSelected() {
ProjectRequest request = createProjectRequest(SupportedBootVersion.V4_1, "testcontainers",
"batch-data-mongodb");
request.setLanguage("java");
assertThat(generateProject(request)).textFile("src/test/java/com/example/demo/TestcontainersConfiguration.java")
.contains("import org.testcontainers.mongodb.MongoDBContainer;")
.contains("@ServiceConnection")
.contains("MongoDBContainer mongoDbContainer()")
.contains("return new MongoDBContainer(DockerImageName.parse(\"mongo:latest\"));");
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
*
* @author Tim Riemer
* @author Moritz Halbritter
* @author Eddú Meléndez
*/
class SpringBatchTestBuildCustomizerTests extends AbstractExtensionTests {

Expand All @@ -52,6 +53,12 @@ void shouldNotAddTestDependencyForBoot4() {
assertThat(mavenPom(request)).doesNotHaveDependency(dependency.getGroupId(), dependency.getArtifactId());
}

@Test
void shouldAddBatchDataMongoDbDependency() {
ProjectRequest request = createProjectRequest(SupportedBootVersion.V4_1, "batch-data-mongodb");
assertThat(mavenPom(request)).hasDependency(getDependency(SupportedBootVersion.V4_1, "batch-data-mongodb"));
Comment on lines +57 to +59
}

private static Dependency springBatchTest() {
Dependency dependency = Dependency.withId("spring-batch-test", "org.springframework.batch",
"spring-batch-test");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,15 @@ void buildWithSpringBootAndTestcontainersSpringAi2Module() {
.hasDependency(getDependency(bootVersion, "testcontainers"));
}

@Test
void buildWithSpringBoot4AndTestcontainersBatchDataMongoDbModule() {
assertThat(generateProject(SupportedBootVersion.V4_1, "testcontainers", "batch-data-mongodb")).mavenBuild()
.doesNotHaveBom("org.testcontainers", "testcontainers-bom")
.hasDependency(getDependency(SupportedBootVersion.V4_1, "batch-data-mongodb"))
.hasDependency("org.testcontainers", "testcontainers-mongodb", null, "test")
.hasDependency(getDependency(SupportedBootVersion.V4_1, "testcontainers"));
}

static Stream<Arguments> supportedTestcontainersActiveMQEntriesBuild() {
return Stream.of(Arguments.arguments("activemq", "activemq"), Arguments.arguments("artemis", "activemq"));
}
Expand Down Expand Up @@ -171,6 +180,19 @@ static Stream<Arguments> supportedEntriesHelpDocumentBoot4() {
Arguments.arguments("neo4j", "https://java.testcontainers.org/modules/databases/neo4j/"));
}

@Test
void linkToBatchDataMongoDbWhenTestContainerIsPresentIsAdded() {
ProjectRequest request = createProjectRequest(SupportedBootVersion.V4_1, "testcontainers",
"batch-data-mongodb");
assertThat(helpDocument(request)).contains("https://java.testcontainers.org/modules/databases/mongodb/");
}

@Test
void linkToBatchDataMongoDbWhenTestContainerIsNotPresentIsNotAdded() {
ProjectRequest request = createProjectRequest(SupportedBootVersion.V4_1, "batch-data-mongodb");
assertThat(helpDocument(request)).doesNotContain("https://java.testcontainers.org/modules/databases/mongodb/");
Comment on lines +183 to +193
}

@Test
void linkToSupportedEntriesWhenTwoMatchesArePresentOnlyAddLinkOnce() {
assertHelpDocument("testcontainers", "data-mongodb", "data-mongodb-reactive")
Expand Down
Loading