From 76fce1d51e752920d48e02a1fd0930c3d3a53527 Mon Sep 17 00:00:00 2001 From: Corneil du Plessis Date: Thu, 14 Dec 2023 15:23:30 +0200 Subject: [PATCH] Added generation of random execution context values. --- timestamp-batch-2.0.x/pom.xml | 3 +- .../TimestampBatchTaskConfiguration.java | 32 +++++++++++-------- timestamp-batch-3.0.x/pom.xml | 2 +- .../TimestampBatchTaskConfiguration.java | 11 ++++--- 4 files changed, 28 insertions(+), 20 deletions(-) diff --git a/timestamp-batch-2.0.x/pom.xml b/timestamp-batch-2.0.x/pom.xml index 46bcf1c..7c5ef92 100644 --- a/timestamp-batch-2.0.x/pom.xml +++ b/timestamp-batch-2.0.x/pom.xml @@ -5,7 +5,7 @@ org.springframework.boot spring-boot-starter-parent - 2.7.16 + 2.7.18 io.spring @@ -38,6 +38,7 @@ org.mariadb.jdbc mariadb-java-client [3.1.2,) + runtime com.h2database diff --git a/timestamp-batch-2.0.x/src/main/java/io/spring/configuration/TimestampBatchTaskConfiguration.java b/timestamp-batch-2.0.x/src/main/java/io/spring/configuration/TimestampBatchTaskConfiguration.java index be1b5e2..e7975c8 100644 --- a/timestamp-batch-2.0.x/src/main/java/io/spring/configuration/TimestampBatchTaskConfiguration.java +++ b/timestamp-batch-2.0.x/src/main/java/io/spring/configuration/TimestampBatchTaskConfiguration.java @@ -16,15 +16,8 @@ package io.spring.configuration; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.Date; - -import javax.sql.DataSource; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.batch.core.Job; import org.springframework.batch.core.configuration.annotation.BatchConfigurer; import org.springframework.batch.core.configuration.annotation.DefaultBatchConfigurer; @@ -39,15 +32,18 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Primary; import org.springframework.jdbc.datasource.DataSourceTransactionManager; -import org.springframework.transaction.PlatformTransactionManager; + +import javax.sql.DataSource; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Date; @Configuration @EnableConfigurationProperties({ TimestampBatchTaskProperties.class }) public class TimestampBatchTaskConfiguration { - private static final Log logger = LogFactory.getLog(TimestampBatchTaskProperties.class); + private static final Logger logger = LoggerFactory.getLogger(TimestampBatchTaskProperties.class); @Autowired public JobBuilderFactory jobBuilderFactory; @@ -96,7 +92,11 @@ public class TimestampBatchTaskConfiguration { .start(stepBuilderFactory.get("job1step1") .tasklet((contribution, chunkContext) -> { DateFormat dateFormat = new SimpleDateFormat(config.getFormat()); - logger.info(String.format("Job1 was run with date %s", dateFormat.format(new Date()))); + contribution.getStepExecution().getExecutionContext().put("ctx1", "exec1"); + contribution.getStepExecution().getJobExecution().getExecutionContext().put("job-ctx1", "exec-job1"); + logger.info("jobstep1:{}", contribution.getStepExecution().getExecutionContext()); + logger.info("job1:{}", contribution.getStepExecution().getJobExecution().getExecutionContext()); + logger.info("Job1 was run with date {}", dateFormat.format(new Date())); return RepeatStatus.FINISHED; }) .build()) @@ -108,8 +108,12 @@ public class TimestampBatchTaskConfiguration { return jobBuilderFactory.get("job2") .start(stepBuilderFactory.get("job2step1") .tasklet((contribution, chunkContext) -> { + contribution.getStepExecution().getExecutionContext().put("ctx2", "exec2"); + contribution.getStepExecution().getJobExecution().getExecutionContext().put("job-ctx2", "exec-job2"); + logger.info("jobstep1:{}", contribution.getStepExecution().getExecutionContext()); + logger.info("job2:{}", contribution.getStepExecution().getJobExecution().getExecutionContext()); DateFormat dateFormat = new SimpleDateFormat(config.getFormat()); - logger.info(String.format("Job2 was run with date %s", dateFormat.format(new Date()))); + logger.info("Job2 was run with date {}", dateFormat.format(new Date())); return RepeatStatus.FINISHED; }) .build()) diff --git a/timestamp-batch-3.0.x/pom.xml b/timestamp-batch-3.0.x/pom.xml index 1af48d2..9e7612c 100644 --- a/timestamp-batch-3.0.x/pom.xml +++ b/timestamp-batch-3.0.x/pom.xml @@ -5,7 +5,7 @@ org.springframework.boot spring-boot-starter-parent - 3.1.4 + 3.1.6 io.spring diff --git a/timestamp-batch-3.0.x/src/main/java/io/spring/configuration/TimestampBatchTaskConfiguration.java b/timestamp-batch-3.0.x/src/main/java/io/spring/configuration/TimestampBatchTaskConfiguration.java index b2cebd7..11c60ad 100644 --- a/timestamp-batch-3.0.x/src/main/java/io/spring/configuration/TimestampBatchTaskConfiguration.java +++ b/timestamp-batch-3.0.x/src/main/java/io/spring/configuration/TimestampBatchTaskConfiguration.java @@ -16,8 +16,8 @@ package io.spring.configuration; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.batch.core.Job; import org.springframework.batch.core.Step; import org.springframework.batch.core.configuration.support.DefaultBatchConfiguration; @@ -28,7 +28,6 @@ import org.springframework.batch.core.step.tasklet.Tasklet; import org.springframework.batch.repeat.RepeatStatus; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; @@ -46,7 +45,7 @@ import java.util.Date; @EnableConfigurationProperties({ TimestampBatchTaskProperties.class }) public class TimestampBatchTaskConfiguration extends DefaultBatchConfiguration { - private static final Log logger = LogFactory.getLog(TimestampBatchTaskProperties.class); + private static final Logger logger = LoggerFactory.getLogger(TimestampBatchTaskProperties.class); @Value("${spring.batch.jdbc.table-prefix:BATCH_}") @@ -80,6 +79,10 @@ public class TimestampBatchTaskConfiguration extends DefaultBatchConfiguration { private Tasklet getTasklet(String format) { return (contribution, chunkContext) -> { DateFormat dateFormat = new SimpleDateFormat(config.getFormat()); + contribution.getStepExecution().getExecutionContext().put("ctx1", "exec1"); + contribution.getStepExecution().getJobExecution().getExecutionContext().put("job-ctx1", "exec-job1"); + logger.info("{}:{}", contribution.getStepExecution().getStepName(), contribution.getStepExecution().getExecutionContext()); + logger.info("{}:{}", contribution.getStepExecution().getJobExecution().getJobInstance().getJobName(), contribution.getStepExecution().getJobExecution().getExecutionContext()); logger.info(String.format(format, dateFormat.format(new Date()))); return RepeatStatus.FINISHED; };