BATCH-941: Applied patch
This commit is contained in:
@@ -11,7 +11,6 @@
|
||||
<config>src/main/resources/jobs/multilineOrderIo.xml</config>
|
||||
<config>src/main/resources/jobs/multilineOrderJob.xml</config>
|
||||
<config>src/main/resources/jobs/tradeJob.xml</config>
|
||||
<config>src/main/resources/jobs/tradeJobIo.xml</config>
|
||||
<config>src/main/resources/jobs/restartSample.xml</config>
|
||||
<config>src/main/resources/data-source-context.xml</config>
|
||||
<config>src/main/resources/jobs/beanWrapperMapperSampleJob.xml</config>
|
||||
@@ -179,7 +178,6 @@
|
||||
<config>src/main/resources/data-source-context.xml</config>
|
||||
<config>src/main/resources/data-source-context-init.xml</config>
|
||||
<config>src/main/resources/jobs/tradeJob.xml</config>
|
||||
<config>src/main/resources/jobs/tradeJobIo.xml</config>
|
||||
<config>src/main/resources/simple-job-launcher-context.xml</config>
|
||||
<config>src/main/resources/org/springframework/batch/sample/config/common-context.xml</config>
|
||||
</configs>
|
||||
@@ -374,7 +372,6 @@
|
||||
<config>src/main/resources/jobs/skipSampleJob.xml</config>
|
||||
<config>src/main/resources/org/springframework/batch/sample/config/common-context.xml</config>
|
||||
<config>src/main/resources/data-source-context-init.xml</config>
|
||||
<config>src/main/resources/jobs/tradeJobIo.xml</config>
|
||||
<config>src/main/resources/skipSample-job-launcher-context.xml</config>
|
||||
</configs>
|
||||
</configSet>
|
||||
|
||||
@@ -1,116 +1,131 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:batch="http://www.springframework.org/schema/batch"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:p="http://www.springframework.org/schema/p"
|
||||
xmlns:aop="http://www.springframework.org/schema/aop"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
|
||||
http://www.springframework.org/schema/batch
|
||||
http://www.springframework.org/schema/batch/spring-batch-2.0.xsd
|
||||
http://www.springframework.org/schema/aop
|
||||
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
|
||||
|
||||
<import resource="tradeJobIo.xml" />
|
||||
|
||||
<batch:job id="skipJob" incrementer="incrementer">
|
||||
<batch:step name="step1">
|
||||
<batch:end on="FAILED" status="FAILED"/>
|
||||
<batch:next on="COMPLETED WITH SKIPS" to="errorPrint1" />
|
||||
<batch:next on="*" to="step2" />
|
||||
</batch:step>
|
||||
<batch:step name="errorPrint1">
|
||||
<batch:next on="*" to="step2" />
|
||||
</batch:step>
|
||||
<batch:step name="step2">
|
||||
<batch:next on="*" to="skipCheckingDecision" />
|
||||
</batch:step>
|
||||
<batch:decision id="skipCheckingDecision" decider="skipCheckingDecider">
|
||||
<batch:next on="COMPLETED WITH SKIPS" to="errorPrint2" />
|
||||
<batch:end on="*"/>
|
||||
</batch:decision>
|
||||
<batch:step name="errorPrint2" />
|
||||
</batch:job>
|
||||
|
||||
<bean id="step1" parent="skipLimitStep">
|
||||
<property name="skipLimit" value="1" />
|
||||
<property name="itemReader" ref="fileItemReader" />
|
||||
<property name="itemProcessor">
|
||||
<bean class="org.springframework.batch.sample.domain.trade.internal.TradeProcessor"/>
|
||||
</property>
|
||||
<property name="itemWriter">
|
||||
<bean class="org.springframework.batch.sample.domain.trade.internal.TradeWriter"
|
||||
p:dao-ref="tradeDao" />
|
||||
</property>
|
||||
<property name="listeners">
|
||||
<list>
|
||||
<bean class="org.springframework.batch.sample.common.SkipCheckingListener"/>
|
||||
<ref bean="fileLocator"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="step2" parent="skipLimitStep">
|
||||
<property name="commitInterval" value="2" />
|
||||
<property name="skipLimit" value="1" />
|
||||
<!-- No rollback for exceptions that are marked with "+" in the tx attributes -->
|
||||
<property name="skippableExceptionClasses">
|
||||
<list>
|
||||
<value>org.springframework.batch.item.validator.ValidationException</value>
|
||||
<value>java.lang.RuntimeException</value>
|
||||
</list>
|
||||
</property>
|
||||
<property name="itemReader" ref="tradeSqlItemReader" />
|
||||
<property name="itemProcessor">
|
||||
<bean class="org.springframework.batch.sample.domain.trade.internal.TradeProcessor"/>
|
||||
</property>
|
||||
<property name="itemWriter" ref="itemTrackingWriter" />
|
||||
<property name="listeners">
|
||||
<list>
|
||||
<bean class="org.springframework.batch.sample.common.SkipCheckingListener"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="tradeSqlItemReader" class="org.springframework.batch.item.database.JdbcCursorItemReader">
|
||||
<property name="dataSource" ref="dataSource" />
|
||||
<property name="sql"
|
||||
value="SELECT isin, quantity, price, customer from TRADE" />
|
||||
<property name="mapper">
|
||||
<bean
|
||||
class="org.springframework.batch.sample.domain.trade.internal.TradeRowMapper" />
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="customerSqlItemReader" class="org.springframework.batch.item.database.JdbcCursorItemReader">
|
||||
<property name="dataSource" ref="dataSource" />
|
||||
<property name="sql"
|
||||
value="SELECT id, name, credit FROM customer " />
|
||||
<property name="mapper">
|
||||
<bean class="org.springframework.batch.sample.domain.trade.internal.CustomerCreditRowMapper" />
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="fileLocator" class="org.springframework.batch.core.resource.StepExecutionResourceProxy">
|
||||
<property name="filePattern" value="classpath:data/skipJob/input/input%run.id(long)%.txt"/>
|
||||
</bean>
|
||||
|
||||
<bean id="customerFileLocator" class="org.springframework.core.io.FileSystemResource">
|
||||
<constructor-arg type="java.lang.String"
|
||||
value="target/test-outputs/20070122.testStream.CustomerReportStep.TEMP.txt" />
|
||||
</bean>
|
||||
|
||||
<bean id="errorPrint" parent="taskletStep">
|
||||
<property name="tasklet">
|
||||
<bean class="org.springframework.batch.sample.common.ErrorLogTasklet">
|
||||
<property name="dataSource" ref="dataSource"/>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
<bean id="errorPrint1" parent="errorPrint"/>
|
||||
<bean id="errorPrint2" parent="errorPrint"/>
|
||||
|
||||
<bean id="skipCheckingDecider" class="org.springframework.batch.sample.common.SkipCheckingDecider"/>
|
||||
|
||||
<bean id="incrementer" class="org.springframework.batch.sample.common.InfiniteLoopIncrementer"/>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:batch="http://www.springframework.org/schema/batch"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:p="http://www.springframework.org/schema/p"
|
||||
xmlns:aop="http://www.springframework.org/schema/aop"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
|
||||
http://www.springframework.org/schema/batch
|
||||
http://www.springframework.org/schema/batch/spring-batch-2.0.xsd
|
||||
http://www.springframework.org/schema/aop
|
||||
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
|
||||
|
||||
<batch:job id="skipJob" incrementer="incrementer">
|
||||
<batch:step name="step1">
|
||||
<batch:end on="FAILED" status="FAILED"/>
|
||||
<batch:next on="COMPLETED WITH SKIPS" to="errorPrint1" />
|
||||
<batch:next on="*" to="step2" />
|
||||
</batch:step>
|
||||
|
||||
<batch:step name="errorPrint1" next="step2"/>
|
||||
|
||||
<batch:step name="step2" next="skipCheckingDecision"/>
|
||||
|
||||
<batch:decision id="skipCheckingDecision" decider="skipCheckingDecider">
|
||||
<batch:next on="COMPLETED WITH SKIPS" to="errorPrint2" />
|
||||
<batch:end on="*"/>
|
||||
</batch:decision>
|
||||
|
||||
<batch:step name="errorPrint2" />
|
||||
</batch:job>
|
||||
|
||||
<bean id="step1" parent="skipLimitStep">
|
||||
<property name="skipLimit" value="1" />
|
||||
<property name="itemReader" ref="fileItemReader" />
|
||||
<property name="itemProcessor">
|
||||
<bean class="org.springframework.batch.sample.domain.trade.internal.TradeProcessor"/>
|
||||
</property>
|
||||
<property name="itemWriter">
|
||||
<bean class="org.springframework.batch.sample.domain.trade.internal.TradeWriter" p:dao-ref="tradeDao" />
|
||||
</property>
|
||||
<property name="listeners">
|
||||
<list>
|
||||
<bean class="org.springframework.batch.sample.common.SkipCheckingListener"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="step2" parent="skipLimitStep">
|
||||
<property name="commitInterval" value="2" />
|
||||
<property name="skipLimit" value="1" />
|
||||
<property name="skippableExceptionClasses">
|
||||
<list>
|
||||
<value>org.springframework.batch.item.validator.ValidationException</value>
|
||||
<value>java.lang.RuntimeException</value>
|
||||
</list>
|
||||
</property>
|
||||
<property name="itemReader" ref="tradeSqlItemReader" />
|
||||
<property name="itemProcessor">
|
||||
<bean class="org.springframework.batch.sample.domain.trade.internal.TradeProcessor"/>
|
||||
</property>
|
||||
<property name="itemWriter" ref="itemTrackingWriter" />
|
||||
<property name="listeners">
|
||||
<list>
|
||||
<bean class="org.springframework.batch.sample.common.SkipCheckingListener"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="fileItemReader" class="org.springframework.batch.item.file.FlatFileItemReader" scope="step">
|
||||
<property name="resource" value="classpath:/data/skipJob/input/input#{jobParameters[run.id]}.txt" />
|
||||
<property name="lineMapper">
|
||||
<bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
|
||||
<property name="lineTokenizer">
|
||||
<bean class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
|
||||
<property name="names" value="ISIN, Quantity, Price, Customer" />
|
||||
</bean>
|
||||
</property>
|
||||
<property name="fieldSetMapper">
|
||||
<bean class="org.springframework.batch.sample.domain.trade.internal.TradeFieldSetMapper" />
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean class="org.springframework.batch.core.scope.StepScope" />
|
||||
|
||||
<bean id="tradeDao" class="org.springframework.batch.sample.domain.trade.internal.JdbcTradeDao"
|
||||
p:dataSource-ref="dataSource">
|
||||
<property name="incrementer">
|
||||
<bean parent="incrementerParent">
|
||||
<property name="incrementerName" value="TRADE_SEQ" />
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="tradeSqlItemReader" class="org.springframework.batch.item.database.JdbcCursorItemReader">
|
||||
<property name="dataSource" ref="dataSource" />
|
||||
<property name="sql" value="SELECT isin, quantity, price, customer from TRADE" />
|
||||
<property name="mapper">
|
||||
<bean class="org.springframework.batch.sample.domain.trade.internal.TradeRowMapper" />
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="customerReportItemWriter"
|
||||
class="org.springframework.batch.sample.domain.trade.internal.FlatFileCustomerCreditDao">
|
||||
<property name="itemWriter">
|
||||
<bean id="customerFlatFileOutputSource"
|
||||
class="org.springframework.batch.item.file.FlatFileItemWriter">
|
||||
<property name="resource" value="target/test-outputs/20070122.testStream.CustomerReportStep.TEMP.txt" />
|
||||
<property name="lineAggregator">
|
||||
<bean class="org.springframework.batch.item.file.transform.PassThroughLineAggregator" />
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="errorPrint" parent="taskletStep">
|
||||
<property name="tasklet">
|
||||
<bean class="org.springframework.batch.sample.common.ErrorLogTasklet">
|
||||
<property name="dataSource" ref="dataSource"/>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
<bean id="errorPrint1" parent="errorPrint"/>
|
||||
<bean id="errorPrint2" parent="errorPrint"/>
|
||||
|
||||
<bean id="skipCheckingDecider" class="org.springframework.batch.sample.common.SkipCheckingDecider"/>
|
||||
|
||||
<bean id="incrementer" class="org.springframework.batch.sample.common.InfiniteLoopIncrementer"/>
|
||||
</beans>
|
||||
@@ -1,87 +1,118 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:batch="http://www.springframework.org/schema/batch"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:p="http://www.springframework.org/schema/p"
|
||||
xmlns:aop="http://www.springframework.org/schema/aop"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
|
||||
http://www.springframework.org/schema/batch
|
||||
http://www.springframework.org/schema/batch/spring-batch-2.0.xsd
|
||||
http://www.springframework.org/schema/aop
|
||||
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
|
||||
|
||||
<import resource="tradeJobIo.xml" />
|
||||
<batch:job id="tradeJob">
|
||||
<batch:step name="step1" next="step2"/>
|
||||
<batch:step name="step2" next="step3"/>
|
||||
<batch:step name="step3"/>
|
||||
</batch:job>
|
||||
|
||||
<bean id="tradeJob" parent="simpleJob">
|
||||
<property name="steps">
|
||||
<list>
|
||||
<bean id="step1" parent="simpleStep">
|
||||
<property name="transactionAttribute" value="PROPAGATION_REQUIRED,ISOLATION_READ_COMMITTED"/>
|
||||
<property name="streams" ref="fileItemReader" />
|
||||
<property name="itemReader" ref="fileItemReader" />
|
||||
<property name="itemProcessor">
|
||||
<bean class="org.springframework.batch.item.validator.ValidatingItemProcessor">
|
||||
<constructor-arg ref="tradeValidator" />
|
||||
</bean>
|
||||
</property>
|
||||
<property name="itemWriter">
|
||||
<bean
|
||||
class="org.springframework.batch.sample.domain.trade.internal.TradeWriter"
|
||||
p:dao-ref="tradeDao" />
|
||||
</property>
|
||||
</bean>
|
||||
<bean id="step2" parent="simpleStep">
|
||||
<property name="itemReader"
|
||||
ref="tradeSqlItemReader" />
|
||||
<property name="itemWriter">
|
||||
<bean
|
||||
class="org.springframework.batch.sample.domain.trade.internal.CustomerUpdateWriter"
|
||||
p:dao-ref="customerDao" />
|
||||
</property>
|
||||
</bean>
|
||||
<bean id="step3" parent="simpleStep">
|
||||
<property name="itemReader"
|
||||
ref="customerSqlItemReader" />
|
||||
<property name="itemWriter">
|
||||
<bean
|
||||
class="org.springframework.batch.sample.domain.trade.internal.CustomerCreditUpdateWriter"
|
||||
p:dao-ref="customerReportItemWriter" />
|
||||
</property>
|
||||
</bean>
|
||||
</list>
|
||||
<bean id="step1" parent="simpleStep">
|
||||
<property name="transactionAttribute" value="PROPAGATION_REQUIRED,ISOLATION_READ_COMMITTED"/>
|
||||
<property name="streams" ref="fileItemReader" />
|
||||
<property name="itemReader" ref="fileItemReader" />
|
||||
<property name="itemProcessor">
|
||||
<bean class="org.springframework.batch.item.validator.ValidatingItemProcessor">
|
||||
<constructor-arg ref="tradeValidator" />
|
||||
</bean>
|
||||
</property>
|
||||
<property name="itemWriter">
|
||||
<bean class="org.springframework.batch.sample.domain.trade.internal.TradeWriter"
|
||||
p:dao-ref="tradeDao" />
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="step2" parent="simpleStep">
|
||||
<property name="itemReader" ref="tradeSqlItemReader" />
|
||||
<property name="itemWriter">
|
||||
<bean class="org.springframework.batch.sample.domain.trade.internal.CustomerUpdateWriter"
|
||||
p:dao-ref="customerDao" />
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="step3" parent="simpleStep">
|
||||
<property name="itemReader" ref="customerSqlItemReader" />
|
||||
<property name="itemWriter">
|
||||
<bean class="org.springframework.batch.sample.domain.trade.internal.CustomerCreditUpdateWriter"
|
||||
p:dao-ref="customerReportItemWriter" />
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="tradeSqlItemReader"
|
||||
class="org.springframework.batch.item.database.JdbcCursorItemReader">
|
||||
<bean id="tradeSqlItemReader" class="org.springframework.batch.item.database.JdbcCursorItemReader">
|
||||
<property name="dataSource" ref="dataSource" />
|
||||
<property name="sql"
|
||||
value="SELECT id, quantity, price, customer from TRADE" />
|
||||
<property name="sql" value="SELECT id, quantity, price, customer from TRADE" />
|
||||
<property name="mapper">
|
||||
<bean
|
||||
class="org.springframework.batch.sample.domain.trade.internal.TradeRowMapper" />
|
||||
<bean class="org.springframework.batch.sample.domain.trade.internal.TradeRowMapper" />
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="customerSqlItemReader"
|
||||
class="org.springframework.batch.item.database.JdbcCursorItemReader">
|
||||
<bean id="customerSqlItemReader" class="org.springframework.batch.item.database.JdbcCursorItemReader">
|
||||
<property name="dataSource" ref="dataSource" />
|
||||
<property name="sql"
|
||||
value="SELECT id, name, credit FROM customer " />
|
||||
<property name="sql" value="SELECT id, name, credit FROM customer " />
|
||||
<property name="mapper">
|
||||
<bean
|
||||
class="org.springframework.batch.sample.domain.trade.internal.CustomerCreditRowMapper" />
|
||||
<bean class="org.springframework.batch.sample.domain.trade.internal.CustomerCreditRowMapper" />
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="fileLocator"
|
||||
class="org.springframework.core.io.ClassPathResource">
|
||||
<constructor-arg type="java.lang.String"
|
||||
value="data/tradeJob/input/20070122.teststream.ImportTradeDataStep.txt" />
|
||||
<bean id="tradeDao" class="org.springframework.batch.sample.domain.trade.internal.JdbcTradeDao"
|
||||
p:dataSource-ref="dataSource">
|
||||
<property name="incrementer">
|
||||
<bean parent="incrementerParent">
|
||||
<property name="incrementerName" value="TRADE_SEQ" />
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="customerFileLocator"
|
||||
class="org.springframework.core.io.FileSystemResource">
|
||||
<constructor-arg type="java.lang.String"
|
||||
value="target/test-outputs/20070122.testStream.CustomerReportStep.TEMP.txt" />
|
||||
<bean id="customerDao" class="org.springframework.batch.sample.domain.trade.internal.JdbcCustomerDebitDao"
|
||||
p:dataSource-ref="dataSource" />
|
||||
|
||||
<bean id="customerReportItemWriter" class="org.springframework.batch.sample.domain.trade.internal.FlatFileCustomerCreditDao">
|
||||
<property name="itemWriter">
|
||||
<bean class="org.springframework.batch.item.file.FlatFileItemWriter">
|
||||
<property name="resource" value="target/test-outputs/20070122.testStream.CustomerReportStep.TEMP.txt"/>
|
||||
<property name="lineAggregator">
|
||||
<bean class="org.springframework.batch.item.file.transform.PassThroughLineAggregator" />
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="fileItemReader" class="org.springframework.batch.item.file.FlatFileItemReader">
|
||||
<property name="resource" value="classpath:data/tradeJob/input/20070122.teststream.ImportTradeDataStep.txt" />
|
||||
<property name="lineMapper">
|
||||
<bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
|
||||
<property name="lineTokenizer">
|
||||
<bean class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
|
||||
<property name="names" value="ISIN, Quantity, Price, Customer" />
|
||||
</bean>
|
||||
</property>
|
||||
<property name="fieldSetMapper">
|
||||
<bean class="org.springframework.batch.sample.domain.trade.internal.TradeFieldSetMapper" />
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="tradeValidator" class="org.springframework.batch.item.validator.SpringValidator">
|
||||
<property name="validator">
|
||||
<bean class="org.springmodules.validation.valang.ValangValidator">
|
||||
<property name="valang">
|
||||
<value>
|
||||
<![CDATA[{ isin : length(?) < 13 : 'ISIN too long' : 'isin_length' : 12}]]>
|
||||
</value>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
</beans>
|
||||
@@ -1,76 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:p="http://www.springframework.org/schema/p"
|
||||
xmlns:aop="http://www.springframework.org/schema/aop"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
|
||||
http://www.springframework.org/schema/aop
|
||||
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
|
||||
|
||||
|
||||
<bean class="org.springframework.batch.sample.domain.trade.internal.JdbcTradeDao"
|
||||
id="tradeDao" p:dataSource-ref="dataSource">
|
||||
<property name="incrementer">
|
||||
<bean parent="incrementerParent">
|
||||
<property name="incrementerName" value="TRADE_SEQ" />
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean
|
||||
class="org.springframework.batch.sample.domain.trade.internal.JdbcCustomerDebitDao"
|
||||
id="customerDao" p:dataSource-ref="dataSource" />
|
||||
|
||||
<bean
|
||||
class="org.springframework.batch.sample.domain.trade.internal.FlatFileCustomerCreditDao"
|
||||
id="customerReportItemWriter">
|
||||
<property name="itemWriter">
|
||||
<bean
|
||||
class="org.springframework.batch.item.file.FlatFileItemWriter"
|
||||
id="customerFlatFileOutputSource">
|
||||
<property name="resource" ref="customerFileLocator" />
|
||||
<property name="lineAggregator">
|
||||
<bean
|
||||
class="org.springframework.batch.item.file.transform.PassThroughLineAggregator" />
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean class="org.springframework.batch.item.file.FlatFileItemReader"
|
||||
id="fileItemReader">
|
||||
<property name="resource" ref="fileLocator" />
|
||||
<property name="lineMapper">
|
||||
<bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
|
||||
<property name="lineTokenizer" ref="tradeFileDescriptor" />
|
||||
<property name="fieldSetMapper">
|
||||
<bean
|
||||
class="org.springframework.batch.sample.domain.trade.internal.TradeFieldSetMapper" />
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="tradeFileDescriptor"
|
||||
class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
|
||||
<property name="names" value="ISIN, Quantity, Price, Customer" />
|
||||
</bean>
|
||||
|
||||
<bean id="tradeValidator"
|
||||
class="org.springframework.batch.item.validator.SpringValidator">
|
||||
<property name="validator">
|
||||
<bean
|
||||
class="org.springmodules.validation.valang.ValangValidator">
|
||||
<property name="valang">
|
||||
<value>
|
||||
<![CDATA[
|
||||
{ isin : length(?) < 13 : 'ISIN too long' : 'isin_length' : 12}
|
||||
]]>
|
||||
</value>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
</beans>
|
||||
@@ -36,7 +36,6 @@ import org.junit.runner.RunWith;
|
||||
import org.springframework.batch.sample.domain.trade.Trade;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.core.io.FileSystemResource;
|
||||
import org.springframework.core.io.Resource;
|
||||
import org.springframework.jdbc.core.RowCallbackHandler;
|
||||
import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
@@ -126,13 +125,9 @@ public class TradeJobFunctionalTests extends AbstractValidatingBatchLauncherTest
|
||||
assertEquals(customers.size(), activeRow);
|
||||
|
||||
// check content of the output file
|
||||
|
||||
// Clean up
|
||||
((FileSystemResource)applicationContext.getBean("customerFileLocator")).getFile().delete();
|
||||
}
|
||||
|
||||
protected void validatePreConditions() {
|
||||
assertTrue(((Resource)applicationContext.getBean("fileLocator")).exists());
|
||||
}
|
||||
|
||||
private static class Customer {
|
||||
|
||||
Reference in New Issue
Block a user