Skip to content

Commit

Permalink
feat(common): activate reuse flag for testcontainers driven containers
Browse files Browse the repository at this point in the history
- remove use of @container annotation since it automatically stops containers after test
- must be manually configured locally to take effect: testcontainers/testcontainers-java#1781
  • Loading branch information
bobeal committed Jan 3, 2022
1 parent fc6e536 commit 4273a86
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 21 deletions.
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.jlleitschuh.gradle.ktlint.reporter.ReporterType

extra["springCloudVersion"] = "2020.0.4"
extra["testcontainersVersion"] = "1.16.0"
extra["testcontainersVersion"] = "1.16.2"

plugins {
java // why did I have to add that ?!
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,17 @@ import org.springframework.boot.autoconfigure.ImportAutoConfiguration
import org.springframework.test.context.DynamicPropertyRegistry
import org.springframework.test.context.DynamicPropertySource
import org.testcontainers.containers.Neo4jContainer
import org.testcontainers.junit.jupiter.Container
import org.testcontainers.junit.jupiter.Testcontainers

@Testcontainers
@ImportAutoConfiguration(MigrationsAutoConfiguration::class)
interface WithNeo4jContainer {

companion object {

@Container
val neo4jContainer = Neo4jContainer<Nothing>("neo4j:4.4").apply {
private val neo4jContainer = Neo4jContainer<Nothing>("neo4j:4.4").apply {
withNeo4jConfig("dbms.default_database", "stellio")
withEnv("NEO4JLABS_PLUGINS", "[\"apoc\"]")
withAdminPassword("neo4j_password")
withReuse(true)
}

@JvmStatic
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,8 @@ package com.egm.stellio.search.support
import org.springframework.test.context.DynamicPropertyRegistry
import org.springframework.test.context.DynamicPropertySource
import org.testcontainers.containers.PostgreSQLContainer
import org.testcontainers.junit.jupiter.Container
import org.testcontainers.junit.jupiter.Testcontainers
import org.testcontainers.utility.DockerImageName

@Testcontainers
interface WithTimescaleContainer {

companion object {
Expand All @@ -20,10 +17,10 @@ interface WithTimescaleContainer {
DockerImageName.parse("stellio/stellio-timescale-postgis:2.3.0-pg13")
.asCompatibleSubstituteFor("postgres")

@Container
val timescaleContainer = PostgreSQLContainer<Nothing>(timescaleImage).apply {
private val timescaleContainer = PostgreSQLContainer<Nothing>(timescaleImage).apply {
withEnv("POSTGRES_PASSWORD", "password")
withEnv("POSTGRES_MULTIPLE_DATABASES", "$DB_NAME,$DB_USER,$DB_PASSWORD")
withReuse(true)
}

@JvmStatic
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,17 @@ package com.egm.stellio.shared.support
import org.springframework.test.context.DynamicPropertyRegistry
import org.springframework.test.context.DynamicPropertySource
import org.testcontainers.containers.KafkaContainer
import org.testcontainers.junit.jupiter.Container
import org.testcontainers.junit.jupiter.Testcontainers
import org.testcontainers.utility.DockerImageName

@Testcontainers
interface WithKafkaContainer {

companion object {

private val kafkaImage: DockerImageName = DockerImageName.parse("confluentinc/cp-kafka:5.4.1")

@Container
val kafkaContainer = KafkaContainer(kafkaImage)
private val kafkaContainer = KafkaContainer(kafkaImage).apply {
withReuse(true)
}

@JvmStatic
@DynamicPropertySource
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,8 @@ package com.egm.stellio.subscription.support
import org.springframework.test.context.DynamicPropertyRegistry
import org.springframework.test.context.DynamicPropertySource
import org.testcontainers.containers.PostgreSQLContainer
import org.testcontainers.junit.jupiter.Container
import org.testcontainers.junit.jupiter.Testcontainers
import org.testcontainers.utility.DockerImageName

@Testcontainers
interface WithTimescaleContainer {

companion object {
Expand All @@ -20,10 +17,10 @@ interface WithTimescaleContainer {
DockerImageName.parse("stellio/stellio-timescale-postgis:2.3.0-pg13")
.asCompatibleSubstituteFor("postgres")

@Container
val timescaleContainer = PostgreSQLContainer<Nothing>(timescaleImage).apply {
private val timescaleContainer = PostgreSQLContainer<Nothing>(timescaleImage).apply {
withEnv("POSTGRES_PASSWORD", "password")
withEnv("POSTGRES_MULTIPLE_DATABASES", "$DB_NAME,$DB_USER,$DB_PASSWORD")
withReuse(true)
}

@JvmStatic
Expand Down

0 comments on commit 4273a86

Please sign in to comment.