BATCH-1181: <step/> element always assumes the step is a TaskletStep
This commit is contained in:
@@ -15,7 +15,9 @@
|
||||
|
||||
<job id="loopJob" incrementer="jobParametersIncrementer">
|
||||
<step id="step1">
|
||||
<tasklet reader="reader" writer="writer" commit-interval="3"/>
|
||||
<tasklet>
|
||||
<chunk-tasklet reader="reader" writer="writer" commit-interval="3"/>
|
||||
</tasklet>
|
||||
</step>
|
||||
</job>
|
||||
|
||||
@@ -23,7 +25,7 @@
|
||||
<beans:bean id="writer" class="org.springframework.batch.sample.common.InfiniteLoopWriter" />
|
||||
|
||||
<beans:bean id="jobParametersIncrementer"
|
||||
class="org.springframework.batch.sample.common.InfiniteLoopIncrementer"/>
|
||||
class="org.springframework.batch.sample.common.InfiniteLoopIncrementer"/>
|
||||
|
||||
<aop:config>
|
||||
<aop:aspect ref="eventAdvice">
|
||||
|
||||
@@ -10,10 +10,15 @@
|
||||
|
||||
<job id="beanWrapperMapperJob">
|
||||
<step id="step1" next="step2">
|
||||
<tasklet reader="tradeFileItemReader" processor="processor" writer="tradeWriter" commit-interval="1"></tasklet>
|
||||
<tasklet>
|
||||
<chunk-tasklet reader="tradeFileItemReader" processor="processor" writer="tradeWriter"
|
||||
commit-interval="1"/>
|
||||
</tasklet>
|
||||
</step>
|
||||
<step id="step2">
|
||||
<tasklet reader="personFileItemReader" writer="personWriter" commit-interval="1"></tasklet>
|
||||
<tasklet>
|
||||
<chunk-tasklet reader="personFileItemReader" writer="personWriter" commit-interval="1"/>
|
||||
</tasklet>
|
||||
</step>
|
||||
</job>
|
||||
|
||||
|
||||
@@ -17,12 +17,15 @@
|
||||
|
||||
<job id="compositeItemWriterJob">
|
||||
<step id="step1">
|
||||
<tasklet reader="fileItemReader" processor="processor" writer="compositeWriter" commit-interval="1">
|
||||
<streams>
|
||||
<stream ref="fileItemReader"/>
|
||||
<stream ref="fileItemWriter1"/>
|
||||
<stream ref="fileItemWriter2"/>
|
||||
</streams>
|
||||
<tasklet>
|
||||
<chunk-tasklet reader="fileItemReader" processor="processor" writer="compositeWriter"
|
||||
commit-interval="1">
|
||||
<streams>
|
||||
<stream ref="fileItemReader"/>
|
||||
<stream ref="fileItemWriter1"/>
|
||||
<stream ref="fileItemWriter2"/>
|
||||
</streams>
|
||||
</chunk-tasklet>
|
||||
</tasklet>
|
||||
</step>
|
||||
</job>
|
||||
|
||||
@@ -9,13 +9,15 @@
|
||||
|
||||
<job id="customerFilterJob">
|
||||
<step id="uploadCustomer">
|
||||
<tasklet reader="customerFileUploadReader"
|
||||
processor="customerUpdateProcessor"
|
||||
writer="customerUpdateWriter"
|
||||
commit-interval="1"/>
|
||||
<listeners>
|
||||
<listener ref="customerTokenizer"/>
|
||||
</listeners>
|
||||
<tasklet>
|
||||
<chunk-tasklet reader="customerFileUploadReader"
|
||||
processor="customerUpdateProcessor"
|
||||
writer="customerUpdateWriter"
|
||||
commit-interval="1"/>
|
||||
<listeners>
|
||||
<listener ref="customerTokenizer"/>
|
||||
</listeners>
|
||||
</tasklet>
|
||||
</step>
|
||||
</job>
|
||||
|
||||
|
||||
@@ -19,7 +19,9 @@
|
||||
|
||||
<job id="delegateJob">
|
||||
<step id="step1">
|
||||
<tasklet reader="reader" writer="writer" commit-interval="1"/>
|
||||
<tasklet>
|
||||
<chunk-tasklet reader="reader" writer="writer" commit-interval="1"/>
|
||||
</tasklet>
|
||||
</step>
|
||||
</job>
|
||||
|
||||
|
||||
@@ -13,19 +13,25 @@
|
||||
|
||||
<job id="footballJob">
|
||||
<step id="playerload" next="gameLoad">
|
||||
<tasklet reader="playerFileItemReader" writer="playerWriter"
|
||||
commit-interval="${job.commit.interval}" />
|
||||
<tasklet>
|
||||
<chunk-tasklet reader="playerFileItemReader" writer="playerWriter"
|
||||
commit-interval="${job.commit.interval}" />
|
||||
</tasklet>
|
||||
</step>
|
||||
<step id="gameLoad" next="playerSummarization">
|
||||
<tasklet reader="gameFileItemReader" writer="gameWriter"
|
||||
commit-interval="${job.commit.interval}" />
|
||||
<tasklet>
|
||||
<chunk-tasklet reader="gameFileItemReader" writer="gameWriter"
|
||||
commit-interval="${job.commit.interval}" />
|
||||
</tasklet>
|
||||
</step>
|
||||
<step id="playerSummarization" parent="summarizationStep" />
|
||||
</job>
|
||||
|
||||
<step id="summarizationStep">
|
||||
<tasklet reader="playerSummarizationSource" writer="summaryWriter"
|
||||
commit-interval="${job.commit.interval}" />
|
||||
<tasklet>
|
||||
<chunk-tasklet reader="playerSummarizationSource" writer="summaryWriter"
|
||||
commit-interval="${job.commit.interval}" />
|
||||
</tasklet>
|
||||
</step>
|
||||
|
||||
<beans:bean id="playerWriter" class="org.springframework.batch.sample.domain.football.internal.PlayerItemWriter">
|
||||
|
||||
@@ -14,16 +14,17 @@
|
||||
|
||||
<job id="headerFooterSample">
|
||||
<step id="step1">
|
||||
<tasklet reader="reader" writer="writer" commit-interval="3">
|
||||
<streams>
|
||||
<stream ref="reader"/>
|
||||
<stream ref="writer"/>
|
||||
</streams>
|
||||
<tasklet>
|
||||
<chunk-tasklet reader="reader" writer="writer" commit-interval="3">
|
||||
<streams>
|
||||
<stream ref="reader"/>
|
||||
<stream ref="writer"/>
|
||||
</streams>
|
||||
</chunk-tasklet>
|
||||
<listeners>
|
||||
<listener ref="footerCallback"/>
|
||||
</listeners>
|
||||
</tasklet>
|
||||
|
||||
<listeners>
|
||||
<listener ref="footerCallback"/>
|
||||
</listeners>
|
||||
</step>
|
||||
</job>
|
||||
|
||||
|
||||
@@ -12,18 +12,21 @@
|
||||
|
||||
<job id="hibernateJob" restartable="false">
|
||||
<step id="step1">
|
||||
<tasklet reader="hibernateItemReader"
|
||||
processor="creditIncreaseProcessor"
|
||||
writer="hibernateCreditWriter"
|
||||
skip-limit="5"
|
||||
commit-interval="3"/>
|
||||
<tasklet>
|
||||
<chunk-tasklet reader="hibernateItemReader"
|
||||
processor="creditIncreaseProcessor"
|
||||
writer="hibernateCreditWriter"
|
||||
skip-limit="5"
|
||||
commit-interval="3"/>
|
||||
</tasklet>
|
||||
</step>
|
||||
</job>
|
||||
|
||||
<beans:bean id="creditIncreaseProcessor" class="org.springframework.batch.sample.domain.trade.internal.CustomerCreditIncreaseProcessor" />
|
||||
<beans:bean id="creditIncreaseProcessor"
|
||||
class="org.springframework.batch.sample.domain.trade.internal.CustomerCreditIncreaseProcessor" />
|
||||
|
||||
<beans:bean id="hibernateCreditWriter"
|
||||
class="org.springframework.batch.sample.domain.trade.internal.HibernateAwareCustomerCreditItemWriter">
|
||||
class="org.springframework.batch.sample.domain.trade.internal.HibernateAwareCustomerCreditItemWriter">
|
||||
<beans:property name="sessionFactory" ref="sessionFactory" />
|
||||
<beans:property name="dao" ref="customerCreditDao" />
|
||||
</beans:bean>
|
||||
|
||||
@@ -15,7 +15,9 @@
|
||||
|
||||
<job id="ioSampleJob">
|
||||
<step id="step1">
|
||||
<tasklet reader="itemReader" processor="itemProcessor" writer="itemWriter" commit-interval="2"/>
|
||||
<tasklet>
|
||||
<chunk-tasklet reader="itemReader" processor="itemProcessor" writer="itemWriter" commit-interval="2"/>
|
||||
</tasklet>
|
||||
</step>
|
||||
</job>
|
||||
|
||||
|
||||
@@ -15,7 +15,9 @@
|
||||
|
||||
<batch:job id="ioSampleJob">
|
||||
<batch:step id="step1">
|
||||
<batch:tasklet reader="itemReader" writer="itemWriter" commit-interval="2"/>
|
||||
<batch:tasklet>
|
||||
<batch:chunk-tasklet reader="itemReader" writer="itemWriter" commit-interval="2"/>
|
||||
</batch:tasklet>
|
||||
</batch:step>
|
||||
</batch:job>
|
||||
|
||||
|
||||
@@ -15,7 +15,9 @@
|
||||
|
||||
<batch:job id="ioSampleJob">
|
||||
<batch:step id="step1">
|
||||
<batch:tasklet reader="itemReader" writer="itemWriter" commit-interval="2"/>
|
||||
<batch:tasklet>
|
||||
<batch:chunk-tasklet reader="itemReader" writer="itemWriter" commit-interval="2"/>
|
||||
</batch:tasklet>
|
||||
</batch:step>
|
||||
</batch:job>
|
||||
|
||||
|
||||
@@ -13,17 +13,20 @@
|
||||
|
||||
<job id="loopFlowSample">
|
||||
<step id="step1" next="step2">
|
||||
<tasklet reader="itemGenerator" writer="itemWriter" commit-interval="1"/>
|
||||
<listeners>
|
||||
<listener ref="resettingListener"/>
|
||||
</listeners>
|
||||
<tasklet>
|
||||
<chunk-tasklet reader="itemGenerator" writer="itemWriter" commit-interval="1"/>
|
||||
<listeners>
|
||||
<listener ref="resettingListener"/>
|
||||
</listeners>
|
||||
</tasklet>
|
||||
</step>
|
||||
<step id="step2" allow-start-if-complete="true" next="limitDecision">
|
||||
<tasklet reader="itemGenerator" writer="itemWriter"
|
||||
commit-interval="1"/>
|
||||
<listeners>
|
||||
<listener ref="resettingListener"/>
|
||||
</listeners>
|
||||
<step id="step2" next="limitDecision">
|
||||
<tasklet allow-start-if-complete="true">
|
||||
<chunk-tasklet reader="itemGenerator" writer="itemWriter" commit-interval="1"/>
|
||||
<listeners>
|
||||
<listener ref="resettingListener"/>
|
||||
</listeners>
|
||||
</tasklet>
|
||||
</step>
|
||||
<decision id="limitDecision" decider="limitDecider">
|
||||
<next on="CONTINUE" to="step2" />
|
||||
|
||||
@@ -12,10 +12,12 @@
|
||||
|
||||
<batch:job id="multilineJob">
|
||||
<batch:step id="step1">
|
||||
<batch:tasklet reader="reader" writer="writer" commit-interval="1">
|
||||
<batch:streams>
|
||||
<batch:stream ref="fileItemReader"/>
|
||||
</batch:streams>
|
||||
<batch:tasklet>
|
||||
<batch:chunk-tasklet reader="reader" writer="writer" commit-interval="1">
|
||||
<batch:streams>
|
||||
<batch:stream ref="fileItemReader"/>
|
||||
</batch:streams>
|
||||
</batch:chunk-tasklet>
|
||||
</batch:tasklet>
|
||||
</batch:step>
|
||||
</batch:job>
|
||||
|
||||
@@ -14,11 +14,13 @@
|
||||
|
||||
<job id="multilineOrderJob">
|
||||
<step id="step1">
|
||||
<tasklet reader="reader" processor="processor" writer="fileItemWriter" commit-interval="5">
|
||||
<streams>
|
||||
<stream ref="fileItemWriter"/>
|
||||
<stream ref="fileItemReader"/>
|
||||
</streams>
|
||||
<tasklet>
|
||||
<chunk-tasklet reader="reader" processor="processor" writer="fileItemWriter" commit-interval="5">
|
||||
<streams>
|
||||
<stream ref="fileItemWriter"/>
|
||||
<stream ref="fileItemReader"/>
|
||||
</streams>
|
||||
</chunk-tasklet>
|
||||
</tasklet>
|
||||
</step>
|
||||
</job>
|
||||
|
||||
@@ -13,17 +13,21 @@
|
||||
|
||||
<job id="parallelJob">
|
||||
<step id="staging" next="loading">
|
||||
<tasklet reader="fileItemReader"
|
||||
processor="validatingProcessor"
|
||||
writer="stagingItemWriter"
|
||||
commit-interval="2"/>
|
||||
<tasklet>
|
||||
<chunk-tasklet reader="fileItemReader"
|
||||
processor="validatingProcessor"
|
||||
writer="stagingItemWriter"
|
||||
commit-interval="2"/>
|
||||
</tasklet>
|
||||
</step>
|
||||
<step id="loading">
|
||||
<tasklet reader="stagingReader"
|
||||
processor="stagingProcessor"
|
||||
writer="tradeWriter"
|
||||
commit-interval="1"
|
||||
task-executor="taskExecutor"/>
|
||||
<tasklet>
|
||||
<chunk-tasklet reader="stagingReader"
|
||||
processor="stagingProcessor"
|
||||
writer="tradeWriter"
|
||||
commit-interval="1"
|
||||
task-executor="taskExecutor"/>
|
||||
</tasklet>
|
||||
</step>
|
||||
</job>
|
||||
|
||||
|
||||
@@ -9,11 +9,10 @@
|
||||
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
|
||||
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd">
|
||||
|
||||
<bean id="partitionJob" class="org.springframework.batch.core.job.SimpleJob">
|
||||
<property name="jobRepository" ref="jobRepository" />
|
||||
<property name="steps" ref="step1:master"/>
|
||||
</bean>
|
||||
|
||||
<batch:job id="partitionJob">
|
||||
<batch:step id="step" parent="step1:master" />
|
||||
</batch:job>
|
||||
|
||||
<bean name="step1:master" class="org.springframework.batch.core.partition.support.PartitionStep">
|
||||
<property name="jobRepository" ref="jobRepository" />
|
||||
<property name="stepExecutionSplitter">
|
||||
@@ -37,11 +36,13 @@
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<batch:step id="step1" job-repository="jobRepository" transaction-manager="transactionManager">
|
||||
<batch:tasklet writer="itemWriter" reader="itemReader" processor="itemProcessor" commit-interval="5" />
|
||||
<batch:listeners>
|
||||
<batch:listener ref="fileNameListener" />
|
||||
</batch:listeners>
|
||||
<batch:step id="step1">
|
||||
<batch:tasklet job-repository="jobRepository" transaction-manager="transactionManager">
|
||||
<batch:chunk-tasklet writer="itemWriter" reader="itemReader" processor="itemProcessor" commit-interval="5" />
|
||||
<batch:listeners>
|
||||
<batch:listener ref="fileNameListener" />
|
||||
</batch:listeners>
|
||||
</batch:tasklet>
|
||||
</batch:step>
|
||||
|
||||
<bean id="fileNameListener" class="org.springframework.batch.sample.common.OutputFileListener" />
|
||||
|
||||
@@ -10,10 +10,12 @@
|
||||
|
||||
<job id="restartSampleJob" restartable="true">
|
||||
<step id="step1">
|
||||
<tasklet reader="itemReader" processor="processor" writer="tradeWriter" commit-interval="2">
|
||||
<streams>
|
||||
<stream ref="fileItemReader" />
|
||||
</streams>
|
||||
<tasklet>
|
||||
<chunk-tasklet reader="itemReader" processor="processor" writer="tradeWriter" commit-interval="2">
|
||||
<streams>
|
||||
<stream ref="fileItemReader" />
|
||||
</streams>
|
||||
</chunk-tasklet>
|
||||
</tasklet>
|
||||
</step>
|
||||
</job>
|
||||
|
||||
@@ -13,13 +13,15 @@
|
||||
|
||||
<job id="retrySample">
|
||||
<step id="step1">
|
||||
<tasklet reader="itemGenerator"
|
||||
writer="itemWriter"
|
||||
commit-interval="1"
|
||||
retry-limit="3">
|
||||
<retryable-exception-classes>
|
||||
java.lang.Exception
|
||||
</retryable-exception-classes>
|
||||
<tasklet>
|
||||
<chunk-tasklet reader="itemGenerator"
|
||||
writer="itemWriter"
|
||||
commit-interval="1"
|
||||
retry-limit="3">
|
||||
<retryable-exception-classes>
|
||||
java.lang.Exception
|
||||
</retryable-exception-classes>
|
||||
</chunk-tasklet>
|
||||
</tasklet>
|
||||
</step>
|
||||
</job>
|
||||
|
||||
@@ -13,9 +13,11 @@
|
||||
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
|
||||
|
||||
<job id="skipJob" incrementer="incrementer">
|
||||
<step id="step1" parent="baseStep">
|
||||
<tasklet reader="fileItemReader" processor="tradeProcessor" writer="tradeWriter"
|
||||
commit-interval="3" skip-limit="10">
|
||||
<step id="step1" parent="baseStep">
|
||||
<tasklet>
|
||||
<chunk-tasklet reader="fileItemReader" processor="tradeProcessor" writer="tradeWriter"
|
||||
commit-interval="3" skip-limit="10">
|
||||
</chunk-tasklet>
|
||||
</tasklet>
|
||||
|
||||
<next on="*" to="step2" />
|
||||
@@ -23,7 +25,9 @@
|
||||
<fail on="FAILED" exit-code="FAILED"/>
|
||||
</step>
|
||||
|
||||
<step id="errorPrint1" tasklet="errorLogTasklet" next="step2"/>
|
||||
<step id="errorPrint1" next="step2">
|
||||
<tasklet ref="errorLogTasklet"/>
|
||||
</step>
|
||||
|
||||
<step id="step2" parent="secondPass" next="skipCheckingDecision"/>
|
||||
|
||||
@@ -33,33 +37,41 @@
|
||||
<fail on="FAILED" exit-code="FAILED"/>
|
||||
</decision>
|
||||
|
||||
<step id="errorPrint2" tasklet="errorLogTasklet"/>
|
||||
<step id="errorPrint2">
|
||||
<tasklet ref="errorLogTasklet"/>
|
||||
</step>
|
||||
</job>
|
||||
|
||||
<step id="secondPass" parent="t2">
|
||||
<tasklet writer="itemTrackingWriter">
|
||||
<skippable-exception-classes merge="true">
|
||||
java.lang.RuntimeException
|
||||
</skippable-exception-classes>
|
||||
<tasklet>
|
||||
<chunk-tasklet writer="itemTrackingWriter">
|
||||
<skippable-exception-classes merge="true">
|
||||
java.lang.RuntimeException
|
||||
</skippable-exception-classes>
|
||||
</chunk-tasklet>
|
||||
</tasklet>
|
||||
</step>
|
||||
|
||||
<step id="t2" parent="t3" abstract="true"/>
|
||||
|
||||
<step id="t3" parent="baseStep" abstract="true">
|
||||
<tasklet reader="tradeSqlItemReader" processor="tradeProcessor" writer="dummyWriter"
|
||||
commit-interval="2" skip-limit="10">
|
||||
<skippable-exception-classes>
|
||||
org.springframework.batch.item.validator.ValidationException
|
||||
</skippable-exception-classes>
|
||||
<tasklet>
|
||||
<chunk-tasklet reader="tradeSqlItemReader" processor="tradeProcessor" writer="dummyWriter"
|
||||
commit-interval="2" skip-limit="10">
|
||||
<skippable-exception-classes>
|
||||
org.springframework.batch.item.validator.ValidationException
|
||||
</skippable-exception-classes>
|
||||
</chunk-tasklet>
|
||||
</tasklet>
|
||||
</step>
|
||||
|
||||
<step id="baseStep" abstract="true">
|
||||
<listeners>
|
||||
<listener class="org.springframework.batch.sample.common.SkipCheckingListener"/>
|
||||
<listener ref="promotionListener"/>
|
||||
</listeners>
|
||||
<tasklet>
|
||||
<listeners>
|
||||
<listener class="org.springframework.batch.sample.common.SkipCheckingListener"/>
|
||||
<listener ref="promotionListener"/>
|
||||
</listeners>
|
||||
</tasklet>
|
||||
</step>
|
||||
|
||||
<beans:bean id="dummyWriter" class="org.springframework.batch.sample.support.DummyItemWriter"/>
|
||||
|
||||
@@ -11,18 +11,25 @@
|
||||
|
||||
<job id="tradeJob">
|
||||
<step id="step1" next="step2">
|
||||
<tasklet reader="fileItemReader" processor="validatingProcessor" writer="tradeWriter" commit-interval="1">
|
||||
<streams>
|
||||
<stream ref="fileItemReader" />
|
||||
</streams>
|
||||
<tasklet>
|
||||
<chunk-tasklet reader="fileItemReader" processor="validatingProcessor" writer="tradeWriter"
|
||||
commit-interval="1">
|
||||
<streams>
|
||||
<stream ref="fileItemReader" />
|
||||
</streams>
|
||||
</chunk-tasklet>
|
||||
<transaction-attributes isolation="READ_COMMITTED" />
|
||||
</tasklet>
|
||||
<transaction-attributes isolation="READ_COMMITTED" />
|
||||
</step>
|
||||
<step id="step2" next="step3">
|
||||
<tasklet reader="tradeSqlItemReader" writer="customerWriter" commit-interval="1" />
|
||||
<tasklet>
|
||||
<chunk-tasklet reader="tradeSqlItemReader" writer="customerWriter" commit-interval="1" />
|
||||
</tasklet>
|
||||
</step>
|
||||
<step id="step3">
|
||||
<tasklet reader="customerSqlItemReader" writer="creditWriter" commit-interval="1" />
|
||||
<tasklet>
|
||||
<chunk-tasklet reader="customerSqlItemReader" writer="creditWriter" commit-interval="1" />
|
||||
</tasklet>
|
||||
</step>
|
||||
</job>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user