diff --git a/samples/boot/findbyusername/src/integration-test/java/sample/FindByUsernameTests.java b/samples/boot/findbyusername/src/integration-test/java/sample/FindByUsernameTests.java index 1fca0f90..7ffa9b22 100644 --- a/samples/boot/findbyusername/src/integration-test/java/sample/FindByUsernameTests.java +++ b/samples/boot/findbyusername/src/integration-test/java/sample/FindByUsernameTests.java @@ -17,9 +17,7 @@ package sample; import org.junit.After; -import org.junit.AfterClass; import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.openqa.selenium.WebDriver; @@ -31,10 +29,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; -import org.springframework.boot.test.util.TestPropertyValues; -import org.springframework.context.ApplicationContextInitializer; -import org.springframework.context.ConfigurableApplicationContext; -import org.springframework.test.context.ContextConfiguration; +import org.springframework.boot.test.context.TestConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.htmlunit.webdriver.MockMvcHtmlUnitDriverBuilder; @@ -46,25 +43,11 @@ import org.springframework.test.web.servlet.htmlunit.webdriver.MockMvcHtmlUnitDr */ @RunWith(SpringRunner.class) @AutoConfigureMockMvc -@SpringBootTest(classes = FindByUsernameApplication.class, webEnvironment = WebEnvironment.MOCK) -@ContextConfiguration(initializers = FindByUsernameTests.Initializer.class) +@SpringBootTest(webEnvironment = WebEnvironment.MOCK) public class FindByUsernameTests { private static final String DOCKER_IMAGE = "redis:4.0.9"; - private static GenericContainer container = new GenericContainer(DOCKER_IMAGE) - .withExposedPorts(6379); - - @BeforeClass - public static void setUpClass() { - container.start(); - } - - @AfterClass - public static void tearDownClass() { - container.stop(); - } - @Autowired private MockMvc mockMvc; @@ -96,16 +79,21 @@ public class FindByUsernameTests { home.terminateButtonDisabled(); } - static class Initializer - implements ApplicationContextInitializer { + @TestConfiguration + static class Config { - @Override - public void initialize( - ConfigurableApplicationContext configurableApplicationContext) { - TestPropertyValues - .of("spring.redis.host=" + container.getContainerIpAddress(), - "spring.redis.port=" + container.getFirstMappedPort()) - .applyTo(configurableApplicationContext.getEnvironment()); + @Bean + public GenericContainer redisContainer() { + GenericContainer redisContainer = new GenericContainer(DOCKER_IMAGE) + .withExposedPorts(6379); + redisContainer.start(); + return redisContainer; + } + + @Bean + public LettuceConnectionFactory redisConnectionFactory() { + return new LettuceConnectionFactory(redisContainer().getContainerIpAddress(), + redisContainer().getFirstMappedPort()); } } diff --git a/samples/boot/redis-json/src/integration-test/java/sample/HttpRedisJsonTest.java b/samples/boot/redis-json/src/integration-test/java/sample/HttpRedisJsonTest.java index 045d4fdb..736b7264 100644 --- a/samples/boot/redis-json/src/integration-test/java/sample/HttpRedisJsonTest.java +++ b/samples/boot/redis-json/src/integration-test/java/sample/HttpRedisJsonTest.java @@ -19,9 +19,7 @@ package sample; import java.util.List; import org.junit.After; -import org.junit.AfterClass; import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.openqa.selenium.WebDriver; @@ -34,10 +32,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; -import org.springframework.boot.test.util.TestPropertyValues; -import org.springframework.context.ApplicationContextInitializer; -import org.springframework.context.ConfigurableApplicationContext; -import org.springframework.test.context.ContextConfiguration; +import org.springframework.boot.test.context.TestConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.htmlunit.webdriver.MockMvcHtmlUnitDriverBuilder; @@ -49,26 +46,12 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Vedran Pavic */ @RunWith(SpringRunner.class) -@SpringBootTest(classes = Application.class, webEnvironment = WebEnvironment.MOCK) +@SpringBootTest(webEnvironment = WebEnvironment.MOCK) @AutoConfigureMockMvc -@ContextConfiguration(initializers = HttpRedisJsonTest.Initializer.class) public class HttpRedisJsonTest { private static final String DOCKER_IMAGE = "redis:4.0.9"; - private static GenericContainer container = new GenericContainer(DOCKER_IMAGE) - .withExposedPorts(6379); - - @BeforeClass - public static void setUpClass() { - container.start(); - } - - @AfterClass - public static void tearDownClass() { - container.stop(); - } - @Autowired private MockMvc mockMvc; @@ -120,16 +103,21 @@ public class HttpRedisJsonTest { assertThat(attributes).extracting("attributeValue").contains("Demo Value"); } - static class Initializer - implements ApplicationContextInitializer { + @TestConfiguration + static class Config { - @Override - public void initialize( - ConfigurableApplicationContext configurableApplicationContext) { - TestPropertyValues - .of("spring.redis.host=" + container.getContainerIpAddress(), - "spring.redis.port=" + container.getFirstMappedPort()) - .applyTo(configurableApplicationContext.getEnvironment()); + @Bean + public GenericContainer redisContainer() { + GenericContainer redisContainer = new GenericContainer(DOCKER_IMAGE) + .withExposedPorts(6379); + redisContainer.start(); + return redisContainer; + } + + @Bean + public LettuceConnectionFactory redisConnectionFactory() { + return new LettuceConnectionFactory(redisContainer().getContainerIpAddress(), + redisContainer().getFirstMappedPort()); } } diff --git a/samples/boot/redis-json/src/integration-test/java/sample/RedisSerializerTest.java b/samples/boot/redis-json/src/integration-test/java/sample/RedisSerializerTest.java index fac6cd25..cb40fb39 100644 --- a/samples/boot/redis-json/src/integration-test/java/sample/RedisSerializerTest.java +++ b/samples/boot/redis-json/src/integration-test/java/sample/RedisSerializerTest.java @@ -16,20 +16,17 @@ package sample; -import org.junit.AfterClass; -import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.testcontainers.containers.GenericContainer; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.util.TestPropertyValues; -import org.springframework.context.ApplicationContextInitializer; -import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.boot.test.context.TestConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; import org.springframework.session.data.redis.config.annotation.SpringSessionRedisOperations; -import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringRunner; import static org.assertj.core.api.Assertions.assertThat; @@ -39,25 +36,11 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Vedran Pavic */ @RunWith(SpringRunner.class) -@SpringBootTest(classes = Application.class) -@ContextConfiguration(initializers = RedisSerializerTest.Initializer.class) +@SpringBootTest public class RedisSerializerTest { private static final String DOCKER_IMAGE = "redis:4.0.9"; - private static GenericContainer container = new GenericContainer(DOCKER_IMAGE) - .withExposedPorts(6379); - - @BeforeClass - public static void setUpClass() { - container.start(); - } - - @AfterClass - public static void tearDownClass() { - container.stop(); - } - @SpringSessionRedisOperations private RedisTemplate sessionRedisTemplate; @@ -69,16 +52,21 @@ public class RedisSerializerTest { .isInstanceOf(GenericJackson2JsonRedisSerializer.class); } - static class Initializer - implements ApplicationContextInitializer { + @TestConfiguration + static class Config { - @Override - public void initialize( - ConfigurableApplicationContext configurableApplicationContext) { - TestPropertyValues - .of("spring.redis.host=" + container.getContainerIpAddress(), - "spring.redis.port=" + container.getFirstMappedPort()) - .applyTo(configurableApplicationContext.getEnvironment()); + @Bean + public GenericContainer redisContainer() { + GenericContainer redisContainer = new GenericContainer(DOCKER_IMAGE) + .withExposedPorts(6379); + redisContainer.start(); + return redisContainer; + } + + @Bean + public LettuceConnectionFactory redisConnectionFactory() { + return new LettuceConnectionFactory(redisContainer().getContainerIpAddress(), + redisContainer().getFirstMappedPort()); } } diff --git a/samples/boot/redis/src/integration-test/java/sample/BootTests.java b/samples/boot/redis/src/integration-test/java/sample/BootTests.java index 1ac64ce0..f6cdb169 100644 --- a/samples/boot/redis/src/integration-test/java/sample/BootTests.java +++ b/samples/boot/redis/src/integration-test/java/sample/BootTests.java @@ -17,9 +17,7 @@ package sample; import org.junit.After; -import org.junit.AfterClass; import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.openqa.selenium.WebDriver; @@ -31,10 +29,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; -import org.springframework.boot.test.util.TestPropertyValues; -import org.springframework.context.ApplicationContextInitializer; -import org.springframework.context.ConfigurableApplicationContext; -import org.springframework.test.context.ContextConfiguration; +import org.springframework.boot.test.context.TestConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.htmlunit.webdriver.MockMvcHtmlUnitDriverBuilder; @@ -45,25 +42,11 @@ import org.springframework.test.web.servlet.htmlunit.webdriver.MockMvcHtmlUnitDr */ @RunWith(SpringRunner.class) @AutoConfigureMockMvc -@SpringBootTest(classes = Application.class, webEnvironment = WebEnvironment.MOCK) -@ContextConfiguration(initializers = BootTests.Initializer.class) +@SpringBootTest(webEnvironment = WebEnvironment.MOCK) public class BootTests { private static final String DOCKER_IMAGE = "redis:4.0.9"; - private static GenericContainer container = new GenericContainer(DOCKER_IMAGE) - .withExposedPorts(6379); - - @BeforeClass - public static void setUpClass() { - container.start(); - } - - @AfterClass - public static void tearDownClass() { - container.stop(); - } - @Autowired private MockMvc mockMvc; @@ -102,16 +85,21 @@ public class BootTests { login.assertAt(); } - static class Initializer - implements ApplicationContextInitializer { + @TestConfiguration + static class Config { - @Override - public void initialize( - ConfigurableApplicationContext configurableApplicationContext) { - TestPropertyValues - .of("spring.redis.host=" + container.getContainerIpAddress(), - "spring.redis.port=" + container.getFirstMappedPort()) - .applyTo(configurableApplicationContext.getEnvironment()); + @Bean + public GenericContainer redisContainer() { + GenericContainer redisContainer = new GenericContainer(DOCKER_IMAGE) + .withExposedPorts(6379); + redisContainer.start(); + return redisContainer; + } + + @Bean + public LettuceConnectionFactory redisConnectionFactory() { + return new LettuceConnectionFactory(redisContainer().getContainerIpAddress(), + redisContainer().getFirstMappedPort()); } } diff --git a/samples/boot/webflux/src/integration-test/java/sample/AttributeTests.java b/samples/boot/webflux/src/integration-test/java/sample/AttributeTests.java index d785136e..32b12ed8 100644 --- a/samples/boot/webflux/src/integration-test/java/sample/AttributeTests.java +++ b/samples/boot/webflux/src/integration-test/java/sample/AttributeTests.java @@ -19,9 +19,7 @@ package sample; import java.util.List; import org.junit.After; -import org.junit.AfterClass; import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.openqa.selenium.WebDriver; @@ -32,11 +30,10 @@ import sample.pages.HomePage.Attribute; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; -import org.springframework.boot.test.util.TestPropertyValues; +import org.springframework.boot.test.context.TestConfiguration; import org.springframework.boot.web.server.LocalServerPort; -import org.springframework.context.ApplicationContextInitializer; -import org.springframework.context.ConfigurableApplicationContext; -import org.springframework.test.context.ContextConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; import org.springframework.test.context.junit4.SpringRunner; import static org.assertj.core.api.Assertions.assertThat; @@ -44,27 +41,14 @@ import static org.assertj.core.api.Assertions.assertThat; /** * @author EddĂș MelĂ©ndez * @author Rob Winch + * @author Vedran Pavic */ @RunWith(SpringRunner.class) -@SpringBootTest(classes = HelloWebFluxApplication.class, webEnvironment = WebEnvironment.RANDOM_PORT) -@ContextConfiguration(initializers = AttributeTests.Initializer.class) +@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) public class AttributeTests { private static final String DOCKER_IMAGE = "redis:4.0.9"; - private static GenericContainer container = new GenericContainer(DOCKER_IMAGE) - .withExposedPorts(6379); - - @BeforeClass - public static void setUpClass() { - container.start(); - } - - @AfterClass - public static void tearDownClass() { - container.stop(); - } - @LocalServerPort private int port; @@ -109,16 +93,21 @@ public class AttributeTests { assertThat(row.getAttributeValue()).isEqualTo("b"); } - static class Initializer - implements ApplicationContextInitializer { + @TestConfiguration + static class Config { - @Override - public void initialize( - ConfigurableApplicationContext configurableApplicationContext) { - TestPropertyValues - .of("spring.redis.host=" + container.getContainerIpAddress(), - "spring.redis.port=" + container.getFirstMappedPort()) - .applyTo(configurableApplicationContext.getEnvironment()); + @Bean + public GenericContainer redisContainer() { + GenericContainer redisContainer = new GenericContainer(DOCKER_IMAGE) + .withExposedPorts(6379); + redisContainer.start(); + return redisContainer; + } + + @Bean + public LettuceConnectionFactory redisConnectionFactory() { + return new LettuceConnectionFactory(redisContainer().getContainerIpAddress(), + redisContainer().getFirstMappedPort()); } } diff --git a/samples/boot/websocket/src/test/java/sample/ApplicationTests.java b/samples/boot/websocket/src/test/java/sample/ApplicationTests.java index d4a92e1a..e03f2c9e 100644 --- a/samples/boot/websocket/src/test/java/sample/ApplicationTests.java +++ b/samples/boot/websocket/src/test/java/sample/ApplicationTests.java @@ -20,8 +20,6 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.ExecutionException; -import org.junit.AfterClass; -import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.testcontainers.containers.GenericContainer; @@ -30,10 +28,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; -import org.springframework.boot.test.util.TestPropertyValues; -import org.springframework.context.ApplicationContextInitializer; -import org.springframework.context.ConfigurableApplicationContext; -import org.springframework.test.context.ContextConfiguration; +import org.springframework.boot.test.context.TestConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.util.concurrent.ListenableFuture; import org.springframework.web.socket.TextMessage; @@ -52,25 +49,11 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; * @author Vedran Pavic */ @RunWith(SpringRunner.class) -@SpringBootTest(classes = Application.class, webEnvironment = WebEnvironment.RANDOM_PORT) -@ContextConfiguration(initializers = ApplicationTests.Initializer.class) +@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) public class ApplicationTests { private static final String DOCKER_IMAGE = "redis:4.0.9"; - private static GenericContainer container = new GenericContainer(DOCKER_IMAGE) - .withExposedPorts(6379); - - @BeforeClass - public static void setUpClass() { - container.start(); - } - - @AfterClass - public static void tearDownClass() { - container.stop(); - } - @Value("${local.server.port}") private String port; @@ -91,16 +74,21 @@ public class ApplicationTests { .isInstanceOf(ExecutionException.class); } - static class Initializer - implements ApplicationContextInitializer { + @TestConfiguration + static class Config { - @Override - public void initialize( - ConfigurableApplicationContext configurableApplicationContext) { - TestPropertyValues - .of("spring.redis.host=" + container.getContainerIpAddress(), - "spring.redis.port=" + container.getFirstMappedPort()) - .applyTo(configurableApplicationContext.getEnvironment()); + @Bean + public GenericContainer redisContainer() { + GenericContainer redisContainer = new GenericContainer(DOCKER_IMAGE) + .withExposedPorts(6379); + redisContainer.start(); + return redisContainer; + } + + @Bean + public LettuceConnectionFactory redisConnectionFactory() { + return new LettuceConnectionFactory(redisContainer().getContainerIpAddress(), + redisContainer().getFirstMappedPort()); } } diff --git a/samples/javaconfig/custom-cookie/src/main/java/sample/EmbeddedRedisConfig.java b/samples/javaconfig/custom-cookie/src/main/java/sample/EmbeddedRedisConfig.java index 7aed044a..57563183 100644 --- a/samples/javaconfig/custom-cookie/src/main/java/sample/EmbeddedRedisConfig.java +++ b/samples/javaconfig/custom-cookie/src/main/java/sample/EmbeddedRedisConfig.java @@ -28,11 +28,14 @@ import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactor @Profile("embedded-redis") public class EmbeddedRedisConfig { - private static final String REDIS_DOCKER_IMAGE = "redis:4.0.9"; + private static final String DOCKER_IMAGE = "redis:4.0.9"; - @Bean(initMethod = "start") + @Bean public GenericContainer redisContainer() { - return new GenericContainer(REDIS_DOCKER_IMAGE).withExposedPorts(6379); + GenericContainer redisContainer = new GenericContainer(DOCKER_IMAGE) + .withExposedPorts(6379); + redisContainer.start(); + return redisContainer; } @Bean diff --git a/samples/javaconfig/redis/src/main/java/sample/EmbeddedRedisConfig.java b/samples/javaconfig/redis/src/main/java/sample/EmbeddedRedisConfig.java index 7aed044a..57563183 100644 --- a/samples/javaconfig/redis/src/main/java/sample/EmbeddedRedisConfig.java +++ b/samples/javaconfig/redis/src/main/java/sample/EmbeddedRedisConfig.java @@ -28,11 +28,14 @@ import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactor @Profile("embedded-redis") public class EmbeddedRedisConfig { - private static final String REDIS_DOCKER_IMAGE = "redis:4.0.9"; + private static final String DOCKER_IMAGE = "redis:4.0.9"; - @Bean(initMethod = "start") + @Bean public GenericContainer redisContainer() { - return new GenericContainer(REDIS_DOCKER_IMAGE).withExposedPorts(6379); + GenericContainer redisContainer = new GenericContainer(DOCKER_IMAGE) + .withExposedPorts(6379); + redisContainer.start(); + return redisContainer; } @Bean diff --git a/samples/javaconfig/rest/src/integration-test/java/rest/RestMockMvcTests.java b/samples/javaconfig/rest/src/integration-test/java/rest/RestMockMvcTests.java index c5eda608..09a8ae2f 100644 --- a/samples/javaconfig/rest/src/integration-test/java/rest/RestMockMvcTests.java +++ b/samples/javaconfig/rest/src/integration-test/java/rest/RestMockMvcTests.java @@ -16,9 +16,7 @@ package rest; -import org.junit.AfterClass; import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.testcontainers.containers.GenericContainer; @@ -58,19 +56,6 @@ public class RestMockMvcTests { private static final String DOCKER_IMAGE = "redis:4.0.9"; - private static GenericContainer container = new GenericContainer(DOCKER_IMAGE) - .withExposedPorts(6379); - - @BeforeClass - public static void setUpClass() { - container.start(); - } - - @AfterClass - public static void tearDownClass() { - container.stop(); - } - @Autowired private SessionRepositoryFilter sessionRepositoryFilter; @@ -107,10 +92,18 @@ public class RestMockMvcTests { @EnableRedisHttpSession static class Config { + @Bean + public GenericContainer redisContainer() { + GenericContainer redisContainer = new GenericContainer(DOCKER_IMAGE) + .withExposedPorts(6379); + redisContainer.start(); + return redisContainer; + } + @Bean public LettuceConnectionFactory redisConnectionFactory() { - return new LettuceConnectionFactory(container.getContainerIpAddress(), - container.getFirstMappedPort()); + return new LettuceConnectionFactory(redisContainer().getContainerIpAddress(), + redisContainer().getFirstMappedPort()); } @Bean diff --git a/samples/javaconfig/rest/src/main/java/sample/EmbeddedRedisConfig.java b/samples/javaconfig/rest/src/main/java/sample/EmbeddedRedisConfig.java index 7aed044a..57563183 100644 --- a/samples/javaconfig/rest/src/main/java/sample/EmbeddedRedisConfig.java +++ b/samples/javaconfig/rest/src/main/java/sample/EmbeddedRedisConfig.java @@ -28,11 +28,14 @@ import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactor @Profile("embedded-redis") public class EmbeddedRedisConfig { - private static final String REDIS_DOCKER_IMAGE = "redis:4.0.9"; + private static final String DOCKER_IMAGE = "redis:4.0.9"; - @Bean(initMethod = "start") + @Bean public GenericContainer redisContainer() { - return new GenericContainer(REDIS_DOCKER_IMAGE).withExposedPorts(6379); + GenericContainer redisContainer = new GenericContainer(DOCKER_IMAGE) + .withExposedPorts(6379); + redisContainer.start(); + return redisContainer; } @Bean diff --git a/samples/javaconfig/security/src/main/java/sample/EmbeddedRedisConfig.java b/samples/javaconfig/security/src/main/java/sample/EmbeddedRedisConfig.java index 7aed044a..57563183 100644 --- a/samples/javaconfig/security/src/main/java/sample/EmbeddedRedisConfig.java +++ b/samples/javaconfig/security/src/main/java/sample/EmbeddedRedisConfig.java @@ -28,11 +28,14 @@ import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactor @Profile("embedded-redis") public class EmbeddedRedisConfig { - private static final String REDIS_DOCKER_IMAGE = "redis:4.0.9"; + private static final String DOCKER_IMAGE = "redis:4.0.9"; - @Bean(initMethod = "start") + @Bean public GenericContainer redisContainer() { - return new GenericContainer(REDIS_DOCKER_IMAGE).withExposedPorts(6379); + GenericContainer redisContainer = new GenericContainer(DOCKER_IMAGE) + .withExposedPorts(6379); + redisContainer.start(); + return redisContainer; } @Bean diff --git a/samples/xml/redis/src/main/java/sample/EmbeddedRedisConfig.java b/samples/xml/redis/src/main/java/sample/EmbeddedRedisConfig.java index 7aed044a..57563183 100644 --- a/samples/xml/redis/src/main/java/sample/EmbeddedRedisConfig.java +++ b/samples/xml/redis/src/main/java/sample/EmbeddedRedisConfig.java @@ -28,11 +28,14 @@ import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactor @Profile("embedded-redis") public class EmbeddedRedisConfig { - private static final String REDIS_DOCKER_IMAGE = "redis:4.0.9"; + private static final String DOCKER_IMAGE = "redis:4.0.9"; - @Bean(initMethod = "start") + @Bean public GenericContainer redisContainer() { - return new GenericContainer(REDIS_DOCKER_IMAGE).withExposedPorts(6379); + GenericContainer redisContainer = new GenericContainer(DOCKER_IMAGE) + .withExposedPorts(6379); + redisContainer.start(); + return redisContainer; } @Bean diff --git a/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/AbstractRedisITests.java b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/AbstractRedisITests.java index 1c42201e..52b0dccb 100644 --- a/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/AbstractRedisITests.java +++ b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/AbstractRedisITests.java @@ -16,8 +16,6 @@ package org.springframework.session.data.redis; -import org.junit.AfterClass; -import org.junit.BeforeClass; import org.testcontainers.containers.GenericContainer; import org.springframework.context.annotation.Bean; @@ -33,25 +31,21 @@ public abstract class AbstractRedisITests { private static final String DOCKER_IMAGE = "redis:4.0.9"; - private static GenericContainer container = new GenericContainer(DOCKER_IMAGE) - .withExposedPorts(6379); - - @BeforeClass - public static void setUpClass() { - container.start(); - } - - @AfterClass - public static void tearDownClass() { - container.stop(); - } - protected static class BaseConfig { + @Bean + public GenericContainer redisContainer() { + GenericContainer redisContainer = new GenericContainer(DOCKER_IMAGE) + .withExposedPorts(6379); + redisContainer.start(); + return redisContainer; + } + @Bean public LettuceConnectionFactory redisConnectionFactory() { RedisStandaloneConfiguration configuration = new RedisStandaloneConfiguration( - container.getContainerIpAddress(), container.getFirstMappedPort()); + redisContainer().getContainerIpAddress(), + redisContainer().getFirstMappedPort()); return new LettuceConnectionFactory(configuration); }