From 84a14bcaeb9a2dad95794b418a80c91375d7399d Mon Sep 17 00:00:00 2001 From: Krzysztof Woyke Date: Sun, 20 Dec 2020 18:25:50 +0100 Subject: [PATCH] JAVA-3570: Update to Spring Batch 4.3 and update config accordingly in spring-batch --- spring-batch/pom.xml | 4 +-- spring-batch/repository.sqlite | Bin 73728 -> 73728 bytes .../batchscheduler/SpringBatchScheduler.java | 32 ++++++++++++------ .../taskletsvschunks/config/ChunksConfig.java | 18 ++++++++-- .../config/TaskletsConfig.java | 18 ++++++++-- 5 files changed, 54 insertions(+), 18 deletions(-) diff --git a/spring-batch/pom.xml b/spring-batch/pom.xml index 9edf8ad3be..75ec0d4877 100644 --- a/spring-batch/pom.xml +++ b/spring-batch/pom.xml @@ -95,8 +95,8 @@ - 5.2.0.RELEASE - 4.2.0.RELEASE + 5.3.0 + 4.3.0 3.15.1 4.1 2.3.1 diff --git a/spring-batch/repository.sqlite b/spring-batch/repository.sqlite index 2b549352ec8073708bd085fd414ed93d189c7511..a2b87ffa00f315b4084437ce2f5f639d47469027 100644 GIT binary patch delta 4429 zcmb`JO>7&-6~}kQ-Q}(*ab;Ms<0dMpb?eG7&2UNX2h}f;6cb4yB|)Mhsj(^zxl57K zlB<%G4Z>#Es&nYcsKXTXB}ft2$e}KfL0{H$VO7@m;)0T)avA;tBlrl_#V4?Kjr0u}2tZ1Y_T4f61O< zN1UHIZ#l0y%g)H|p@9*n;bTaQKAtFp(x#@COH+EvCn=(j&xF)eS{6k`$fN|HmJ1PKoWxiNdT&3WOy;9!euoe@nD2%no0pl6a+CS2Gx+H_=6cKm67imMe<@}5D278)aW3M{nkdGhoA&w{T1JGf-ge!sX8xB1}98Tc(XM@nR*w~wv z-Ox~bGw4Q!+&%qNe1Kver)&aV`@lX(Ii4hK-#4eViv&SAjuN&2Ui+8rFvUD!vwas$ zj~-)=^w@Yj5>7@ZR;OkntCQ37$?$YE#=JR33_zl{F!t~4TkMN$o}Gq7`n7)aq-?F3K{X?loBat9yBfv`!#fC%io6_~HMrk&iF$ z=2w3;@C^s~D(3uC|CPQUIga=Km^n{hwcoZMqt1}8!dtvRp4gEbB=)nPVCT89v<6Bg zZj{>qXMuOSoYTA$pp;F3EzVQ>^G_cOr1iWv1yoJhF06Z-QaW3zYs6ac#&ZR=v{=lQ z)go7OUWlLA8SRBfoZH6{;z5p>E$V5tRMMNLNU#EY{TG>2fnr@G0!zjvd-sbh)CMk0 zo!VK072{I0i#eCl_08Jp>d_tnVQ#v@3i42{Cw3yRr0h4zI8N-YToCcyGZ(Jg92kb- z>|Kn#%ii7XyZA9XO!r_tOb^x%HyFAPV?Sf>u>WQM$^L=8%9hz#x({mT-*)420-}F; z$h_#~Fq)IyF0CPvaHG$+i7i|#f=WDBDs!Ia+tm1AN#u1!H8fLmoQErbyb1-J0IGXJ zSJvSP9!}9y+~|3(qJknf%7-Mshs*1Qau(XnM3Xa-*c>tfm6=SUzU*&WJO{LG7>@UO zIJF3@WXrj{>P=^hdO`P2mh@QB05C!{#;r8sEUM}zj6T0GJsw_e246PM_lHCer>S78 z{Vc$; z=ELods*}_+pjdIw>Sgp+??EL5TBx3mMdlX5bJlg*Ss9310~TcWKvw%lg-&mg$^fnO zRj7>puo5Mc)x)ETsO56Sy_hShoumvtB+6Y;@lwO&(MW}p3v(T^GLRD5VLhU(1pmQM z8EU7j7D1(;y65zJS-}U`&+a!%E>PF?Y#kkFFVd~7xuOWdbiNyc7cq3*=?56myY z>euBN8V4v@e&Jx+x<^{^?Q~AlRQGHae&n`Lg*Q4%e5hH#p~4ca3f#~a4;9reFo^ge zDpqo0VXi4J1O0f^3pyWw;aa#J@ge%<>dH!$qX}&CLBFTQ7FXr$U5t7GV&@#alpY>*~sjQpH@ zoy?IO@i*cnB0K(=Cz#vLmTK~dJ+-1{VEZ>G~0ibUx|U{6`HBdayi z9H%T-8$noebL-g{_0?ev7>7b;OVj4qx>jeLrQc4F-EM|*Iq4?QIDEv)qT^yGhmXEw zBL?fBUn3~IcYq>3!YGP-pL~&ABELy|1f}r-VaQA$hQogb>4F4dqlyyTu$f~NjhmlX zM_3bc{Zkn>vu⪻Dcx{`y3i`q~%~u%yqkLw>%AWsL6QsU9`FSKQykLu{^AaxxOM( zmMikCQ#F%bdJ0)Ay=^&I6Lb9?ncU-PQglh*f}1B@H_$lzJkKxzYtY{#?KUqWm4p3B=f&U!8 zE`I|544|ki|7Kl%9|1NN2{vX^#>p4hMc7zmSeb3X%*hQbENm>|EX>A?lOHk*v$04s zGh2h0;*u<4Ow5LiPL3hY9`RoOPVt_8!6A-*&aNz*99RT^mgF+<-{IfRKZ!qgv*3bQ z{>{1Z(}BX=$_#ubcqj5iaVu|D6cFZSZZcun99v_?xH+a~DKj_!9|lJL9}N6I_%a=;`v r9bj=_V`Tls!1@d5k`Jugf3Y%haj`M7u`#f*0Y(0>Zf6r?{KW|X$tzkF diff --git a/spring-batch/src/main/java/com/baeldung/batchscheduler/SpringBatchScheduler.java b/spring-batch/src/main/java/com/baeldung/batchscheduler/SpringBatchScheduler.java index 4de3e0a4b6..cff4e96c89 100644 --- a/spring-batch/src/main/java/com/baeldung/batchscheduler/SpringBatchScheduler.java +++ b/spring-batch/src/main/java/com/baeldung/batchscheduler/SpringBatchScheduler.java @@ -1,12 +1,5 @@ package com.baeldung.batchscheduler; -import java.util.Date; -import java.util.IdentityHashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ScheduledFuture; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicInteger; import com.baeldung.batchscheduler.model.Book; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -20,7 +13,7 @@ import org.springframework.batch.core.configuration.annotation.StepBuilderFactor import org.springframework.batch.core.launch.JobLauncher; import org.springframework.batch.core.launch.support.SimpleJobLauncher; import org.springframework.batch.core.repository.JobRepository; -import org.springframework.batch.core.repository.support.MapJobRepositoryFactoryBean; +import org.springframework.batch.core.repository.support.JobRepositoryFactoryBean; import org.springframework.batch.item.ItemWriter; import org.springframework.batch.item.file.FlatFileItemReader; import org.springframework.batch.item.file.builder.FlatFileItemReaderBuilder; @@ -30,12 +23,22 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.ClassPathResource; +import org.springframework.jdbc.datasource.DriverManagerDataSource; import org.springframework.scheduling.TaskScheduler; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; import org.springframework.scheduling.support.ScheduledMethodRunnable; +import javax.sql.DataSource; +import java.util.Date; +import java.util.IdentityHashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; + @Configuration @EnableBatchProcessing @EnableScheduling @@ -122,9 +125,18 @@ public class SpringBatchScheduler { @Bean public JobRepository jobRepository() throws Exception { - MapJobRepositoryFactoryBean factory = new MapJobRepositoryFactoryBean(); + JobRepositoryFactoryBean factory = new JobRepositoryFactoryBean(); + factory.setDataSource(dataSource()); factory.setTransactionManager(new ResourcelessTransactionManager()); - return (JobRepository) factory.getObject(); + return factory.getObject(); + } + + @Bean + public DataSource dataSource() { + DriverManagerDataSource dataSource = new DriverManagerDataSource(); + dataSource.setDriverClassName("org.sqlite.JDBC"); + dataSource.setUrl("jdbc:sqlite:repository.sqlite"); + return dataSource; } @Bean diff --git a/spring-batch/src/main/java/com/baeldung/taskletsvschunks/config/ChunksConfig.java b/spring-batch/src/main/java/com/baeldung/taskletsvschunks/config/ChunksConfig.java index 57288fb312..c8b05848f9 100644 --- a/spring-batch/src/main/java/com/baeldung/taskletsvschunks/config/ChunksConfig.java +++ b/spring-batch/src/main/java/com/baeldung/taskletsvschunks/config/ChunksConfig.java @@ -12,7 +12,7 @@ import org.springframework.batch.core.configuration.annotation.StepBuilderFactor import org.springframework.batch.core.launch.JobLauncher; import org.springframework.batch.core.launch.support.SimpleJobLauncher; import org.springframework.batch.core.repository.JobRepository; -import org.springframework.batch.core.repository.support.MapJobRepositoryFactoryBean; +import org.springframework.batch.core.repository.support.JobRepositoryFactoryBean; import org.springframework.batch.item.ItemProcessor; import org.springframework.batch.item.ItemReader; import org.springframework.batch.item.ItemWriter; @@ -21,8 +21,11 @@ import org.springframework.batch.test.JobLauncherTestUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.jdbc.datasource.DriverManagerDataSource; import org.springframework.transaction.PlatformTransactionManager; +import javax.sql.DataSource; + @Configuration @EnableBatchProcessing public class ChunksConfig { @@ -38,9 +41,18 @@ public class ChunksConfig { @Bean public JobRepository jobRepository() throws Exception { - MapJobRepositoryFactoryBean factory = new MapJobRepositoryFactoryBean(); + JobRepositoryFactoryBean factory = new JobRepositoryFactoryBean(); + factory.setDataSource(dataSource()); factory.setTransactionManager(transactionManager()); - return (JobRepository) factory.getObject(); + return factory.getObject(); + } + + @Bean + public DataSource dataSource() { + DriverManagerDataSource dataSource = new DriverManagerDataSource(); + dataSource.setDriverClassName("org.sqlite.JDBC"); + dataSource.setUrl("jdbc:sqlite:repository.sqlite"); + return dataSource; } @Bean diff --git a/spring-batch/src/main/java/com/baeldung/taskletsvschunks/config/TaskletsConfig.java b/spring-batch/src/main/java/com/baeldung/taskletsvschunks/config/TaskletsConfig.java index e7157ac520..5f2f49928c 100644 --- a/spring-batch/src/main/java/com/baeldung/taskletsvschunks/config/TaskletsConfig.java +++ b/spring-batch/src/main/java/com/baeldung/taskletsvschunks/config/TaskletsConfig.java @@ -11,14 +11,17 @@ import org.springframework.batch.core.configuration.annotation.StepBuilderFactor import org.springframework.batch.core.launch.JobLauncher; import org.springframework.batch.core.launch.support.SimpleJobLauncher; import org.springframework.batch.core.repository.JobRepository; -import org.springframework.batch.core.repository.support.MapJobRepositoryFactoryBean; +import org.springframework.batch.core.repository.support.JobRepositoryFactoryBean; import org.springframework.batch.support.transaction.ResourcelessTransactionManager; import org.springframework.batch.test.JobLauncherTestUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.jdbc.datasource.DriverManagerDataSource; import org.springframework.transaction.PlatformTransactionManager; +import javax.sql.DataSource; + @Configuration @EnableBatchProcessing public class TaskletsConfig { @@ -34,9 +37,18 @@ public class TaskletsConfig { @Bean public JobRepository jobRepository() throws Exception { - MapJobRepositoryFactoryBean factory = new MapJobRepositoryFactoryBean(); + JobRepositoryFactoryBean factory = new JobRepositoryFactoryBean(); + factory.setDataSource(dataSource()); factory.setTransactionManager(transactionManager()); - return (JobRepository) factory.getObject(); + return factory.getObject(); + } + + @Bean + public DataSource dataSource() { + DriverManagerDataSource dataSource = new DriverManagerDataSource(); + dataSource.setDriverClassName("org.sqlite.JDBC"); + dataSource.setUrl("jdbc:sqlite:repository.sqlite"); + return dataSource; } @Bean