diff --git a/batch-boot-jpa-sample/docker/docker-compose.yml b/batch-boot-jpa-sample/docker/docker-compose.yml index d6c33d152..807d34441 100644 --- a/batch-boot-jpa-sample/docker/docker-compose.yml +++ b/batch-boot-jpa-sample/docker/docker-compose.yml @@ -9,6 +9,11 @@ services: - POSTGRES_USER=appuser - POSTGRES_PASSWORD=secret - POSTGRES_DB=appdb + healthcheck: + test: ["CMD-SHELL", "pg_isready -U appuser -d appdb"] + interval: 10s + timeout: 5s + retries: 5 ports: - "5432:5432" networks: diff --git a/batch-boot-jpa-sample/pom.xml b/batch-boot-jpa-sample/pom.xml index c6e79d337..37babaf43 100644 --- a/batch-boot-jpa-sample/pom.xml +++ b/batch-boot-jpa-sample/pom.xml @@ -243,7 +243,7 @@ - 1.24.0 + 1.25.0 diff --git a/batch-boot-jpa-sample/src/main/java/com/example/bootbatchjpa/Application.java b/batch-boot-jpa-sample/src/main/java/com/example/bootbatchjpa/BatchApplication.java similarity index 82% rename from batch-boot-jpa-sample/src/main/java/com/example/bootbatchjpa/Application.java rename to batch-boot-jpa-sample/src/main/java/com/example/bootbatchjpa/BatchApplication.java index cacb8a503..56d5ee4e3 100644 --- a/batch-boot-jpa-sample/src/main/java/com/example/bootbatchjpa/Application.java +++ b/batch-boot-jpa-sample/src/main/java/com/example/bootbatchjpa/BatchApplication.java @@ -7,9 +7,9 @@ @SpringBootApplication @EnableConfigurationProperties({ApplicationProperties.class}) -public class Application { +public class BatchApplication { public static void main(String[] args) { - SpringApplication.run(Application.class, args); + SpringApplication.run(BatchApplication.class, args); } } diff --git a/batch-boot-jpa-sample/src/main/java/com/example/bootbatchjpa/config/BatchConfig.java b/batch-boot-jpa-sample/src/main/java/com/example/bootbatchjpa/config/BatchConfig.java index a3b876b84..8d149949b 100644 --- a/batch-boot-jpa-sample/src/main/java/com/example/bootbatchjpa/config/BatchConfig.java +++ b/batch-boot-jpa-sample/src/main/java/com/example/bootbatchjpa/config/BatchConfig.java @@ -9,7 +9,12 @@ import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.batch.core.*; +import org.springframework.batch.core.BatchStatus; +import org.springframework.batch.core.Job; +import org.springframework.batch.core.JobExecution; +import org.springframework.batch.core.JobExecutionListener; +import org.springframework.batch.core.JobParameters; +import org.springframework.batch.core.Step; import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing; import org.springframework.batch.core.configuration.annotation.StepScope; import org.springframework.batch.core.job.builder.JobBuilder; @@ -60,7 +65,6 @@ Job allCustomersJob( .start(step) .incrementer(new RunIdIncrementer()) .listener(this) - .start(step) .build(); } diff --git a/batch-boot-jpa-sample/src/main/java/com/example/bootbatchjpa/config/Initializer.java b/batch-boot-jpa-sample/src/main/java/com/example/bootbatchjpa/config/Initializer.java index 12cd9e128..c7a9ec70d 100644 --- a/batch-boot-jpa-sample/src/main/java/com/example/bootbatchjpa/config/Initializer.java +++ b/batch-boot-jpa-sample/src/main/java/com/example/bootbatchjpa/config/Initializer.java @@ -27,11 +27,12 @@ public void run(String... args) { List customerList = Instancio.ofList(Customer.class) .size(1000) + .ignore(field(Customer.class, "id")) .generate( field(Customer.class, "gender"), gen -> gen.oneOf("male", "female")) .create(); log.info("Saving Customers of size :{}", customerList.size()); - customerList = customerRepository.saveAllAndFlush(customerList); + customerList = customerRepository.saveAll(customerList); log.info("Inserted customers of size :{}", customerList.size()); } } diff --git a/batch-boot-jpa-sample/src/test/java/com/example/bootbatchjpa/TestApplication.java b/batch-boot-jpa-sample/src/test/java/com/example/bootbatchjpa/TestApplication.java deleted file mode 100644 index 014923f7c..000000000 --- a/batch-boot-jpa-sample/src/test/java/com/example/bootbatchjpa/TestApplication.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.example.bootbatchjpa; - -import com.example.bootbatchjpa.common.TestContainersConfig; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.test.context.TestConfiguration; -import org.springframework.boot.testcontainers.context.ImportTestcontainers; - -@TestConfiguration(proxyBeanMethods = false) -@ImportTestcontainers(TestContainersConfig.class) -public class TestApplication { - - public static void main(String[] args) { - SpringApplication.from(Application::main).with(TestApplication.class).run(args); - } -} diff --git a/batch-boot-jpa-sample/src/test/java/com/example/bootbatchjpa/TestBatchApplication.java b/batch-boot-jpa-sample/src/test/java/com/example/bootbatchjpa/TestBatchApplication.java new file mode 100644 index 000000000..25f98a5d2 --- /dev/null +++ b/batch-boot-jpa-sample/src/test/java/com/example/bootbatchjpa/TestBatchApplication.java @@ -0,0 +1,11 @@ +package com.example.bootbatchjpa; + +import com.example.bootbatchjpa.common.ContainersConfig; +import org.springframework.boot.SpringApplication; + +public class TestBatchApplication { + + public static void main(String[] args) { + SpringApplication.from(BatchApplication::main).with(ContainersConfig.class).run(args); + } +} diff --git a/batch-boot-jpa-sample/src/test/java/com/example/bootbatchjpa/common/AbstractIntegrationTest.java b/batch-boot-jpa-sample/src/test/java/com/example/bootbatchjpa/common/AbstractIntegrationTest.java index daa6a1746..e6e8eafd6 100644 --- a/batch-boot-jpa-sample/src/test/java/com/example/bootbatchjpa/common/AbstractIntegrationTest.java +++ b/batch-boot-jpa-sample/src/test/java/com/example/bootbatchjpa/common/AbstractIntegrationTest.java @@ -3,7 +3,6 @@ import static com.example.bootbatchjpa.utils.AppConstants.PROFILE_TEST; import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT; -import com.example.bootbatchjpa.TestApplication; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; @@ -14,7 +13,7 @@ @ActiveProfiles({PROFILE_TEST}) @SpringBootTest( webEnvironment = RANDOM_PORT, - classes = {TestApplication.class}) + classes = {ContainersConfig.class}) @AutoConfigureMockMvc public abstract class AbstractIntegrationTest { diff --git a/batch-boot-jpa-sample/src/test/java/com/example/bootbatchjpa/common/ContainersConfig.java b/batch-boot-jpa-sample/src/test/java/com/example/bootbatchjpa/common/ContainersConfig.java new file mode 100644 index 000000000..9b6d97457 --- /dev/null +++ b/batch-boot-jpa-sample/src/test/java/com/example/bootbatchjpa/common/ContainersConfig.java @@ -0,0 +1,17 @@ +package com.example.bootbatchjpa.common; + +import org.springframework.boot.test.context.TestConfiguration; +import org.springframework.boot.testcontainers.service.connection.ServiceConnection; +import org.springframework.context.annotation.Bean; +import org.testcontainers.containers.PostgreSQLContainer; +import org.testcontainers.utility.DockerImageName; + +@TestConfiguration(proxyBeanMethods = false) +public class ContainersConfig { + + @Bean + @ServiceConnection + PostgreSQLContainer postgreSQLContainer() { + return new PostgreSQLContainer<>(DockerImageName.parse("postgres").withTag("17.2-alpine")); + } +} diff --git a/batch-boot-jpa-sample/src/test/java/com/example/bootbatchjpa/common/TestContainersConfig.java b/batch-boot-jpa-sample/src/test/java/com/example/bootbatchjpa/common/TestContainersConfig.java deleted file mode 100644 index a372135ee..000000000 --- a/batch-boot-jpa-sample/src/test/java/com/example/bootbatchjpa/common/TestContainersConfig.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.example.bootbatchjpa.common; - -import org.springframework.boot.testcontainers.service.connection.ServiceConnection; -import org.testcontainers.containers.PostgreSQLContainer; -import org.testcontainers.utility.DockerImageName; - -public interface TestContainersConfig { - - @ServiceConnection - PostgreSQLContainer postgreSQLContainer = - new PostgreSQLContainer<>(DockerImageName.parse("postgres").withTag("17.2-alpine")); -} diff --git a/batch-boot-jpa-sample/src/test/java/com/example/bootbatchjpa/repository/SchemaValidationTest.java b/batch-boot-jpa-sample/src/test/java/com/example/bootbatchjpa/repository/InnerSchemaValidationTest.java similarity index 79% rename from batch-boot-jpa-sample/src/test/java/com/example/bootbatchjpa/repository/SchemaValidationTest.java rename to batch-boot-jpa-sample/src/test/java/com/example/bootbatchjpa/repository/InnerSchemaValidationTest.java index cc9d24d8e..6edc759ad 100644 --- a/batch-boot-jpa-sample/src/test/java/com/example/bootbatchjpa/repository/SchemaValidationTest.java +++ b/batch-boot-jpa-sample/src/test/java/com/example/bootbatchjpa/repository/InnerSchemaValidationTest.java @@ -2,17 +2,17 @@ import static org.assertj.core.api.Assertions.assertThat; -import com.example.bootbatchjpa.common.TestContainersConfig; +import com.example.bootbatchjpa.common.ContainersConfig; import com.zaxxer.hikari.HikariDataSource; import javax.sql.DataSource; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; -import org.springframework.boot.testcontainers.context.ImportTestcontainers; +import org.springframework.context.annotation.Import; @DataJpaTest(properties = {"spring.jpa.hibernate.ddl-auto=validate"}) -@ImportTestcontainers(TestContainersConfig.class) +@Import(ContainersConfig.class) @AutoConfigureTestDatabase class SchemaValidationTest { diff --git a/batch-boot-jpa-sample/src/test/java/com/example/bootbatchjpa/web/controllers/CustomerControllerIT.java b/batch-boot-jpa-sample/src/test/java/com/example/bootbatchjpa/web/controllers/CustomerControllerIT.java index 981d3c3b7..e5a4df57d 100644 --- a/batch-boot-jpa-sample/src/test/java/com/example/bootbatchjpa/web/controllers/CustomerControllerIT.java +++ b/batch-boot-jpa-sample/src/test/java/com/example/bootbatchjpa/web/controllers/CustomerControllerIT.java @@ -39,7 +39,7 @@ void setUp() { field(Customer.class, "gender"), gen -> gen.oneOf("male", "female")) .create(); - customerList = customerRepository.saveAllAndFlush(customerList); + customerList = customerRepository.saveAll(customerList); } @Test diff --git a/httpClients/boot-http-proxy/src/test/java/com/example/rest/proxy/TestApplication.java b/httpClients/boot-http-proxy/src/test/java/com/example/rest/proxy/TestApplication.java index 75164e1a1..052dfe602 100644 --- a/httpClients/boot-http-proxy/src/test/java/com/example/rest/proxy/TestApplication.java +++ b/httpClients/boot-http-proxy/src/test/java/com/example/rest/proxy/TestApplication.java @@ -6,6 +6,6 @@ class TestApplication { public static void main(String[] args) { - SpringApplication.from(Application::main).with(ContainersConfig.class).run(args); + SpringApplication.from(BatchApplication::main).with(ContainersConfig.class).run(args); } } diff --git a/httpClients/boot-rest-template/src/test/java/com/example/rest/template/TestApplication.java b/httpClients/boot-rest-template/src/test/java/com/example/rest/template/TestApplication.java index 5c25f9a20..5fde5e4f5 100644 --- a/httpClients/boot-rest-template/src/test/java/com/example/rest/template/TestApplication.java +++ b/httpClients/boot-rest-template/src/test/java/com/example/rest/template/TestApplication.java @@ -6,6 +6,6 @@ class TestApplication { public static void main(String[] args) { - SpringApplication.from(Application::main).with(ContainersConfig.class).run(args); + SpringApplication.from(BatchApplication::main).with(ContainersConfig.class).run(args); } }