Fixed broken unit tests and sample jobs from move away from Tasklet.

This commit is contained in:
lucasward
2008-02-10 04:28:23 +00:00
parent 7ae6b41f5e
commit c1b2db5a59
13 changed files with 390 additions and 424 deletions

View File

@@ -1,89 +1,92 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<bean parent="stepScope"/>
<bean parent="jobConfigurationRegistryBeanPostProcessor"/>
<bean parent="stepScope" />
<bean parent="jobConfigurationRegistryBeanPostProcessor" />
<bean id="beanWrapperMapperJob" parent="simpleJob">
<property name="steps">
<list>
<bean id="step1" parent="simpleStep">
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.ItemOrientedTasklet">
<property name="itemReader">
<bean
class="org.springframework.batch.item.reader.ValidatingItemReader">
<property name="itemReader" ref="fileInputTemplate" />
<property name="validator" ref="fixedValidator" />
</bean>
</property>
<property name="itemWriter">
<bean class="org.springframework.batch.sample.item.writer.TradeWriter">
<property name="dao" ref="tradeDao" />
</bean>
</property>
</bean>
</property>
</bean>
<bean id="step2" parent="simpleStep">
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.ItemOrientedTasklet">
<property name="itemReader" ref="fileInputTemplate2" />
<property name="itemWriter">
<bean class="org.springframework.batch.sample.item.writer.PersonWriter" />
</property>
</bean>
</property>
</bean>
</list>
</property>
</bean>
<!-- INFRASTRUCTURE SETUP -->
<bean id="fileInputTemplate" class="org.springframework.batch.io.file.DefaultFlatFileItemReader"
scope="step" >
<aop:scoped-proxy />
<property name="resource" ref="fileLocator" />
<property name="tokenizer" ref="fixedFileDescriptor" />
<property name="fieldSetMapper" ref="fieldSetMapper" />
</bean>
<bean id="fileInputTemplate2" class="org.springframework.batch.io.file.DefaultFlatFileItemReader"
scope="step">
<aop:scoped-proxy />
<property name="resource" ref="fileLocator2" />
<property name="tokenizer" ref="fixedFileDescriptor2" />
<property name="fieldSetMapper" ref="fieldSetMapper2" />
<!-- <property name="validator" ref="fixedValidator" />-->
</bean>
<bean id="fixedFileDescriptor"
class="org.springframework.batch.io.file.transform.FixedLengthTokenizer">
<property name="names" value="ISIN,Quantity,price, CUSTOMER" />
<property name="columns" value="1-12, 13-15, 16-20, 21-29" />
</bean>
<bean id="fixedFileDescriptor2"
class="org.springframework.batch.io.file.transform.FixedLengthTokenizer">
<property name="names" value="Title, FirstName, LastName, Age, Address.AddrLine1, children[0].name, children[1].name" />
<property name="columns" value="1-5, 6-20, 21-40, 41-45, 46-55, 56-65, 66-75" />
</bean>
<bean id="fixedValidator" class="org.springframework.batch.item.validator.SpringValidator">
<property name="validator">
<bean id="tradeValidator" class="org.springmodules.validation.valang.ValangValidator">
<property name="valang">
<value>
<property name="itemReader">
<bean
class="org.springframework.batch.item.reader.ValidatingItemReader">
<property name="itemReader"
ref="fileInputTemplate" />
<property name="validator"
ref="fixedValidator" />
</bean>
</property>
<property name="itemWriter">
<bean
class="org.springframework.batch.sample.item.writer.TradeWriter">
<property name="dao" ref="tradeDao" />
</bean>
</property>
</bean>
<bean id="step2" parent="simpleStep">
<property name="itemReader"
ref="fileInputTemplate2" />
<property name="itemWriter">
<bean
class="org.springframework.batch.sample.item.writer.PersonWriter" />
</property>
</bean>
</list>
</property>
</bean>
<!-- INFRASTRUCTURE SETUP -->
<bean id="fileInputTemplate"
class="org.springframework.batch.io.file.DefaultFlatFileItemReader"
scope="step">
<aop:scoped-proxy />
<property name="resource" ref="fileLocator" />
<property name="tokenizer" ref="fixedFileDescriptor" />
<property name="fieldSetMapper" ref="fieldSetMapper" />
</bean>
<bean id="fileInputTemplate2"
class="org.springframework.batch.io.file.DefaultFlatFileItemReader"
scope="step">
<aop:scoped-proxy />
<property name="resource" ref="fileLocator2" />
<property name="tokenizer" ref="fixedFileDescriptor2" />
<property name="fieldSetMapper" ref="fieldSetMapper2" />
<!-- <property name="validator" ref="fixedValidator" />-->
</bean>
<bean id="fixedFileDescriptor"
class="org.springframework.batch.io.file.transform.FixedLengthTokenizer">
<property name="names" value="ISIN,Quantity,price, CUSTOMER" />
<property name="columns" value="1-12, 13-15, 16-20, 21-29" />
</bean>
<bean id="fixedFileDescriptor2"
class="org.springframework.batch.io.file.transform.FixedLengthTokenizer">
<property name="names"
value="Title, FirstName, LastName, Age, Address.AddrLine1, children[0].name, children[1].name" />
<property name="columns"
value="1-5, 6-20, 21-40, 41-45, 46-55, 56-65, 66-75" />
</bean>
<bean id="fixedValidator"
class="org.springframework.batch.item.validator.SpringValidator">
<property name="validator">
<bean id="tradeValidator"
class="org.springmodules.validation.valang.ValangValidator">
<property name="valang">
<value>
<![CDATA[
{ isin : length(?) < 13 : 'ISIN too long' : 'isin_length' : 12}
]]>
@@ -93,42 +96,51 @@
</property>
</bean>
<bean id="tradeDao" class="org.springframework.batch.sample.dao.JdbcTradeDao">
<property name="jdbcTemplate" ref="jdbcTemplate" />
<property name="incrementer">
<bean parent="incrementerParent">
<property name="incrementerName" value="TRADE_SEQ" />
</bean>
</property>
</bean>
<bean id="fileLocator" class="org.springframework.core.io.ClassPathResource">
<constructor-arg type="java.lang.String"
value="data/beanWrapperMapperSampleJob/input/20070122.teststream.ImportTradeDataStep.txt" />
</bean>
<bean id="fileLocator2" class="org.springframework.core.io.ClassPathResource">
<constructor-arg type="java.lang.String"
value="data/beanWrapperMapperSampleJob/input/20070122.teststream.ImportPersonDataStep.txt" />
</bean>
<bean id="fieldSetMapper" class="org.springframework.batch.io.file.mapping.BeanWrapperFieldSetMapper">
<property name="prototypeBeanName" value="trade"/>
</bean>
<bean id="fieldSetMapper2" class="org.springframework.batch.io.file.mapping.BeanWrapperFieldSetMapper">
<property name="prototypeBeanName" value="person"/>
</bean>
<bean id="trade" class="org.springframework.batch.sample.domain.Trade" scope="prototype"/>
<bean id="person" class="org.springframework.batch.sample.domain.Person" scope="prototype"/>
<bean parent="customEditorConfigurer"/>
<!-- register the step scope with the application context -->
<bean class="org.springframework.batch.execution.scope.StepScope" />
</beans>
<bean id="tradeDao"
class="org.springframework.batch.sample.dao.JdbcTradeDao">
<property name="jdbcTemplate" ref="jdbcTemplate" />
<property name="incrementer">
<bean parent="incrementerParent">
<property name="incrementerName" value="TRADE_SEQ" />
</bean>
</property>
</bean>
<bean id="fileLocator"
class="org.springframework.core.io.ClassPathResource">
<constructor-arg type="java.lang.String"
value="data/beanWrapperMapperSampleJob/input/20070122.teststream.ImportTradeDataStep.txt" />
</bean>
<bean id="fileLocator2"
class="org.springframework.core.io.ClassPathResource">
<constructor-arg type="java.lang.String"
value="data/beanWrapperMapperSampleJob/input/20070122.teststream.ImportPersonDataStep.txt" />
</bean>
<bean id="fieldSetMapper"
class="org.springframework.batch.io.file.mapping.BeanWrapperFieldSetMapper">
<property name="prototypeBeanName" value="trade" />
</bean>
<bean id="fieldSetMapper2"
class="org.springframework.batch.io.file.mapping.BeanWrapperFieldSetMapper">
<property name="prototypeBeanName" value="person" />
</bean>
<bean id="trade"
class="org.springframework.batch.sample.domain.Trade"
scope="prototype" />
<bean id="person"
class="org.springframework.batch.sample.domain.Person"
scope="prototype" />
<bean parent="customEditorConfigurer" />
<!-- register the step scope with the application context -->
<bean class="org.springframework.batch.execution.scope.StepScope" />
</beans>

