Merging changes from branch...
BATCH-1323: Modify skip/retry/no-rollback exception class configurations to allow for include/exclude BATCH-1339: Move task-executor attribute up from <chunk/> to <tasklet/> BATCH-1348: Allow inlining of reader/writer/processor into <chunk/> BATCH-1357: Allow empty <listeners/>, <retry-listeners/>, and <streams/> lists BATCH-1358: Move InfiniteLoopIncrementer into core, and rename it to RunIdIncrementer BATCH-1367: Syntactic sugar for Item*Adapter in namespace BATCH-1375: Give CompositeItemProcessor's and CompositeItemWriter's property the same name (delegates)
This commit is contained in:
@@ -11,19 +11,19 @@
|
||||
<tasklet>
|
||||
<chunk reader="reader" writer="writer" commit-interval="5" skip-limit="5" retry-limit="3">
|
||||
<skippable-exception-classes merge="true">
|
||||
java.lang.NullPointerException
|
||||
<include class="java.lang.NullPointerException"/>
|
||||
<exclude class="org.springframework.dao.CannotAcquireLockException"/>
|
||||
</skippable-exception-classes>
|
||||
<fatal-exception-classes merge="true">
|
||||
org.springframework.dao.CannotAcquireLockException
|
||||
</fatal-exception-classes>
|
||||
<retryable-exception-classes>
|
||||
org.springframework.dao.DeadlockLoserDataAccessException
|
||||
<include class="org.springframework.dao.DeadlockLoserDataAccessException"/>
|
||||
</retryable-exception-classes>
|
||||
<streams merge="true">
|
||||
<stream ref="stream1"/>
|
||||
</streams>
|
||||
<retry-listeners merge="true">
|
||||
<listener class="org.springframework.batch.core.configuration.xml.DummyRetryListener"/>
|
||||
<listener>
|
||||
<beans:bean class="org.springframework.batch.core.configuration.xml.DummyRetryListener"/>
|
||||
</listener>
|
||||
</retry-listeners>
|
||||
</chunk>
|
||||
</tasklet>
|
||||
@@ -33,19 +33,19 @@
|
||||
<tasklet>
|
||||
<chunk reader="reader" writer="writer" commit-interval="5" skip-limit="5" retry-limit="3">
|
||||
<skippable-exception-classes>
|
||||
java.lang.NullPointerException
|
||||
<include class="java.lang.NullPointerException"/>
|
||||
<exclude class="org.springframework.dao.CannotAcquireLockException"/>
|
||||
</skippable-exception-classes>
|
||||
<fatal-exception-classes>
|
||||
org.springframework.dao.CannotAcquireLockException
|
||||
</fatal-exception-classes>
|
||||
<retryable-exception-classes>
|
||||
org.springframework.dao.DeadlockLoserDataAccessException
|
||||
<include class="org.springframework.dao.DeadlockLoserDataAccessException"/>
|
||||
</retryable-exception-classes>
|
||||
<streams>
|
||||
<stream ref="stream1"/>
|
||||
</streams>
|
||||
<retry-listeners>
|
||||
<listener class="org.springframework.batch.core.configuration.xml.DummyRetryListener"/>
|
||||
<listener>
|
||||
<beans:bean class="org.springframework.batch.core.configuration.xml.DummyRetryListener"/>
|
||||
</listener>
|
||||
</retry-listeners>
|
||||
</chunk>
|
||||
</tasklet>
|
||||
@@ -56,16 +56,16 @@
|
||||
<tasklet>
|
||||
<chunk>
|
||||
<skippable-exception-classes>
|
||||
java.lang.ArithmeticException
|
||||
<include class="java.lang.ArithmeticException"/>
|
||||
<exclude class="org.springframework.dao.DeadlockLoserDataAccessException"/>
|
||||
</skippable-exception-classes>
|
||||
<fatal-exception-classes>
|
||||
org.springframework.dao.DeadlockLoserDataAccessException
|
||||
</fatal-exception-classes>
|
||||
<streams>
|
||||
<stream ref="stream2"/>
|
||||
</streams>
|
||||
<retry-listeners>
|
||||
<listener class="org.springframework.batch.retry.listener.RetryListenerSupport"/>
|
||||
<listener>
|
||||
<beans:bean class="org.springframework.batch.retry.listener.RetryListenerSupport"/>
|
||||
</listener>
|
||||
</retry-listeners>
|
||||
</chunk>
|
||||
</tasklet>
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans:beans xmlns="http://www.springframework.org/schema/batch" xmlns:beans="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/batch http://www.springframework.org/schema/batch/spring-batch-2.0.xsd
|
||||
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
|
||||
|
||||
<beans:import resource="common-context.xml" />
|
||||
|
||||
<step id="inlineHandlers">
|
||||
<tasklet>
|
||||
<chunk commit-interval="5">
|
||||
<reader>
|
||||
<beans:bean class="org.springframework.batch.core.configuration.xml.TestReader"/>
|
||||
</reader>
|
||||
|
||||
<processor>
|
||||
<beans:bean class="org.springframework.batch.core.configuration.xml.TestProcessor"/>
|
||||
</processor>
|
||||
|
||||
<writer>
|
||||
<beans:bean class="org.springframework.batch.core.configuration.xml.TestWriter"/>
|
||||
</writer>
|
||||
</chunk>
|
||||
</tasklet>
|
||||
</step>
|
||||
|
||||
<step id="inlineAdapters">
|
||||
<tasklet>
|
||||
<chunk commit-interval="5">
|
||||
<reader adapter-method="dummyRead">
|
||||
<beans:bean class="org.springframework.batch.core.configuration.xml.DummyItemHandlerAdapter"/>
|
||||
</reader>
|
||||
|
||||
<processor adapter-method="dummyProcess">
|
||||
<beans:bean class="org.springframework.batch.core.configuration.xml.DummyItemHandlerAdapter"/>
|
||||
</processor>
|
||||
|
||||
<writer adapter-method="dummyWrite">
|
||||
<beans:bean class="org.springframework.batch.core.configuration.xml.DummyItemHandlerAdapter"/>
|
||||
</writer>
|
||||
</chunk>
|
||||
</tasklet>
|
||||
</step>
|
||||
|
||||
</beans:beans>
|
||||
@@ -10,8 +10,12 @@
|
||||
<step id="s1" parent="step1"/>
|
||||
<listeners>
|
||||
<listener after-job-method="afterJob" ref="testListener"/>
|
||||
<listener after-job-method="afterJob" class="org.springframework.batch.core.configuration.xml.TestJobListener"/>
|
||||
<listener class="org.springframework.batch.core.configuration.xml.JobExecutionListenerParserTests$TestComponent"/>
|
||||
<listener after-job-method="afterJob">
|
||||
<beans:bean class="org.springframework.batch.core.configuration.xml.TestJobListener"/>
|
||||
</listener>
|
||||
<listener>
|
||||
<beans:bean class="org.springframework.batch.core.configuration.xml.JobExecutionListenerParserTests$TestComponent"/>
|
||||
</listener>
|
||||
</listeners>
|
||||
</job>
|
||||
|
||||
|
||||
@@ -10,7 +10,9 @@
|
||||
<step id="s1"><tasklet ref="dummyTasklet"/></step>
|
||||
|
||||
<listeners merge="true">
|
||||
<listener class="org.springframework.batch.core.listener.JobExecutionListenerSupport"/>
|
||||
<listener>
|
||||
<beans:bean class="org.springframework.batch.core.listener.JobExecutionListenerSupport"/>
|
||||
</listener>
|
||||
</listeners>
|
||||
</job>
|
||||
|
||||
@@ -18,7 +20,9 @@
|
||||
<step id="s2"><tasklet ref="dummyTasklet"/></step>
|
||||
|
||||
<listeners>
|
||||
<listener class="org.springframework.batch.core.listener.JobExecutionListenerSupport"/>
|
||||
<listener>
|
||||
<beans:bean class="org.springframework.batch.core.listener.JobExecutionListenerSupport"/>
|
||||
</listener>
|
||||
</listeners>
|
||||
</job>
|
||||
|
||||
@@ -50,16 +54,22 @@
|
||||
|
||||
<job id="baseJob" abstract="true">
|
||||
<listeners>
|
||||
<listener class="org.springframework.batch.core.configuration.xml.DummyAnnotationJobExecutionListener"/>
|
||||
<listener>
|
||||
<beans:bean class="org.springframework.batch.core.configuration.xml.DummyAnnotationJobExecutionListener"/>
|
||||
</listener>
|
||||
</listeners>
|
||||
</job>
|
||||
|
||||
<job-listener id="listener1" class="org.springframework.batch.core.configuration.xml.DummyAnnotationJobExecutionListener"/>
|
||||
<job-listener id="listener1">
|
||||
<beans:bean class="org.springframework.batch.core.configuration.xml.DummyAnnotationJobExecutionListener"/>
|
||||
</job-listener>
|
||||
|
||||
<beans:bean id="baseJob3" abstract="true">
|
||||
<beans:property name="jobExecutionListeners">
|
||||
<beans:list>
|
||||
<job-listener class="org.springframework.batch.core.listener.JobExecutionListenerSupport"/>
|
||||
<job-listener>
|
||||
<beans:bean class="org.springframework.batch.core.listener.JobExecutionListenerSupport"/>
|
||||
</job-listener>
|
||||
</beans:list>
|
||||
</beans:property>
|
||||
</beans:bean>
|
||||
@@ -68,7 +78,7 @@
|
||||
|
||||
<job id="listenerClearingJob" parent="baseJob">
|
||||
<step id="listenerClearingJobStep"><tasklet ref="dummyTasklet"/></step>
|
||||
<!--TODO BATCH-1357: <listeners/>-->
|
||||
<listeners/>
|
||||
</job>
|
||||
|
||||
</beans:beans>
|
||||
|
||||
@@ -10,7 +10,9 @@
|
||||
<step id="s1" parent="baseStep" next="s2">
|
||||
<tasklet ref="dummyTasklet">
|
||||
<listeners merge="true">
|
||||
<listener class="org.springframework.batch.core.configuration.xml.DummyAnnotationStepExecutionListener"/>
|
||||
<listener>
|
||||
<beans:bean class="org.springframework.batch.core.configuration.xml.DummyAnnotationStepExecutionListener"/>
|
||||
</listener>
|
||||
<listener ref="toplevel1"/>
|
||||
</listeners>
|
||||
</tasklet>
|
||||
@@ -19,20 +21,28 @@
|
||||
<step id="s2" parent="baseStep">
|
||||
<tasklet ref="dummyTasklet">
|
||||
<listeners>
|
||||
<listener class="org.springframework.batch.core.listener.StepExecutionListenerSupport"/>
|
||||
<listener>
|
||||
<beans:bean class="org.springframework.batch.core.listener.StepExecutionListenerSupport"/>
|
||||
</listener>
|
||||
<listener ref="toplevel2"/>
|
||||
</listeners>
|
||||
</tasklet>
|
||||
</step>
|
||||
</job>
|
||||
|
||||
<step-listener id="toplevel1" class="org.springframework.batch.core.listener.StepExecutionListenerSupport"/>
|
||||
<step-listener id="toplevel2" class="org.springframework.batch.core.configuration.xml.DummyAnnotationStepExecutionListener"/>
|
||||
<step-listener id="toplevel1">
|
||||
<beans:bean class="org.springframework.batch.core.listener.StepExecutionListenerSupport"/>
|
||||
</step-listener>
|
||||
<step-listener id="toplevel2">
|
||||
<beans:bean class="org.springframework.batch.core.configuration.xml.DummyAnnotationStepExecutionListener"/>
|
||||
</step-listener>
|
||||
|
||||
<beans:bean id="baseStep" abstract="true">
|
||||
<beans:property name="listeners">
|
||||
<beans:list>
|
||||
<step-listener class="org.springframework.batch.core.listener.CompositeStepExecutionListener"/>
|
||||
<step-listener>
|
||||
<beans:bean class="org.springframework.batch.core.listener.CompositeStepExecutionListener"/>
|
||||
</step-listener>
|
||||
</beans:list>
|
||||
</beans:property>
|
||||
</beans:bean>
|
||||
|
||||
@@ -8,24 +8,25 @@
|
||||
|
||||
<job id="job">
|
||||
<step id="step">
|
||||
<tasklet>
|
||||
<tasklet task-executor="taskExecutor">
|
||||
<chunk reader="reader" processor="processor" writer="writer" commit-interval="10" skip-limit="20"
|
||||
retry-limit="3" cache-capacity="100" is-reader-transactional-queue="true"
|
||||
task-executor="taskExecutor">
|
||||
retry-limit="3" cache-capacity="100" is-reader-transactional-queue="true">
|
||||
<retry-listeners>
|
||||
<listener class="org.springframework.batch.core.configuration.xml.TestRetryListener" ref="retryListener" />
|
||||
<listener ref="retryListener">
|
||||
<beans:bean class="org.springframework.batch.core.configuration.xml.TestRetryListener"/>
|
||||
</listener>
|
||||
</retry-listeners>
|
||||
<streams>
|
||||
<stream ref="reader" />
|
||||
</streams>
|
||||
<skippable-exception-classes>
|
||||
org.springframework.dao.DataIntegrityViolationException,
|
||||
<include class="org.springframework.dao.DataIntegrityViolationException"/>
|
||||
</skippable-exception-classes>
|
||||
</chunk>
|
||||
<transaction-attributes propagation="REQUIRED" isolation="DEFAULT" timeout="10" />
|
||||
<no-rollback-exception-classes>
|
||||
org.springframework.dao.DataIntegrityViolationException
|
||||
</no-rollback-exception-classes>
|
||||
<include class="org.springframework.dao.DataIntegrityViolationException"/>
|
||||
</no-rollback-exception-classes>
|
||||
<listeners>
|
||||
<listener ref="listener" />
|
||||
</listeners>
|
||||
|
||||
@@ -10,7 +10,9 @@
|
||||
<step id="ft-step">
|
||||
<tasklet ref="tasklet">
|
||||
<listeners>
|
||||
<listener ref="listener" class="org.springframework.batch.core.configuration.xml.TestListener"/>
|
||||
<listener ref="listener">
|
||||
<beans:bean class="org.springframework.batch.core.configuration.xml.TestListener"/>
|
||||
</listener>
|
||||
</listeners>
|
||||
</tasklet>
|
||||
</step>
|
||||
|
||||
@@ -85,7 +85,9 @@
|
||||
<tasklet>
|
||||
<transaction-attributes timeout="10"/>
|
||||
<listeners>
|
||||
<listener class="org.springframework.batch.core.listener.StepExecutionListenerSupport" />
|
||||
<listener>
|
||||
<beans:bean class="org.springframework.batch.core.listener.StepExecutionListenerSupport" />
|
||||
</listener>
|
||||
</listeners>
|
||||
</tasklet>
|
||||
</step>
|
||||
@@ -149,26 +151,28 @@
|
||||
<tasklet>
|
||||
<chunk>
|
||||
<skippable-exception-classes>
|
||||
org.springframework.batch.core.step.item.SkippableRuntimeException
|
||||
<include class="org.springframework.batch.core.step.item.SkippableRuntimeException"/>
|
||||
<exclude class="org.springframework.batch.core.step.item.FatalRuntimeException"/>
|
||||
</skippable-exception-classes>
|
||||
<fatal-exception-classes>
|
||||
org.springframework.batch.core.step.item.FatalRuntimeException
|
||||
</fatal-exception-classes>
|
||||
<retryable-exception-classes>
|
||||
org.springframework.dao.DeadlockLoserDataAccessException
|
||||
<include class="org.springframework.dao.DeadlockLoserDataAccessException"/>
|
||||
</retryable-exception-classes>
|
||||
<streams>
|
||||
<stream ref="stream1"/>
|
||||
</streams>
|
||||
<retry-listeners>
|
||||
<listener class="org.springframework.batch.retry.listener.RetryListenerSupport"/>
|
||||
<listener>
|
||||
<beans:bean class="org.springframework.batch.retry.listener.RetryListenerSupport"/>
|
||||
</listener>
|
||||
</retry-listeners>
|
||||
</chunk>
|
||||
<listeners>
|
||||
<listener class="org.springframework.batch.core.listener.StepExecutionListenerSupport"/>
|
||||
<listener>
|
||||
<beans:bean class="org.springframework.batch.core.listener.StepExecutionListenerSupport"/>
|
||||
</listener>
|
||||
</listeners>
|
||||
<no-rollback-exception-classes>
|
||||
org.springframework.batch.core.step.item.FatalRuntimeException
|
||||
<include class="org.springframework.batch.core.step.item.FatalRuntimeException"/>
|
||||
</no-rollback-exception-classes>
|
||||
</tasklet>
|
||||
</step>
|
||||
@@ -177,26 +181,28 @@
|
||||
<tasklet>
|
||||
<chunk reader="reader" writer="writer" commit-interval="10">
|
||||
<skippable-exception-classes merge="true">
|
||||
org.springframework.batch.core.step.item.SkippableException
|
||||
<include class="org.springframework.batch.core.step.item.SkippableException"/>
|
||||
<exclude class="org.springframework.batch.core.step.item.FatalException"/>
|
||||
</skippable-exception-classes>
|
||||
<fatal-exception-classes merge="true">
|
||||
org.springframework.batch.core.step.item.FatalException
|
||||
</fatal-exception-classes>
|
||||
<retryable-exception-classes merge="true">
|
||||
org.springframework.batch.core.step.item.FatalException
|
||||
<include class="org.springframework.batch.core.step.item.FatalException"/>
|
||||
</retryable-exception-classes>
|
||||
<streams merge="true">
|
||||
<stream ref="stream2"/>
|
||||
</streams>
|
||||
<retry-listeners merge="true">
|
||||
<listener class="org.springframework.batch.core.configuration.xml.DummyRetryListener"/>
|
||||
<listener>
|
||||
<beans:bean class="org.springframework.batch.core.configuration.xml.DummyRetryListener"/>
|
||||
</listener>
|
||||
</retry-listeners>
|
||||
</chunk>
|
||||
<listeners merge="true">
|
||||
<listener class="org.springframework.batch.core.listener.CompositeStepExecutionListener"/>
|
||||
<listener>
|
||||
<beans:bean class="org.springframework.batch.core.listener.CompositeStepExecutionListener"/>
|
||||
</listener>
|
||||
</listeners>
|
||||
<no-rollback-exception-classes merge="true">
|
||||
org.springframework.batch.core.step.item.SkippableRuntimeException
|
||||
<include class="org.springframework.batch.core.step.item.SkippableRuntimeException"/>
|
||||
</no-rollback-exception-classes>
|
||||
</tasklet>
|
||||
</step>
|
||||
@@ -205,26 +211,28 @@
|
||||
<tasklet>
|
||||
<chunk reader="reader" writer="writer" commit-interval="10">
|
||||
<skippable-exception-classes>
|
||||
org.springframework.batch.core.step.item.SkippableException
|
||||
<include class="org.springframework.batch.core.step.item.SkippableException"/>
|
||||
<exclude class="org.springframework.batch.core.step.item.FatalException"/>
|
||||
</skippable-exception-classes>
|
||||
<fatal-exception-classes>
|
||||
org.springframework.batch.core.step.item.FatalException
|
||||
</fatal-exception-classes>
|
||||
<retryable-exception-classes>
|
||||
org.springframework.batch.core.step.item.FatalException
|
||||
<include class="org.springframework.batch.core.step.item.FatalException"/>
|
||||
</retryable-exception-classes>
|
||||
<streams>
|
||||
<stream ref="stream2"/>
|
||||
</streams>
|
||||
<retry-listeners>
|
||||
<listener class="org.springframework.batch.core.configuration.xml.DummyRetryListener"/>
|
||||
<listener>
|
||||
<beans:bean class="org.springframework.batch.core.configuration.xml.DummyRetryListener"/>
|
||||
</listener>
|
||||
</retry-listeners>
|
||||
</chunk>
|
||||
<listeners>
|
||||
<listener class="org.springframework.batch.core.listener.CompositeStepExecutionListener"/>
|
||||
<listener>
|
||||
<beans:bean class="org.springframework.batch.core.listener.CompositeStepExecutionListener"/>
|
||||
</listener>
|
||||
</listeners>
|
||||
<no-rollback-exception-classes>
|
||||
org.springframework.batch.core.step.item.SkippableRuntimeException
|
||||
<include class="org.springframework.batch.core.step.item.SkippableRuntimeException"/>
|
||||
</no-rollback-exception-classes>
|
||||
</tasklet>
|
||||
</step>
|
||||
@@ -233,12 +241,11 @@
|
||||
<tasklet>
|
||||
<chunk reader="reader" writer="writer" commit-interval="10">
|
||||
<skippable-exception-classes/>
|
||||
<fatal-exception-classes/>
|
||||
<retryable-exception-classes/>
|
||||
<!--TODO BATCH-1357: <streams/>-->
|
||||
<!--TODO BATCH-1357: <retry-listeners/>-->
|
||||
<streams/>
|
||||
<retry-listeners/>
|
||||
</chunk>
|
||||
<!--TODO BATCH-1357: <listeners/>-->
|
||||
<listeners/>
|
||||
<no-rollback-exception-classes/>
|
||||
</tasklet>
|
||||
</step>
|
||||
|
||||
@@ -6,29 +6,28 @@
|
||||
|
||||
<job id="job">
|
||||
<step id="step">
|
||||
<tasklet start-limit="25" allow-start-if-complete="true">
|
||||
<tasklet start-limit="25" allow-start-if-complete="true" task-executor="taskExecutor">
|
||||
<chunk reader="reader" processor="processor" writer="writer" commit-interval="10" skip-limit="20"
|
||||
retry-limit="3" cache-capacity="100" is-reader-transactional-queue="true"
|
||||
task-executor="taskExecutor">
|
||||
retry-limit="3" cache-capacity="100" is-reader-transactional-queue="true">
|
||||
<retry-listeners>
|
||||
<listener class="org.springframework.batch.core.configuration.xml.TestRetryListener" />
|
||||
<listener>
|
||||
<beans:bean class="org.springframework.batch.core.configuration.xml.TestRetryListener" />
|
||||
</listener>
|
||||
</retry-listeners>
|
||||
<streams>
|
||||
<stream ref="reader" />
|
||||
</streams>
|
||||
<fatal-exception-classes>
|
||||
org.springframework.jdbc.BadSqlGrammarException
|
||||
</fatal-exception-classes>
|
||||
<skippable-exception-classes>
|
||||
org.springframework.dao.DataIntegrityViolationException
|
||||
<include class="org.springframework.dao.DataIntegrityViolationException"/>
|
||||
<exclude class="org.springframework.jdbc.BadSqlGrammarException"/>
|
||||
</skippable-exception-classes>
|
||||
<retryable-exception-classes>
|
||||
org.springframework.dao.DeadlockLoserDataAccessException
|
||||
<include class="org.springframework.dao.DeadlockLoserDataAccessException"/>
|
||||
</retryable-exception-classes>
|
||||
</chunk>
|
||||
<transaction-attributes propagation="REQUIRED" isolation="DEFAULT" timeout="10" />
|
||||
<no-rollback-exception-classes>
|
||||
org.springframework.dao.DataIntegrityViolationException
|
||||
<include class="org.springframework.dao.DataIntegrityViolationException"/>
|
||||
</no-rollback-exception-classes>
|
||||
<listeners>
|
||||
<listener ref="listener" />
|
||||
|
||||
@@ -16,8 +16,9 @@
|
||||
</streams>
|
||||
</chunk>
|
||||
<listeners>
|
||||
<listener class="org.springframework.batch.core.configuration.xml.TestListener"
|
||||
after-step-method="destroy"/>
|
||||
<listener after-step-method="destroy">
|
||||
<beans:bean class="org.springframework.batch.core.configuration.xml.TestListener"/>
|
||||
</listener>
|
||||
<listener ref="listener"/>
|
||||
</listeners>
|
||||
</tasklet>
|
||||
|
||||
@@ -8,29 +8,35 @@
|
||||
|
||||
<job id="job">
|
||||
<step id="step">
|
||||
<tasklet>
|
||||
<chunk reader="reader" processor="processor" writer="writer" commit-interval="10" skip-limit="20"
|
||||
retry-limit="3" cache-capacity="100" is-reader-transactional-queue="true" task-executor="taskExecutor">
|
||||
<tasklet task-executor="taskExecutor">
|
||||
<chunk reader="reader" processor="processor" writer="writer"
|
||||
commit-interval="10" skip-limit="20" retry-limit="3" cache-capacity="100"
|
||||
is-reader-transactional-queue="true">
|
||||
|
||||
<retry-listeners>
|
||||
<listener ref="retryListener" />
|
||||
<listener class="org.springframework.batch.core.configuration.xml.TestRetryListener" />
|
||||
<listener>
|
||||
<beans:bean class="org.springframework.batch.core.configuration.xml.TestRetryListener" />
|
||||
</listener>
|
||||
</retry-listeners>
|
||||
<streams>
|
||||
<stream ref="reader" />
|
||||
</streams>
|
||||
<skippable-exception-classes>
|
||||
org.springframework.dao.DataIntegrityViolationException
|
||||
<include class="org.springframework.dao.DataIntegrityViolationException"/>
|
||||
</skippable-exception-classes>
|
||||
<retryable-exception-classes>
|
||||
org.springframework.dao.DeadlockLoserDataAccessException
|
||||
<include class="org.springframework.dao.DeadlockLoserDataAccessException"/>
|
||||
</retryable-exception-classes>
|
||||
</chunk>
|
||||
<transaction-attributes propagation="REQUIRED" isolation="DEFAULT" timeout="10" />
|
||||
<no-rollback-exception-classes>
|
||||
org.springframework.dao.DataIntegrityViolationException
|
||||
<include class="org.springframework.dao.DataIntegrityViolationException"/>
|
||||
</no-rollback-exception-classes>
|
||||
<listeners>
|
||||
<listener class="org.springframework.batch.core.configuration.xml.TestListener" />
|
||||
<listener>
|
||||
<beans:bean class="org.springframework.batch.core.configuration.xml.TestListener" />
|
||||
</listener>
|
||||
<listener ref="listener" />
|
||||
</listeners>
|
||||
</tasklet>
|
||||
@@ -38,9 +44,9 @@
|
||||
</job>
|
||||
|
||||
<beans:bean id="reader" class="org.springframework.batch.core.configuration.xml.TestReader" />
|
||||
|
||||
|
||||
<beans:bean id="processor" class="org.springframework.batch.core.configuration.xml.TestProcessor" />
|
||||
|
||||
|
||||
<beans:bean id="writer" class="org.springframework.batch.core.configuration.xml.TestWriter" />
|
||||
|
||||
<beans:bean id="listener" class="org.springframework.batch.core.configuration.xml.TestListener" />
|
||||
|
||||
@@ -10,8 +10,9 @@
|
||||
<step id="stop">
|
||||
<tasklet ref="nameStoringTasklet">
|
||||
<listeners>
|
||||
<listener
|
||||
class="org.springframework.batch.core.configuration.xml.TestCustomStatusListener" />
|
||||
<listener>
|
||||
<beans:bean class="org.springframework.batch.core.configuration.xml.TestCustomStatusListener"/>
|
||||
</listener>
|
||||
</listeners>
|
||||
</tasklet>
|
||||
<stop on="FOO" restart="s2" />
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
<tasklet>
|
||||
<chunk reader="reader" writer="writer" commit-interval="4" skip-limit="1">
|
||||
<skippable-exception-classes>
|
||||
org.springframework.batch.core.step.item.SkippableRuntimeException
|
||||
org.springframework.batch.core.step.item.SkippableException
|
||||
<include class="org.springframework.batch.core.step.item.SkippableRuntimeException"/>
|
||||
<include class="org.springframework.batch.core.step.item.SkippableException"/>
|
||||
</skippable-exception-classes>
|
||||
</chunk>
|
||||
</tasklet>
|
||||
@@ -26,13 +26,11 @@
|
||||
<tasklet>
|
||||
<chunk reader="reader" writer="writer" commit-interval="4" skip-limit="1">
|
||||
<skippable-exception-classes>
|
||||
org.springframework.batch.core.step.item.SkippableRuntimeException
|
||||
org.springframework.batch.core.step.item.SkippableException
|
||||
<include class="org.springframework.batch.core.step.item.SkippableRuntimeException"/>
|
||||
<include class="org.springframework.batch.core.step.item.SkippableException"/>
|
||||
<exclude class="org.springframework.batch.core.step.item.FatalRuntimeException"/>
|
||||
<exclude class="org.springframework.batch.core.step.item.FatalException"/>
|
||||
</skippable-exception-classes>
|
||||
<fatal-exception-classes>
|
||||
org.springframework.batch.core.step.item.FatalRuntimeException
|
||||
org.springframework.batch.core.step.item.FatalException
|
||||
</fatal-exception-classes>
|
||||
</chunk>
|
||||
</tasklet>
|
||||
</step>
|
||||
@@ -41,15 +39,13 @@
|
||||
<tasklet>
|
||||
<chunk reader="reader" writer="writer" commit-interval="4" skip-limit="5" retry-limit="2">
|
||||
<skippable-exception-classes>
|
||||
org.springframework.batch.core.step.item.SkippableRuntimeException
|
||||
org.springframework.batch.core.step.item.SkippableException
|
||||
<include class="org.springframework.batch.core.step.item.SkippableRuntimeException"/>
|
||||
<include class="org.springframework.batch.core.step.item.SkippableException"/>
|
||||
<exclude class="org.springframework.batch.core.step.item.FatalRuntimeException"/>
|
||||
<exclude class="org.springframework.batch.core.step.item.FatalException"/>
|
||||
</skippable-exception-classes>
|
||||
<fatal-exception-classes>
|
||||
org.springframework.batch.core.step.item.FatalRuntimeException
|
||||
org.springframework.batch.core.step.item.FatalException
|
||||
</fatal-exception-classes>
|
||||
<retryable-exception-classes>
|
||||
java.lang.Exception
|
||||
<include class="java.lang.Exception"/>
|
||||
</retryable-exception-classes>
|
||||
</chunk>
|
||||
</tasklet>
|
||||
@@ -60,11 +56,11 @@
|
||||
<chunk reader="reader" writer="writer" commit-interval="4" skip-limit="1">
|
||||
<skippable-exception-classes>
|
||||
<!-- this is a subclass of IllegalStateException (no-rollback) -->
|
||||
java.util.FormatterClosedException
|
||||
<include class="java.util.FormatterClosedException"/>
|
||||
</skippable-exception-classes>
|
||||
</chunk>
|
||||
<no-rollback-exception-classes>
|
||||
java.lang.IllegalStateException
|
||||
<include class="java.lang.IllegalStateException"/>
|
||||
</no-rollback-exception-classes>
|
||||
</tasklet>
|
||||
</step>
|
||||
@@ -73,11 +69,11 @@
|
||||
<tasklet>
|
||||
<chunk reader="reader" writer="writer" commit-interval="4" skip-limit="1">
|
||||
<skippable-exception-classes>
|
||||
java.lang.IllegalStateException
|
||||
<include class="java.lang.IllegalStateException"/>
|
||||
</skippable-exception-classes>
|
||||
</chunk>
|
||||
<no-rollback-exception-classes>
|
||||
java.lang.RuntimeException
|
||||
<include class="java.lang.RuntimeException"/>
|
||||
</no-rollback-exception-classes>
|
||||
</tasklet>
|
||||
</step>
|
||||
@@ -86,14 +82,14 @@
|
||||
<tasklet>
|
||||
<chunk reader="reader" writer="writer" commit-interval="4" skip-limit="1">
|
||||
<skippable-exception-classes>
|
||||
org.springframework.batch.core.step.item.SkippableRuntimeException
|
||||
org.springframework.batch.core.step.item.SkippableException
|
||||
org.springframework.batch.core.step.item.FatalRuntimeException
|
||||
org.springframework.batch.core.step.item.FatalException
|
||||
<include class="org.springframework.batch.core.step.item.SkippableRuntimeException"/>
|
||||
<include class="org.springframework.batch.core.step.item.SkippableException"/>
|
||||
<include class="org.springframework.batch.core.step.item.FatalRuntimeException"/>
|
||||
<include class="org.springframework.batch.core.step.item.FatalException"/>
|
||||
</skippable-exception-classes>
|
||||
</chunk>
|
||||
<no-rollback-exception-classes>
|
||||
org.springframework.batch.core.step.item.FatalRuntimeException
|
||||
<include class="org.springframework.batch.core.step.item.FatalRuntimeException"/>
|
||||
</no-rollback-exception-classes>
|
||||
</tasklet>
|
||||
</step>
|
||||
@@ -102,17 +98,15 @@
|
||||
<tasklet>
|
||||
<chunk reader="reader" writer="writer" commit-interval="4" skip-limit="1">
|
||||
<skippable-exception-classes>
|
||||
java.lang.Exception
|
||||
<include class="java.lang.Exception"/>
|
||||
<exclude class="org.springframework.batch.core.step.item.SkippableRuntimeException"/>
|
||||
<exclude class="org.springframework.batch.core.step.item.SkippableException"/>
|
||||
<exclude class="org.springframework.batch.core.step.item.FatalRuntimeException"/>
|
||||
<exclude class="org.springframework.batch.core.step.item.FatalException"/>
|
||||
</skippable-exception-classes>
|
||||
<fatal-exception-classes>
|
||||
org.springframework.batch.core.step.item.SkippableRuntimeException
|
||||
org.springframework.batch.core.step.item.SkippableException
|
||||
org.springframework.batch.core.step.item.FatalRuntimeException
|
||||
org.springframework.batch.core.step.item.FatalException
|
||||
</fatal-exception-classes>
|
||||
</chunk>
|
||||
<no-rollback-exception-classes>
|
||||
org.springframework.batch.core.step.item.FatalRuntimeException
|
||||
<include class="org.springframework.batch.core.step.item.FatalRuntimeException"/>
|
||||
</no-rollback-exception-classes>
|
||||
</tasklet>
|
||||
</step>
|
||||
@@ -120,7 +114,7 @@
|
||||
<step id="noRollbackTasklet" xmlns="http://www.springframework.org/schema/batch">
|
||||
<tasklet ref="tasklet">
|
||||
<no-rollback-exception-classes>
|
||||
org.springframework.batch.core.step.item.SkippableRuntimeException
|
||||
<include class="org.springframework.batch.core.step.item.SkippableRuntimeException"/>
|
||||
</no-rollback-exception-classes>
|
||||
</tasklet>
|
||||
</step>
|
||||
@@ -156,4 +150,4 @@
|
||||
|
||||
<bean id="transactionManager" class="org.springframework.batch.support.transaction.ResourcelessTransactionManager" />
|
||||
|
||||
</beans>
|
||||
</beans>
|
||||
|
||||
Reference in New Issue
Block a user