From 6649bbd2ec6f7fcac22bdd8ca364d7c35ce71939 Mon Sep 17 00:00:00 2001 From: Kunwar Date: Sun, 12 Jul 2020 01:34:03 +0530 Subject: [PATCH] Spring Batch Application --- .../config/SpringBatchConfig.java | 25 +++++++++---------- .../springbootbatch/model/Employee.java | 13 ---------- .../step/EmployeeItemProcessor.java | 22 ---------------- .../step/StockInfoProcessor.java | 24 ++++++++++++++++++ .../src/main/resources/csv/employees.csv | 4 --- .../src/main/resources/csv/stockinfo.csv | 3 +++ 6 files changed, 39 insertions(+), 52 deletions(-) delete mode 100644 Spring-Boot-Batch/springbootbatch/src/main/java/com/javadevjournal/springbootbatch/model/Employee.java delete mode 100644 Spring-Boot-Batch/springbootbatch/src/main/java/com/javadevjournal/springbootbatch/step/EmployeeItemProcessor.java create mode 100644 Spring-Boot-Batch/springbootbatch/src/main/java/com/javadevjournal/springbootbatch/step/StockInfoProcessor.java delete mode 100644 Spring-Boot-Batch/springbootbatch/src/main/resources/csv/employees.csv diff --git a/Spring-Boot-Batch/springbootbatch/src/main/java/com/javadevjournal/springbootbatch/config/SpringBatchConfig.java b/Spring-Boot-Batch/springbootbatch/src/main/java/com/javadevjournal/springbootbatch/config/SpringBatchConfig.java index 2385bfc..b1f36fe 100644 --- a/Spring-Boot-Batch/springbootbatch/src/main/java/com/javadevjournal/springbootbatch/config/SpringBatchConfig.java +++ b/Spring-Boot-Batch/springbootbatch/src/main/java/com/javadevjournal/springbootbatch/config/SpringBatchConfig.java @@ -1,9 +1,10 @@ package com.javadevjournal.springbootbatch.config; +import com.javadevjournal.springbootbatch.listener.SpringBatchJobCompletionListener; import com.javadevjournal.springbootbatch.listener.SpringBatchJobExecutionListener; import com.javadevjournal.springbootbatch.listener.SpringBatchStepListener; -import com.javadevjournal.springbootbatch.model.Employee; -import com.javadevjournal.springbootbatch.step.EmployeeItemProcessor; +import com.javadevjournal.springbootbatch.model.StockInfo; +import com.javadevjournal.springbootbatch.step.StockInfoProcessor; import org.springframework.batch.core.Job; import org.springframework.batch.core.JobExecutionListener; import org.springframework.batch.core.Step; @@ -18,11 +19,8 @@ import org.springframework.batch.item.file.transform.PassThroughLineAggregator; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; - -import com.javadevjournal.springbootbatch.listener.SpringBatchJobCompletionListener; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.FileSystemResource; -import org.springframework.scheduling.annotation.Scheduled; /** * @Author - Kunwar Vikas @@ -50,9 +48,9 @@ public class SpringBatchConfig { public Step StockPricesInfoStep() { return stepBuilderFactory.get("step1") .listener(new SpringBatchStepListener()) - .chunk(10) + .chunk(10) .reader(reader()) - .processor(processor()) + .processor(stockInfoProcessor()) .writer(writer()) .faultTolerant() .retryLimit(3) @@ -61,19 +59,19 @@ public class SpringBatchConfig { } @Bean - public FlatFileItemReader reader() { - return new FlatFileItemReaderBuilder() + public FlatFileItemReader reader() { + return new FlatFileItemReaderBuilder() .name("stockInfoItemReader") .resource(new ClassPathResource("csv/stockinfo.csv")) .delimited() .names(new String[] {"stockId", "stockName","stockPrice","yearlyHigh","yearlyLow","address","sector","market"}) - .targetType(Employee.class) + .targetType(StockInfo.class) .build(); } @Bean - public EmployeeItemProcessor processor() { - return new EmployeeItemProcessor(); + public StockInfoProcessor stockInfoProcessor(){ + return new StockInfoProcessor(); } @Bean @@ -82,7 +80,8 @@ public class SpringBatchConfig { .name("stockInfoItemWriter") .resource(new FileSystemResource( "target/output.txt")) - .lineAggregator(new PassThroughLineAggregator<>()).build(); + .lineAggregator(new PassThroughLineAggregator<>()) + .build(); } @Bean diff --git a/Spring-Boot-Batch/springbootbatch/src/main/java/com/javadevjournal/springbootbatch/model/Employee.java b/Spring-Boot-Batch/springbootbatch/src/main/java/com/javadevjournal/springbootbatch/model/Employee.java deleted file mode 100644 index 7cefbeb..0000000 --- a/Spring-Boot-Batch/springbootbatch/src/main/java/com/javadevjournal/springbootbatch/model/Employee.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.javadevjournal.springbootbatch.model; - -import lombok.Data; - -@Data -public class Employee { - private String firstName; - private String lastName; - private String department; - - public Employee() { - } -} diff --git a/Spring-Boot-Batch/springbootbatch/src/main/java/com/javadevjournal/springbootbatch/step/EmployeeItemProcessor.java b/Spring-Boot-Batch/springbootbatch/src/main/java/com/javadevjournal/springbootbatch/step/EmployeeItemProcessor.java deleted file mode 100644 index d3f26f3..0000000 --- a/Spring-Boot-Batch/springbootbatch/src/main/java/com/javadevjournal/springbootbatch/step/EmployeeItemProcessor.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.javadevjournal.springbootbatch.step; - -import com.javadevjournal.springbootbatch.model.Employee; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.batch.item.ItemProcessor; - -public class EmployeeItemProcessor - implements ItemProcessor { - - private static final Logger LOGGER = - LoggerFactory.getLogger(EmployeeItemProcessor.class); - - @Override - public String process(Employee employee) throws Exception { - String greeting = "Hello " + employee.getFirstName() + " " - + employee.getLastName() + " from " + employee.getDepartment()+"!"; - - LOGGER.info("converting '{}' into '{}'", employee, greeting); - return greeting; - } -} diff --git a/Spring-Boot-Batch/springbootbatch/src/main/java/com/javadevjournal/springbootbatch/step/StockInfoProcessor.java b/Spring-Boot-Batch/springbootbatch/src/main/java/com/javadevjournal/springbootbatch/step/StockInfoProcessor.java new file mode 100644 index 0000000..3a2fcf6 --- /dev/null +++ b/Spring-Boot-Batch/springbootbatch/src/main/java/com/javadevjournal/springbootbatch/step/StockInfoProcessor.java @@ -0,0 +1,24 @@ +package com.javadevjournal.springbootbatch.step; + +import com.javadevjournal.springbootbatch.model.StockInfo; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.batch.item.ItemProcessor; + +import java.util.Date; + +public class StockInfoProcessor + implements ItemProcessor { + + private static final Logger LOGGER = + LoggerFactory.getLogger(StockInfoProcessor.class); + + @Override + public String process(StockInfo stockInfo) throws Exception { + System.out.println("Hello"); + String message = stockInfo.getStockName() + " is trading at " + + stockInfo.getStockPrice() + " on " + stockInfo.getMarket()+" at "+ new Date().toString()+ "!"; + LOGGER.info("printing '{}' to output file", message); + return message; + } +} diff --git a/Spring-Boot-Batch/springbootbatch/src/main/resources/csv/employees.csv b/Spring-Boot-Batch/springbootbatch/src/main/resources/csv/employees.csv deleted file mode 100644 index 85c4482..0000000 --- a/Spring-Boot-Batch/springbootbatch/src/main/resources/csv/employees.csv +++ /dev/null @@ -1,4 +0,0 @@ -Jan, Sri, FCI -Chan, Sri, Powergrid -Vij, Ver, CDA -Sav, Sri, NTPC \ No newline at end of file diff --git a/Spring-Boot-Batch/springbootbatch/src/main/resources/csv/stockinfo.csv b/Spring-Boot-Batch/springbootbatch/src/main/resources/csv/stockinfo.csv index e69de29..e00fb5c 100644 --- a/Spring-Boot-Batch/springbootbatch/src/main/resources/csv/stockinfo.csv +++ b/Spring-Boot-Batch/springbootbatch/src/main/resources/csv/stockinfo.csv @@ -0,0 +1,3 @@ +1, Infy, 780.98, 1530.11, 453.44, Mumbai, Banking, BSE +1, TCS, 780.98, 1530.11, 453.44, Mumbai, Banking, BSE +1, Wipro, 780.98, 1530.11, 453.44, Mumbai, Banking, BSE \ No newline at end of file