Add support for creating a container from a TestImage value

This commit improves TestImage so that an explicit image can trigger
the creation of the container, with optional additional setup. This
removes the need of creating additional container types for images that
have multiple flavors, and to please the static method that can only
create a container based on a single match.

Closes gh-51082
This commit is contained in:
Stéphane Nicoll
2026-09-08 16:46:48 +02:00
parent f956f588d5
commit b1e91c942e
125 changed files with 201 additions and 356 deletions
@@ -22,6 +22,7 @@ import java.util.List;
import org.awaitility.Awaitility;
import org.junit.jupiter.api.Test;
import org.testcontainers.activemq.ActiveMQContainer;
import org.testcontainers.junit.jupiter.Container;
import org.testcontainers.junit.jupiter.Testcontainers;
@@ -30,7 +31,6 @@ import org.springframework.boot.activemq.autoconfigure.ActiveMQAutoConfiguration
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
import org.springframework.boot.jms.autoconfigure.JmsAutoConfiguration;
import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
import org.springframework.boot.testsupport.container.ActiveMQClassicContainer;
import org.springframework.boot.testsupport.container.TestImage;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -51,7 +51,7 @@ class ActiveMQClassicContainerConnectionDetailsFactoryIntegrationTests {
@Container
@ServiceConnection
static final ActiveMQClassicContainer activemq = TestImage.container(ActiveMQClassicContainer.class);
static final ActiveMQContainer activemq = TestImage.ACTIVE_MQ_CLASSIC.container();
@Autowired
private JmsClient jmsClient;
@@ -22,6 +22,7 @@ import java.util.List;
import org.awaitility.Awaitility;
import org.junit.jupiter.api.Test;
import org.testcontainers.containers.GenericContainer;
import org.testcontainers.junit.jupiter.Container;
import org.testcontainers.junit.jupiter.Testcontainers;
@@ -30,7 +31,6 @@ import org.springframework.boot.activemq.autoconfigure.ActiveMQAutoConfiguration
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
import org.springframework.boot.jms.autoconfigure.JmsAutoConfiguration;
import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
import org.springframework.boot.testsupport.container.SymptomaActiveMQContainer;
import org.springframework.boot.testsupport.container.TestImage;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -51,7 +51,7 @@ class ActiveMQContainerConnectionDetailsFactoryIntegrationTests {
@Container
@ServiceConnection
static final SymptomaActiveMQContainer activemq = TestImage.container(SymptomaActiveMQContainer.class);
static final GenericContainer<?> activemq = TestImage.ACTIVE_MQ_SYMPTOMA.container();
@Autowired
private JmsClient jmsClient;