View File

@@ -13,9 +13,6 @@
<bean id="compositeProcessorJob" parent="simpleJob">
<property name="steps">
<bean id="step1" parent="simpleStep">
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.ItemOrientedTasklet">
<property name="itemReader">
<bean
class="org.springframework.batch.item.reader.ValidatingItemReader">
@@ -38,8 +35,6 @@
</property>
</bean>
</property>
</bean>
</property>
</bean>
</property>
</bean>

View File

@@ -1,52 +1,58 @@
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<description>
The intent is to to give an example of how existing bean
definitions (e.g. from custom application's domain layer)
can be integrated into a batch job.
</description>
<description>
The intent is to to give an example of how existing bean
definitions (e.g. from custom application's domain layer) can be
integrated into a batch job.
</description>
<bean class="org.springframework.batch.execution.configuration.JobRegistryBeanPostProcessor">
<property name="jobConfigurationRegistry" ref="jobConfigurationRegistry"/>
</bean>
<bean id="jobConfiguration" parent="simpleJob">
<property name="steps">
<bean id="step1" parent="simpleStep">
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.ItemOrientedTasklet">
<property name="itemReader">
<bean class="org.springframework.batch.item.reader.ItemReaderAdapter">
<property name="targetObject" ref="delegatingObject" />
<property name="targetMethod" value="getData" />
</bean>
</property>
<property name="itemWriter">
<bean class="org.springframework.batch.item.writer.PropertyExtractingDelegatingItemWriter">
<property name="targetObject" ref="delegatingObject" />
<property name="targetMethod" value="processPerson" />
<property name="fieldsUsedAsTargetMethodArguments">
<list>
<value>firstName</value>
<value>address.city</value>
</list>
</property>
</bean>
</property>
</bean>
</property>
</bean>
</property>
</bean>
<bean id="delegatingObject" class="org.springframework.batch.sample.domain.PersonService" />
<bean
class="org.springframework.batch.execution.configuration.JobRegistryBeanPostProcessor">
<property name="jobConfigurationRegistry"
ref="jobConfigurationRegistry" />
</bean>
<bean id="jobConfiguration" parent="simpleJob">
<property name="steps">
<bean id="step1" parent="simpleStep">
<property name="itemReader">
<bean
class="org.springframework.batch.item.reader.ItemReaderAdapter">
<property name="targetObject"
ref="delegatingObject" />
<property name="targetMethod" value="getData" />
</bean>
</property>
<property name="itemWriter">
<bean
class="org.springframework.batch.item.writer.PropertyExtractingDelegatingItemWriter">
<property name="targetObject"
ref="delegatingObject" />
<property name="targetMethod"
value="processPerson" />
<property
name="fieldsUsedAsTargetMethodArguments">
<list>
<value>firstName</value>
<value>address.city</value>
</list>
</property>
</bean>
</property>
</bean>
</property>
</bean>
<bean id="delegatingObject"
class="org.springframework.batch.sample.domain.PersonService" />
</beans>

View File

@@ -1,62 +1,66 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<bean parent="stepScope"/>
<bean parent="jobConfigurationRegistryBeanPostProcessor"/>
<bean parent="stepScope" />
<bean parent="jobConfigurationRegistryBeanPostProcessor" />
<bean id="fixedLengthImportJob" parent="simpleJob">
<property name="steps">
<bean id="step1" parent="simpleStep">
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.ItemOrientedTasklet">
<property name="itemReader">
<bean
class="org.springframework.batch.item.reader.ValidatingItemReader">
<property name="itemReader" ref="fileInputTemplate" />
<property name="validator" ref="fixedValidator" />
</bean>
</property>
<property name="itemWriter">
<bean class="org.springframework.batch.sample.item.writer.TradeWriter">
<property name="dao" ref="tradeDao" />
</bean>
</property>
</bean>
</property>
</bean>
</property>
</bean>
<!-- INFRASTRUCTURE SETUP -->
<!-- This input source is injected into the test case to verify the output - not used by the job at all -->
<bean id="testInputTemplate" class="org.springframework.batch.io.file.DefaultFlatFileItemReader">
<property name="resource" ref="fileLocator" />
<property name="tokenizer" ref="fixedFileDescriptor" />
<property name="fieldSetMapper" ref="fieldSetMapper" />
</bean>
<bean id="fileInputTemplate" parent="testInputTemplate" autowire-candidate="false" scope="step">
<aop:scoped-proxy/>
</bean>
<bean id="fixedFileDescriptor" class="org.springframework.batch.io.file.transform.FixedLengthTokenizer">
<property name="names" value="ISIN, Quantity, Price, Customer" />
<property name="columns" value="1-12, 13-15, 16-20, 21-29" />
</bean>
<bean id="fixedValidator" class="org.springframework.batch.item.validator.SpringValidator">
<property name="validator">
<bean id="tradeValidator" class="org.springmodules.validation.valang.ValangValidator">
<property name="valang">
<value>
<property name="itemReader">
<bean
class="org.springframework.batch.item.reader.ValidatingItemReader">
<property name="itemReader"
ref="fileInputTemplate" />
<property name="validator" ref="fixedValidator" />
</bean>
</property>
<property name="itemWriter">
<bean
class="org.springframework.batch.sample.item.writer.TradeWriter">
<property name="dao" ref="tradeDao" />
</bean>
</property>
</bean>
</property>
</bean>
<!-- INFRASTRUCTURE SETUP -->
<!-- This input source is injected into the test case to verify the output - not used by the job at all -->
<bean id="testInputTemplate"
class="org.springframework.batch.io.file.DefaultFlatFileItemReader">
<property name="resource" ref="fileLocator" />
<property name="tokenizer" ref="fixedFileDescriptor" />
<property name="fieldSetMapper" ref="fieldSetMapper" />
</bean>
<bean id="fileInputTemplate" parent="testInputTemplate"
autowire-candidate="false" scope="step">
<aop:scoped-proxy />
</bean>
<bean id="fixedFileDescriptor"
class="org.springframework.batch.io.file.transform.FixedLengthTokenizer">
<property name="names" value="ISIN, Quantity, Price, Customer" />
<property name="columns" value="1-12, 13-15, 16-20, 21-29" />
</bean>
<bean id="fixedValidator"
class="org.springframework.batch.item.validator.SpringValidator">
<property name="validator">
<bean id="tradeValidator"
class="org.springmodules.validation.valang.ValangValidator">
<property name="valang">
<value>
<![CDATA[
{ isin : length(?) < 13 : 'ISIN too long' : 'isin_length' : 12}
]]>
@@ -66,23 +70,26 @@
</property>
</bean>
<bean id="tradeDao" class="org.springframework.batch.sample.dao.JdbcTradeDao">
<property name="jdbcTemplate" ref="jdbcTemplate" />
<property name="incrementer">
<bean parent="incrementerParent">
<property name="incrementerName" value="TRADE_SEQ" />
</bean>
</property>
</bean>
<bean id="fileLocator" class="org.springframework.core.io.ClassPathResource">
<constructor-arg type="java.lang.String"
value="data/fixedLengthImportJob/input/20070122.teststream.ImportTradeDataStep.txt" />
</bean>
<bean id="fieldSetMapper" class="org.springframework.batch.sample.mapping.TradeFieldSetMapper" />
<bean parent="customEditorConfigurer"/>
<bean id="tradeDao"
class="org.springframework.batch.sample.dao.JdbcTradeDao">
<property name="jdbcTemplate" ref="jdbcTemplate" />
<property name="incrementer">
<bean parent="incrementerParent">
<property name="incrementerName" value="TRADE_SEQ" />
</bean>
</property>
</bean>
<bean id="fileLocator"
class="org.springframework.core.io.ClassPathResource">
<constructor-arg type="java.lang.String"
value="data/fixedLengthImportJob/input/20070122.teststream.ImportTradeDataStep.txt" />
</bean>
<bean id="fieldSetMapper"
class="org.springframework.batch.sample.mapping.TradeFieldSetMapper" />
<bean parent="customEditorConfigurer" />
</beans>

View File

@@ -20,21 +20,16 @@
<property name="commitInterval" value="1"></property>
<property name="startLimit" value="100" />
<property name="allowStartIfComplete" value="false" />
<property name="tasklet">
<property name="itemReader"
ref="playerFileItemReader" />
<property name="itemWriter">
<bean
class="org.springframework.batch.execution.tasklet.ItemOrientedTasklet">
<property name="itemReader"
ref="playerFileItemReader" />
<property name="itemWriter">
class="org.springframework.batch.sample.item.writer.PlayerItemWriter">
<property name="playerDao">
<bean
class="org.springframework.batch.sample.item.writer.PlayerItemWriter">
<property name="playerDao">
<bean
class="org.springframework.batch.sample.dao.JdbcPlayerDao">
<property name="dataSource"
ref="dataSource" />
</bean>
</property>
class="org.springframework.batch.sample.dao.JdbcPlayerDao">
<property name="dataSource"
ref="dataSource" />
</bean>
</property>
</bean>
@@ -43,36 +38,26 @@
<bean id="gameLoad" parent="simpleStep">
<property name="commitInterval" value="1" />
<property name="startLimit" value="100" />
<property name="tasklet">
<property name="itemReader"
ref="gameFileItemReader" />
<property name="itemWriter">
<bean
class="org.springframework.batch.execution.tasklet.ItemOrientedTasklet">
<property name="itemReader"
ref="gameFileItemReader" />
<property name="itemWriter">
<bean
class="org.springframework.batch.sample.dao.JdbcGameDao">
<property name="dataSource"
ref="dataSource" />
</bean>
</property>
class="org.springframework.batch.sample.dao.JdbcGameDao">
<property name="dataSource"
ref="dataSource" />
</bean>
</property>
</bean>
<bean id="playerSummarization" parent="simpleStep">
<property name="commitInterval" value="1" />
<property name="startLimit" value="100" />
<property name="tasklet">
<property name="itemReader"
ref="playerSummarizationSource" />
<property name="itemWriter">
<bean
class="org.springframework.batch.execution.tasklet.ItemOrientedTasklet">
<property name="itemReader"
ref="playerSummarizationSource" />
<property name="itemWriter">
<bean
class="org.springframework.batch.sample.dao.JdbcPlayerSummaryDao">
<property name="dataSource"
ref="dataSource" />
</bean>
</property>
class="org.springframework.batch.sample.dao.JdbcPlayerSummaryDao">
<property name="dataSource"
ref="dataSource" />
</bean>
</property>
</bean>

View File

@@ -18,17 +18,11 @@
<!-- set restartable=false so that this job can be used by more than one test -->
<property name="restartable" value="false" />
<property name="steps">
<bean id="step1" parent="repeatOperationsStep">
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.ItemOrientedTasklet">
<property name="itemReader"
ref="hibernateItemReader" />
<property name="itemWriter"
ref="hibernateOutputSource" />
</bean>
</property>
<property name="chunkOperations">
<bean id="step1" parent="repeatOperationsStep">
<property name="itemReader" ref="hibernateItemReader" />
<property name="itemWriter" ref="hibernateOutputSource" />
<property name="chunkOperations">
<bean
class="org.springframework.batch.repeat.support.RepeatTemplate">
<property name="interceptors"
@@ -55,6 +49,7 @@
</property>
</bean>
<!-- This is a framework class that needs a delegate and also needs to be registered as a RepeatInterceptor in the chunk -->
<bean id="hibernateOutputSource"
class="org.springframework.batch.io.support.HibernateAwareItemWriter">
@@ -64,7 +59,7 @@
<bean id="hibernateCreditWriter"
class="org.springframework.batch.sample.item.writer.CustomerCreditIncreaseWriter">
<property name="customerCreditDao" ref="customerCreditDao"/>
<property name="customerCreditDao" ref="customerCreditDao" />
</bean>
<bean id="customerCreditDao"

View File

@@ -1,68 +1,70 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd" >
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<description>
Example for iBATIS integration.
</description>
<description>Example for iBATIS integration.</description>
<bean parent="stepScope"/>
<bean parent="jobConfigurationRegistryBeanPostProcessor"/>
<bean parent="stepScope" />
<bean parent="jobConfigurationRegistryBeanPostProcessor" />
<bean id="ibatisJob" parent="simpleJob">
<property name="steps">
<bean id="step1" parent="simpleStep">
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.ItemOrientedTasklet">
<property name="itemReader" ref="ibatisItemReader" />
<property name="itemWriter">
<bean class="org.springframework.batch.sample.item.writer.CustomerCreditIncreaseWriter">
<property name="customerCreditDao">
<bean class="org.springframework.batch.sample.dao.IbatisCustomerCreditWriter"
scope="step">
<aop:scoped-proxy />
<property name="sqlMapClient" ref="sqlMapClient" />
<property name="statementId" value="updateCredit" />
</bean>
</property>
</bean>
</property>
</bean>
</property>
</bean>
</property>
</bean>
<bean id="ibatisItemReader" class="org.springframework.batch.io.driving.IbatisDrivingQueryItemReader"
scope="step" >
<aop:scoped-proxy />
<property name="detailsQueryId" value="getCustomerCreditById" />
<property name="sqlMapClient" ref="sqlMapClient" />
<property name="keyGenerator" ref="ibatisKeyGenerator" />
</bean>
<property name="itemReader" ref="ibatisItemReader" />
<property name="itemWriter">
<bean
class="org.springframework.batch.sample.item.writer.CustomerCreditIncreaseWriter">
<property name="customerCreditDao">
<bean
class="org.springframework.batch.sample.dao.IbatisCustomerCreditWriter"
scope="step">
<aop:scoped-proxy />
<property name="sqlMapClient"
ref="sqlMapClient" />
<property name="statementId"
value="updateCredit" />
</bean>
</property>
</bean>
</property>
</bean>
</property>
</bean>
<bean id="ibatisKeyGenerator" class="org.springframework.batch.io.driving.support.IbatisKeyGenerator">
<bean id="ibatisItemReader"
class="org.springframework.batch.io.driving.IbatisDrivingQueryItemReader"
scope="step">
<aop:scoped-proxy />
<property name="detailsQueryId" value="getCustomerCreditById" />
<property name="sqlMapClient" ref="sqlMapClient" />
<property name="keyGenerator" ref="ibatisKeyGenerator" />
</bean>
<bean id="ibatisKeyGenerator"
class="org.springframework.batch.io.driving.support.IbatisKeyGenerator">
<property name="drivingQueryId" value="getAllCustomerCreditIds" />
<property name="sqlMapClient" ref="sqlMapClient" />
</bean>
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="ibatis-config.xml" />
<property name="dataSource" ref="dataSource" />
</bean>
<bean parent="customEditorConfigurer"/>
<!-- register the step scope with the application context -->
<bean class="org.springframework.batch.execution.scope.StepScope" />
<bean id="sqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="ibatis-config.xml" />
<property name="dataSource" ref="dataSource" />
</bean>
<bean parent="customEditorConfigurer" />
<!-- register the step scope with the application context -->
<bean class="org.springframework.batch.execution.scope.StepScope" />
</beans>

View File

@@ -13,25 +13,20 @@
<bean id="multilineJob" parent="simpleJob">
<property name="steps">
<bean id="step1" parent="simpleStep">
<property name="tasklet">
<property name="itemReader">
<bean
class="org.springframework.batch.execution.tasklet.ItemOrientedTasklet">
<property name="itemReader">
<bean
class="org.springframework.batch.item.reader.AggregateItemReader">
<property name="itemReader"
ref="fileItemReader" />
</bean>
</property>
<property name="itemWriter">
<bean
class="org.springframework.batch.io.file.FlatFileItemWriter"
scope="step">
<aop:scoped-proxy />
<property name="resource"
value="file:target/test-outputs/20070122.testStream.multilineStep.txt" />
</bean>
</property>
class="org.springframework.batch.item.reader.AggregateItemReader">
<property name="itemReader"
ref="fileItemReader" />
</bean>
</property>
<property name="itemWriter">
<bean
class="org.springframework.batch.io.file.FlatFileItemWriter"
scope="step">
<aop:scoped-proxy />
<property name="resource"
value="file:target/test-outputs/20070122.testStream.multilineStep.txt" />
</bean>
</property>
</bean>

View File

@@ -16,9 +16,6 @@
<bean id="multilineOrderJob" parent="simpleJob">
<property name="steps">
<bean id="step1" parent="simpleStep">
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.ItemOrientedTasklet">
<property name="itemReader">
<bean class="org.springframework.batch.sample.item.reader.OrderItemReader">
<property name="itemReader" ref="fileInputTemplate" />
@@ -45,8 +42,6 @@
</property>
</bean>
</property>
</bean>
</property>
</bean>
</property>
</bean>

View File

@@ -20,7 +20,7 @@
<bean
class="org.springframework.batch.item.reader.ValidatingItemReader">
<property name="itemReader"
ref="fileItemReader" />
ref="itemReader" />
<property name="validator" ref="fixedValidator" />
</bean>
</property>
@@ -36,6 +36,11 @@
</bean>
<!-- INFRASTRUCTURE SETUP -->
<bean id="itemReader"
class="org.springframework.batch.sample.tasklet.ExceptionThrowingItemReaderProxy">
<constructor-arg ref="fileItemReader" />
</bean>
<bean id="fileItemReader"
class="org.springframework.batch.io.file.DefaultFlatFileItemReader"

View File

@@ -40,38 +40,28 @@
</property>
</bean>
</property>
<property name="tasklet">
<property name="itemReader">
<bean
class="org.springframework.batch.execution.tasklet.ItemOrientedTasklet">
<property name="itemReader">
<bean
class="org.springframework.batch.item.reader.ValidatingItemReader">
<property name="itemReader"
ref="fileInputTemplate" />
<property name="validator"
ref="tradeValidator" />
</bean>
</property>
<property name="itemWriter">
<bean
class="org.springframework.batch.sample.item.writer.TradeWriter"
p:dao-ref="tradeDao" p:failure="3" />
</property>
class="org.springframework.batch.item.reader.ValidatingItemReader">
<property name="itemReader"
ref="fileInputTemplate" />
<property name="validator"
ref="tradeValidator" />
</bean>
</property>
<property name="itemWriter">
<bean
class="org.springframework.batch.sample.item.writer.TradeWriter"
p:dao-ref="tradeDao" p:failure="3" />
</property>
<property name="jobRepository" ref="jobRepository" />
</bean>
<bean id="step2" parent="simpleStep">
<property name="tasklet">
<property name="itemReader"
ref="tradeSqlItemReader" />
<property name="itemWriter">
<bean
class="org.springframework.batch.execution.tasklet.ItemOrientedTasklet">
<property name="itemReader"
ref="tradeSqlItemReader" />
<property name="itemWriter">
<bean
class="org.springframework.batch.sample.item.writer.DummyItemWriter" />
</property>
</bean>
class="org.springframework.batch.sample.item.writer.DummyItemWriter" />
</property>
</bean>
</list>

View File

@@ -17,9 +17,6 @@
<property name="steps">
<list>
<bean id="step1" parent="simpleStep">
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.ItemOrientedTasklet">
<property name="itemReader">
<bean
class="org.springframework.batch.item.reader.ValidatingItemReader">
@@ -33,35 +30,23 @@
<bean
class="org.springframework.batch.sample.item.writer.TradeWriter"
p:dao-ref="tradeDao" />
</property>
</bean>
</property>
</property>
</bean>
<bean id="step2" parent="simpleStep">
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.ItemOrientedTasklet">
<property name="itemReader" ref="tradeSqlItemReader" />
<property name="itemWriter">
<bean
class="org.springframework.batch.sample.item.writer.CustomerUpdateWriter"
p:dao-ref="customerDao" />
</property>
</bean>
</property>
</property>
</bean>
<bean id="step3" parent="simpleStep">
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.ItemOrientedTasklet">
<property name="itemReader" ref="customerSqlItemReader" />
<property name="itemWriter">
<bean
class="org.springframework.batch.sample.item.writer.CustomerCreditUpdateWriter"
p:writer-ref="customerReportOutputSource" />
</property>
</bean>
</property>
</bean>
</list>
</property>

View File

@@ -17,42 +17,36 @@
<bean id="xmlStaxJob" parent="simpleJob">
<property name="steps">
<bean id="step1" parent="simpleStep">
<property name="tasklet">
<property name="itemReader">
<bean
class="org.springframework.batch.execution.tasklet.ItemOrientedTasklet">
<property name="itemReader">
class="org.springframework.batch.io.xml.StaxEventItemReader"
scope="step">
<aop:scoped-proxy />
<property name="fragmentRootElementName"
value="trade" />
<property name="resource"
value="data/staxJob/input/20070918.testStream.xmlFileStep.xml" />
<property name="fragmentDeserializer">
<bean
class="org.springframework.batch.io.xml.StaxEventItemReader"
scope="step">
<aop:scoped-proxy />
<property name="fragmentRootElementName"
value="trade" />
<property name="resource"
value="data/staxJob/input/20070918.testStream.xmlFileStep.xml" />
<property name="fragmentDeserializer">
class="org.springframework.batch.io.xml.oxm.UnmarshallingEventReaderDeserializer">
<constructor-arg>
<bean
class="org.springframework.batch.io.xml.oxm.UnmarshallingEventReaderDeserializer">
<constructor-arg>
<bean
class="org.springframework.oxm.xstream.XStreamMarshaller">
<property name="aliases"
ref="aliases" />
</bean>
</constructor-arg>
class="org.springframework.oxm.xstream.XStreamMarshaller">
<property name="aliases"
ref="aliases" />
</bean>
</property>
</constructor-arg>
</bean>
</property>
<property name="itemWriter"
ref="tradeStaxWriter" />
</bean>
</property>
<property name="itemWriter" ref="tradeStaxWriter" />
</bean>
</property>
</bean>
<bean class="org.springframework.batch.io.xml.StaxEventItemWriter"
id="tradeStaxWriter" scope="step">
id="tradeStaxWriter" scope="step">
<aop:scoped-proxy />
<property name="resource"
value="file:target/test-outputs/20070918.testStream.xmlFileStep.output.xml" />