RESOLVED - issue BATCH-1302: Tidy up samples - remove prefixes for namespaces like beans:

This commit is contained in:
dsyer
2009-06-28 10:11:18 +00:00
parent 3b9b7a96ba
commit 1cf63b9152
22 changed files with 675 additions and 720 deletions

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/batch"
xmlns:beans="http://www.springframework.org/schema/beans"
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
@@ -13,7 +13,7 @@
<!-- The tasklet used in this job will run in an infinite loop. This is useful for testing graceful shutdown from
multiple environments. -->
<job id="loopJob" incrementer="jobParametersIncrementer">
<job id="loopJob" incrementer="jobParametersIncrementer" xmlns="http://www.springframework.org/schema/batch">
<step id="step1">
<tasklet>
<chunk reader="reader" writer="writer" commit-interval="3"/>
@@ -21,10 +21,10 @@
</step>
</job>
<beans:bean id="reader" class="org.springframework.batch.sample.common.InfiniteLoopReader" />
<beans:bean id="writer" class="org.springframework.batch.sample.common.InfiniteLoopWriter" />
<bean id="reader" class="org.springframework.batch.sample.common.InfiniteLoopReader" />
<bean id="writer" class="org.springframework.batch.sample.common.InfiniteLoopWriter" />
<beans:bean id="jobParametersIncrementer"
<bean id="jobParametersIncrementer"
class="org.springframework.batch.sample.common.InfiniteLoopIncrementer"/>
<aop:config>
@@ -41,4 +41,4 @@
</aop:aspect>
</aop:config>
</beans:beans>
</beans>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:batch="http://www.springframework.org/schema/batch" xmlns:aop="http://www.springframework.org/schema/aop"
<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" xmlns="http://www.springframework.org/schema/beans"
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/batch http://www.springframework.org/schema/batch/spring-batch-2.0.xsd

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/batch" xmlns:beans="http://www.springframework.org/schema/beans"
<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="
@@ -8,14 +8,14 @@
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">
<beans:description>
<description>
<![CDATA[Sample showing usage of CompositeItemWriter.
Note that when two writers of the same class are used simultaneously
they need to be distinguished using the 'name' property
(see the two FlatFileItemWriters used in this example).]]>
</beans:description>
</description>
<job id="compositeItemWriterJob">
<job id="compositeItemWriterJob" xmlns="http://www.springframework.org/schema/batch" >
<step id="step1">
<tasklet>
<chunk reader="fileItemReader" processor="processor" writer="compositeWriter"
@@ -32,78 +32,78 @@
<!-- INFRASTRUCTURE SETUP -->
<beans:bean id="compositeWriter" class="org.springframework.batch.item.support.CompositeItemWriter">
<beans:property name="delegates">
<beans:list>
<beans:bean class="org.springframework.batch.sample.domain.trade.internal.TradeWriter">
<beans:property name="dao" ref="tradeDao" />
</beans:bean>
<beans:ref bean="fileItemWriter1" />
<beans:ref bean="fileItemWriter2" />
</beans:list>
</beans:property>
</beans:bean>
<bean id="compositeWriter" class="org.springframework.batch.item.support.CompositeItemWriter">
<property name="delegates">
<list>
<bean class="org.springframework.batch.sample.domain.trade.internal.TradeWriter">
<property name="dao" ref="tradeDao" />
</bean>
<ref bean="fileItemWriter1" />
<ref bean="fileItemWriter2" />
</list>
</property>
</bean>
<beans:bean id="processor" class="org.springframework.batch.item.validator.ValidatingItemProcessor">
<beans:constructor-arg ref="fixedValidator" />
</beans:bean>
<bean id="processor" class="org.springframework.batch.item.validator.ValidatingItemProcessor">
<constructor-arg ref="fixedValidator" />
</bean>
<beans:bean id="fileItemReader" class="org.springframework.batch.item.file.FlatFileItemReader">
<beans:property name="resource"
<bean id="fileItemReader" class="org.springframework.batch.item.file.FlatFileItemReader">
<property name="resource"
value="classpath:data/fixedLengthImportJob/input/20070122.teststream.ImportTradeDataStep.txt" />
<beans:property name="lineMapper">
<beans:bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<beans:property name="lineTokenizer" ref="fixedFileTokenizer" />
<beans:property name="fieldSetMapper" ref="fieldSetMapper" />
</beans:bean>
</beans:property>
</beans:bean>
<property name="lineMapper">
<bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<property name="lineTokenizer" ref="fixedFileTokenizer" />
<property name="fieldSetMapper" ref="fieldSetMapper" />
</bean>
</property>
</bean>
<beans:bean id="fixedFileTokenizer" class="org.springframework.batch.item.file.transform.FixedLengthTokenizer">
<beans:property name="names" value="ISIN, Quantity, Price, Customer" />
<beans:property name="columns" value="1-12, 13-15, 16-20, 21-29" />
</beans:bean>
<bean id="fixedFileTokenizer" class="org.springframework.batch.item.file.transform.FixedLengthTokenizer">
<property name="names" value="ISIN, Quantity, Price, Customer" />
<property name="columns" value="1-12, 13-15, 16-20, 21-29" />
</bean>
<beans:bean id="fixedValidator" class="org.springframework.batch.item.validator.SpringValidator">
<beans:property name="validator">
<beans:bean id="tradeValidator" class="org.springmodules.validation.valang.ValangValidator">
<beans:property name="valang">
<beans:value>
<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}
]]>
</beans:value>
</beans:property>
</beans:bean>
</beans:property>
</beans:bean>
</value>
</property>
</bean>
</property>
</bean>
<beans:bean id="tradeDao" class="org.springframework.batch.sample.domain.trade.internal.JdbcTradeDao">
<beans:property name="dataSource" ref="dataSource" />
<beans:property name="incrementer">
<beans:bean parent="incrementerParent">
<beans:property name="incrementerName" value="TRADE_SEQ" />
</beans:bean>
<bean id="tradeDao" class="org.springframework.batch.sample.domain.trade.internal.JdbcTradeDao">
<property name="dataSource" ref="dataSource" />
<property name="incrementer">
<bean parent="incrementerParent">
<property name="incrementerName" value="TRADE_SEQ" />
</bean>
</beans:property>
</beans:bean>
</property>
</bean>
<beans:bean id="fileItemWriter1" class="org.springframework.batch.item.file.FlatFileItemWriter">
<beans:property name="name" value="fw1" />
<beans:property name="resource" value="file:target/test-outputs/CustomerReport1.txt" />
<beans:property name="lineAggregator">
<beans:bean class="org.springframework.batch.item.file.transform.PassThroughLineAggregator" />
</beans:property>
</beans:bean>
<bean id="fileItemWriter1" class="org.springframework.batch.item.file.FlatFileItemWriter">
<property name="name" value="fw1" />
<property name="resource" value="file:target/test-outputs/CustomerReport1.txt" />
<property name="lineAggregator">
<bean class="org.springframework.batch.item.file.transform.PassThroughLineAggregator" />
</property>
</bean>
<beans:bean id="fileItemWriter2" class="org.springframework.batch.item.file.FlatFileItemWriter">
<beans:property name="name" value="fw2" />
<beans:property name="resource" value="file:target/test-outputs/CustomerReport2.txt" />
<beans:property name="lineAggregator">
<beans:bean class="org.springframework.batch.item.file.transform.PassThroughLineAggregator" />
</beans:property>
</beans:bean>
<bean id="fileItemWriter2" class="org.springframework.batch.item.file.FlatFileItemWriter">
<property name="name" value="fw2" />
<property name="resource" value="file:target/test-outputs/CustomerReport2.txt" />
<property name="lineAggregator">
<bean class="org.springframework.batch.item.file.transform.PassThroughLineAggregator" />
</property>
</bean>
<beans:bean id="fieldSetMapper" class="org.springframework.batch.sample.domain.trade.internal.TradeFieldSetMapper" />
<bean id="fieldSetMapper" class="org.springframework.batch.sample.domain.trade.internal.TradeFieldSetMapper" />
</beans:beans>
</beans>

View File

@@ -1,69 +1,75 @@
<?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"
xmlns:lang="http://www.springframework.org/schema/lang"
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:lang="http://www.springframework.org/schema/lang"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang.xsd
http://www.springframework.org/schema/batch http://www.springframework.org/schema/batch/spring-batch-2.0.xsd">
<job id="customerFilterJob">
<job id="customerFilterJob" xmlns="http://www.springframework.org/schema/batch">
<step id="uploadCustomer">
<tasklet>
<chunk reader="customerFileUploadReader"
processor="customerUpdateProcessor"
writer="customerUpdateWriter"
commit-interval="1"/>
<chunk reader="customerFileUploadReader" processor="customerUpdateProcessor"
writer="customerUpdateWriter" commit-interval="1" />
<listeners>
<listener ref="customerTokenizer"/>
<listener ref="customerTokenizer" />
</listeners>
</tasklet>
</tasklet>
</step>
</job>
<beans:bean id="customerUpdateWriter" class="org.springframework.batch.sample.domain.trade.CustomerUpdateWriter" >
<beans:property name="customerDao" ref="customerDao" />
</beans:bean>
<beans:bean name="customerFileUploadReader" class="org.springframework.batch.item.file.FlatFileItemReader" >
<beans:property name="resource" ref="customerFileResource" />
<beans:property name="lineMapper">
<beans:bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper" >
<beans:property name="lineTokenizer" ref="customerTokenizer" />
<beans:property name="fieldSetMapper" ref="customerMapper" />
</beans:bean>
</beans:property>
<bean id="customerUpdateWriter"
class="org.springframework.batch.sample.domain.trade.CustomerUpdateWriter">
<property name="customerDao" ref="customerDao" />
</bean>
<bean name="customerFileUploadReader"
class="org.springframework.batch.item.file.FlatFileItemReader">
<property name="resource" ref="customerFileResource" />
<property name="lineMapper">
<bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<property name="lineTokenizer" ref="customerTokenizer" />
<property name="fieldSetMapper" ref="customerMapper" />
</bean>
</property>
<!-- skip the header -->
<beans:property name="linesToSkip" value="1" />
</beans:bean>
<beans:bean name="customerMapper" class="org.springframework.batch.sample.domain.trade.CustomerUpdateFieldSetMapper" />
<beans:bean name="customerTokenizer" class="org.springframework.batch.sample.domain.trade.CompositeCustomerUpdateLineTokenizer" >
<beans:property name="customerTokenizer">
<beans:bean class="org.springframework.batch.item.file.transform.FixedLengthTokenizer" >
<beans:property name="columns" value="1,2-18,19-26" />
</beans:bean>
</beans:property>
<beans:property name="footerTokenizer" >
<beans:bean class="org.springframework.batch.item.file.transform.FixedLengthTokenizer">
<beans:property name="columns" value="1,2-8" />
</beans:bean>
</beans:property>
</beans:bean>
<beans:bean name="customerUpdateProcessor" class="org.springframework.batch.sample.domain.trade.CustomerUpdateProcessor" >
<beans:property name="customerDao" ref="customerDao" />
<beans:property name="invalidCustomerLogger" >
<beans:bean class="org.springframework.batch.sample.domain.trade.internal.CommonsLoggingInvalidCustomerLogger" />
</beans:property>
</beans:bean>
<beans:bean name="customerDao" class="org.springframework.batch.sample.domain.trade.internal.JdbcCustomerDao" >
<beans:property name="dataSource" ref="dataSource" />
</beans:bean>
<beans:bean name="customerFileResource" class="org.springframework.core.io.ClassPathResource" >
<beans:constructor-arg value="data/customerFilterJob/input/customers.txt" />
</beans:bean>
</beans:beans>
<property name="linesToSkip" value="1" />
</bean>
<bean name="customerMapper"
class="org.springframework.batch.sample.domain.trade.CustomerUpdateFieldSetMapper" />
<bean name="customerTokenizer"
class="org.springframework.batch.sample.domain.trade.CompositeCustomerUpdateLineTokenizer">
<property name="customerTokenizer">
<bean
class="org.springframework.batch.item.file.transform.FixedLengthTokenizer">
<property name="columns" value="1,2-18,19-26" />
</bean>
</property>
<property name="footerTokenizer">
<bean
class="org.springframework.batch.item.file.transform.FixedLengthTokenizer">
<property name="columns" value="1,2-8" />
</bean>
</property>
</bean>
<bean name="customerUpdateProcessor"
class="org.springframework.batch.sample.domain.trade.CustomerUpdateProcessor">
<property name="customerDao" ref="customerDao" />
<property name="invalidCustomerLogger">
<bean
class="org.springframework.batch.sample.domain.trade.internal.CommonsLoggingInvalidCustomerLogger" />
</property>
</bean>
<bean name="customerDao"
class="org.springframework.batch.sample.domain.trade.internal.JdbcCustomerDao">
<property name="dataSource" ref="dataSource" />
</bean>
<bean name="customerFileResource" class="org.springframework.core.io.ClassPathResource">
<constructor-arg value="data/customerFilterJob/input/customers.txt" />
</bean>
</beans>

View File

@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<beans:beans xmlns="http://www.springframework.org/schema/batch"
xmlns:beans="http://www.springframework.org/schema/beans"
<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"
@@ -11,13 +10,13 @@
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">
<beans: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.
</beans:description>
</description>
<job id="delegateJob">
<job id="delegateJob" xmlns="http://www.springframework.org/schema/batch">
<step id="step1">
<tasklet>
<chunk reader="reader" writer="writer" commit-interval="1"/>
@@ -25,22 +24,22 @@
</step>
</job>
<beans:bean id="reader" class="org.springframework.batch.item.adapter.ItemReaderAdapter">
<beans:property name="targetObject" ref="delegateObject" />
<beans:property name="targetMethod" value="getData" />
</beans:bean>
<bean id="reader" class="org.springframework.batch.item.adapter.ItemReaderAdapter">
<property name="targetObject" ref="delegateObject" />
<property name="targetMethod" value="getData" />
</bean>
<beans:bean id="writer" class="org.springframework.batch.item.adapter.PropertyExtractingDelegatingItemWriter">
<beans:property name="targetObject" ref="delegateObject" />
<beans:property name="targetMethod" value="processPerson" />
<beans:property name="fieldsUsedAsTargetMethodArguments">
<beans:list>
<beans:value>firstName</beans:value>
<beans:value>address.city</beans:value>
</beans:list>
</beans:property>
</beans:bean>
<bean id="writer" class="org.springframework.batch.item.adapter.PropertyExtractingDelegatingItemWriter">
<property name="targetObject" ref="delegateObject" />
<property name="targetMethod" value="processPerson" />
<property name="fieldsUsedAsTargetMethodArguments">
<list>
<value>firstName</value>
<value>address.city</value>
</list>
</property>
</bean>
<beans:bean id="delegateObject" class="org.springframework.batch.sample.domain.person.PersonService" />
<bean id="delegateObject" class="org.springframework.batch.sample.domain.person.PersonService" />
</beans:beans>
</beans>

View File

@@ -1,17 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/batch"
xmlns:beans="http://www.springframework.org/schema/beans"
<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
xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-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
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<job id="footballJob">
<job id="footballJob" xmlns="http://www.springframework.org/schema/batch">
<step id="playerload" next="gameLoad">
<tasklet>
<chunk reader="playerFileItemReader" writer="playerWriter"
@@ -27,77 +23,77 @@
<step id="playerSummarization" parent="summarizationStep" />
</job>
<step id="summarizationStep">
<step id="summarizationStep" xmlns="http://www.springframework.org/schema/batch">
<tasklet>
<chunk reader="playerSummarizationSource" writer="summaryWriter"
commit-interval="${job.commit.interval}" />
</tasklet>
</step>
<beans:bean id="playerWriter" class="org.springframework.batch.sample.domain.football.internal.PlayerItemWriter">
<beans:property name="playerDao">
<beans:bean class="org.springframework.batch.sample.domain.football.internal.JdbcPlayerDao">
<beans:property name="dataSource" ref="dataSource" />
</beans:bean>
</beans:property>
</beans:bean>
<bean id="playerWriter" class="org.springframework.batch.sample.domain.football.internal.PlayerItemWriter">
<property name="playerDao">
<bean class="org.springframework.batch.sample.domain.football.internal.JdbcPlayerDao">
<property name="dataSource" ref="dataSource" />
</bean>
</property>
</bean>
<beans:bean id="gameWriter" class="org.springframework.batch.sample.domain.football.internal.JdbcGameDao">
<beans:property name="dataSource" ref="dataSource" />
</beans:bean>
<bean id="gameWriter" class="org.springframework.batch.sample.domain.football.internal.JdbcGameDao">
<property name="dataSource" ref="dataSource" />
</bean>
<beans:bean id="summaryWriter" class="org.springframework.batch.sample.domain.football.internal.JdbcPlayerSummaryDao">
<beans:property name="dataSource" ref="dataSource" />
</beans:bean>
<bean id="summaryWriter" class="org.springframework.batch.sample.domain.football.internal.JdbcPlayerSummaryDao">
<property name="dataSource" ref="dataSource" />
</bean>
<beans:bean id="playerFileItemReader" class="org.springframework.batch.item.file.FlatFileItemReader">
<beans:property name="resource" value="classpath:data/footballjob/input/${player.file.name}" />
<beans:property name="lineMapper">
<beans:bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<beans:property name="lineTokenizer">
<beans:bean class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
<beans:property name="names" value="ID,lastName,firstName,position,birthYear,debutYear" />
</beans:bean>
</beans:property>
<beans:property name="fieldSetMapper">
<beans:bean class="org.springframework.batch.sample.domain.football.internal.PlayerFieldSetMapper" />
</beans:property>
</beans:bean>
</beans:property>
</beans:bean>
<bean id="playerFileItemReader" class="org.springframework.batch.item.file.FlatFileItemReader">
<property name="resource" value="classpath:data/footballjob/input/${player.file.name}" />
<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="ID,lastName,firstName,position,birthYear,debutYear" />
</bean>
</property>
<property name="fieldSetMapper">
<bean class="org.springframework.batch.sample.domain.football.internal.PlayerFieldSetMapper" />
</property>
</bean>
</property>
</bean>
<beans:bean id="gameFileItemReader" class="org.springframework.batch.item.file.FlatFileItemReader">
<beans:property name="resource" value="classpath:data/footballjob/input/${games.file.name}" />
<beans:property name="lineMapper">
<beans:bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<beans:property name="lineTokenizer">
<beans:bean class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
<beans:property name="names" value="id,year,team,week,opponent,completes,attempts,passingYards,passingTd,interceptions,rushes,rushYards,receptions,receptionYards,totalTd" />
</beans:bean>
</beans:property>
<beans:property name="fieldSetMapper">
<beans:bean class="org.springframework.batch.sample.domain.football.internal.GameFieldSetMapper" />
</beans:property>
</beans:bean>
</beans:property>
</beans:bean>
<bean id="gameFileItemReader" class="org.springframework.batch.item.file.FlatFileItemReader">
<property name="resource" value="classpath:data/footballjob/input/${games.file.name}" />
<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="id,year,team,week,opponent,completes,attempts,passingYards,passingTd,interceptions,rushes,rushYards,receptions,receptionYards,totalTd" />
</bean>
</property>
<property name="fieldSetMapper">
<bean class="org.springframework.batch.sample.domain.football.internal.GameFieldSetMapper" />
</property>
</bean>
</property>
</bean>
<beans:bean id="playerSummarizationSource" class="org.springframework.batch.item.database.JdbcCursorItemReader">
<beans:property name="dataSource" ref="dataSource" />
<beans:property name="rowMapper">
<beans:bean class="org.springframework.batch.sample.domain.football.internal.PlayerSummaryMapper" />
</beans:property>
<beans:property name="sql">
<beans:value>
<bean id="playerSummarizationSource" class="org.springframework.batch.item.database.JdbcCursorItemReader">
<property name="dataSource" ref="dataSource" />
<property name="rowMapper">
<bean class="org.springframework.batch.sample.domain.football.internal.PlayerSummaryMapper" />
</property>
<property name="sql">
<value>
SELECT games.player_id, games.year_no, SUM(COMPLETES),
SUM(ATTEMPTS), SUM(PASSING_YARDS), SUM(PASSING_TD),
SUM(INTERCEPTIONS), SUM(RUSHES), SUM(RUSH_YARDS),
SUM(RECEPTIONS), SUM(RECEPTIONS_YARDS), SUM(TOTAL_TD)
from games, players where players.player_id =
games.player_id group by games.player_id, games.year_no
</beans:value>
</beans:property>
</beans:bean>
</value>
</property>
</bean>
<aop:config>
<aop:aspect id="moduleLogging" ref="logAdvice">
@@ -118,17 +114,17 @@
</aop:aspect>
</aop:config>
<beans:bean id="footballProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<beans:property name="properties">
<beans:value>
<bean id="footballProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="properties">
<value>
games.file.name=games-small.csv
player.file.name=player-small1.csv
job.commit.interval=2
</beans:value>
</beans:property>
<beans:property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
<beans:property name="ignoreUnresolvablePlaceholders" value="true" />
<beans:property name="order" value="1" />
</beans:bean>
</value>
</property>
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
<property name="ignoreUnresolvablePlaceholders" value="true" />
<property name="order" value="1" />
</bean>
</beans:beans>
</beans>

View File

@@ -1,13 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:batch="http://www.springframework.org/schema/batch"
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" xmlns:lang="http://www.springframework.org/schema/lang"
xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/batch http://www.springframework.org/schema/batch/spring-batch-2.0.xsd
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:lang="http://www.springframework.org/schema/lang"
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.xsd
http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang.xsd">
<job id="tradeJob" xmlns="http://www.springframework.org/schema/batch">
<step id="unzip-step" next="zip-step">
@@ -17,25 +14,29 @@
<tasklet ref="zip" />
</step>
</job>
<bean id="unzip" class="org.springframework.batch.core.step.tasklet.MethodInvokingTaskletAdapter" scope="step">
<property name="targetObject" ref="unzip-script"/>
<property name="targetMethod" value="execute"/>
<bean id="unzip"
class="org.springframework.batch.core.step.tasklet.MethodInvokingTaskletAdapter"
scope="step">
<property name="targetObject" ref="unzip-script" />
<property name="targetMethod" value="execute" />
</bean>
<bean id="zip" class="org.springframework.batch.core.step.tasklet.MethodInvokingTaskletAdapter" scope="step">
<property name="targetObject" ref="zip-script"/>
<property name="targetMethod" value="execute"/>
<bean id="zip"
class="org.springframework.batch.core.step.tasklet.MethodInvokingTaskletAdapter"
scope="step">
<property name="targetObject" ref="zip-script" />
<property name="targetMethod" value="execute" />
</bean>
<lang:groovy id="unzip-script">
<lang:inline-script>
class UnzipTasklet {
void execute() {
def ant = new AntBuilder()
ant.unzip(src:"src/main/resources/data/groovyJob/input/files.zip",
dest:"target/groovyJob/staging")
}
void execute() {
def ant = new AntBuilder()
ant.unzip(src:"src/main/resources/data/groovyJob/input/files.zip",
dest:"target/groovyJob/staging")
}
}
</lang:inline-script>
</lang:groovy>
@@ -43,12 +44,12 @@
<lang:groovy id="zip-script">
<lang:inline-script>
class ZipTasklet {
void execute() {
def ant = new AntBuilder()
ant.mkdir(dir:"target/groovyJob/output")
ant.zip(destfile:"target/groovyJob/output/files.zip",
basedir:"target/groovyJob/staging", includes:"**")
}
void execute() {
def ant = new AntBuilder()
ant.mkdir(dir:"target/groovyJob/output")
ant.zip(destfile:"target/groovyJob/output/files.zip",
basedir:"target/groovyJob/staging", includes:"**")
}
}
</lang:inline-script>
</lang:groovy>

View File

@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/batch"
xmlns:beans="http://www.springframework.org/schema/beans"
<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="
@@ -8,11 +7,11 @@
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
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<beans:description>
<description>
Showcases reading and writing of headers and footers. Copies header from input to output and adds a footer.
</beans:description>
</description>
<job id="headerFooterSample">
<job id="headerFooterSample" xmlns="http://www.springframework.org/schema/batch">
<step id="step1">
<tasklet>
<chunk reader="reader" writer="writer" commit-interval="3">
@@ -28,43 +27,43 @@
</step>
</job>
<beans:bean id="reader" class="org.springframework.batch.item.file.FlatFileItemReader">
<beans:property name="resource" ref="inputResource" />
<beans:property name="lineMapper">
<beans:bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<beans:property name="lineTokenizer">
<beans:bean
<bean id="reader" class="org.springframework.batch.item.file.FlatFileItemReader">
<property name="resource" ref="inputResource" />
<property name="lineMapper">
<bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<property name="lineTokenizer">
<bean
class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
<beans:property name="delimiter" value="," />
</beans:bean>
</beans:property>
<beans:property name="fieldSetMapper">
<beans:bean
<property name="delimiter" value="," />
</bean>
</property>
<property name="fieldSetMapper">
<bean
class="org.springframework.batch.item.file.mapping.PassThroughFieldSetMapper" />
</beans:property>
</beans:bean>
</beans:property>
<beans:property name="skippedLinesCallback" ref="headerCopier" />
<beans:property name="linesToSkip" value="1" />
</beans:bean>
<beans:bean id="writer" class="org.springframework.batch.item.file.FlatFileItemWriter">
<beans:property name="resource" ref="outputResource" />
<beans:property name="lineAggregator">
<beans:bean
</property>
</bean>
</property>
<property name="skippedLinesCallback" ref="headerCopier" />
<property name="linesToSkip" value="1" />
</bean>
<bean id="writer" class="org.springframework.batch.item.file.FlatFileItemWriter">
<property name="resource" ref="outputResource" />
<property name="lineAggregator">
<bean
class="org.springframework.batch.item.file.transform.PassThroughLineAggregator" />
</beans:property>
<beans:property name="headerCallback" ref="headerCopier" />
<beans:property name="footerCallback" ref="footerCallback" />
</beans:bean>
<beans:bean id="footerCallback" class="org.springframework.batch.sample.support.SummaryFooterCallback" />
<beans:bean id="headerCopier"
</property>
<property name="headerCallback" ref="headerCopier" />
<property name="footerCallback" ref="footerCallback" />
</bean>
<bean id="footerCallback" class="org.springframework.batch.sample.support.SummaryFooterCallback" />
<bean id="headerCopier"
class="org.springframework.batch.sample.support.HeaderCopyCallback" />
<beans:bean id="inputResource" class="org.springframework.core.io.ClassPathResource">
<beans:constructor-arg type="java.lang.String"
<bean id="inputResource" class="org.springframework.core.io.ClassPathResource">
<constructor-arg type="java.lang.String"
value="data/headerFooterSample/input.txt" />
</beans:bean>
<beans:bean id="outputResource" class="org.springframework.core.io.FileSystemResource">
<beans:constructor-arg type="java.lang.String"
</bean>
<bean id="outputResource" class="org.springframework.core.io.FileSystemResource">
<constructor-arg type="java.lang.String"
value="target/test-outputs/headerFooterOutput.txt" />
</beans:bean>
</beans:beans>
</bean>
</beans>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/batch" xmlns:beans="http://www.springframework.org/schema/beans"
<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="
@@ -8,9 +8,9 @@
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<beans:description>Example for Hibernate integration.</beans:description>
<description>Example for Hibernate integration.</description>
<job id="hibernateJob" restartable="false">
<job id="hibernateJob" restartable="false" xmlns="http://www.springframework.org/schema/batch">
<step id="step1">
<tasklet>
<chunk reader="hibernateItemReader"
@@ -26,24 +26,24 @@
</step>
</job>
<beans:bean id="creditIncreaseProcessor"
<bean id="creditIncreaseProcessor"
class="org.springframework.batch.sample.domain.trade.internal.CustomerCreditIncreaseProcessor" />
<beans:bean id="hibernateCreditWriter"
<bean id="hibernateCreditWriter"
class="org.springframework.batch.sample.domain.trade.internal.HibernateAwareCustomerCreditItemWriter">
<beans:property name="sessionFactory" ref="sessionFactory" />
<beans:property name="dao" ref="customerCreditDao" />
</beans:bean>
<property name="sessionFactory" ref="sessionFactory" />
<property name="dao" ref="customerCreditDao" />
</bean>
<beans:bean id="customerCreditDao"
<bean id="customerCreditDao"
class="org.springframework.batch.sample.domain.trade.internal.HibernateCreditDao">
<beans:property name="sessionFactory" ref="sessionFactory" />
</beans:bean>
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<beans:bean id="hibernateItemReader"
<bean id="hibernateItemReader"
class="org.springframework.batch.item.database.HibernateCursorItemReader">
<beans:property name="queryString" value="from CustomerCredit" />
<beans:property name="sessionFactory" ref="sessionFactory" />
</beans:bean>
<property name="queryString" value="from CustomerCredit" />
<property name="sessionFactory" ref="sessionFactory" />
</bean>
</beans:beans>
</beans>

View File

@@ -1,26 +1,19 @@
<?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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:p="http://www.springframework.org/schema/p"
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
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
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">
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.0.xsd">
<job id="ioSampleJob">
<job id="ioSampleJob" xmlns="http://www.springframework.org/schema/batch">
<step id="step1">
<tasklet>
<chunk reader="itemReader" processor="itemProcessor" writer="itemWriter" commit-interval="2"/>
<chunk reader="itemReader" processor="itemProcessor" writer="itemWriter"
commit-interval="2" />
</tasklet>
</step>
</job>
<beans:bean id="itemProcessor" class="org.springframework.batch.sample.domain.trade.internal.CustomerCreditIncreaseProcessor" />
<bean id="itemProcessor"
class="org.springframework.batch.sample.domain.trade.internal.CustomerCreditIncreaseProcessor" />
</beans:beans>
</beans>

View File

@@ -1,17 +1,10 @@
<?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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:p="http://www.springframework.org/schema/p"
<beans xmlns="http://www.springframework.org/schema/beans"
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/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
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
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.0.xsd">
<job id="loopFlowSample">
<job id="loopFlowSample" xmlns="http://www.springframework.org/schema/batch">
<step id="step1" next="step2">
<tasklet>
<chunk reader="itemGenerator" writer="itemWriter" commit-interval="1"/>
@@ -34,18 +27,18 @@
</decision>
</job>
<beans:bean id="itemGenerator" class="org.springframework.batch.sample.domain.trade.internal.GeneratingTradeItemReader">
<beans:property name="limit" value="1" />
</beans:bean>
<bean id="itemGenerator" class="org.springframework.batch.sample.domain.trade.internal.GeneratingTradeItemReader">
<property name="limit" value="1" />
</bean>
<beans:bean id="itemWriter" class="org.springframework.batch.sample.domain.trade.internal.ItemTrackingTradeItemWriter" />
<bean id="itemWriter" class="org.springframework.batch.sample.domain.trade.internal.ItemTrackingTradeItemWriter" />
<beans:bean id="limitDecider" class="org.springframework.batch.sample.loopFlow.LimitDecider">
<beans:property name="limit" value="9" />
</beans:bean>
<bean id="limitDecider" class="org.springframework.batch.sample.loopFlow.LimitDecider">
<property name="limit" value="9" />
</bean>
<beans:bean id="resettingListener" class="org.springframework.batch.sample.loopFlow.GeneratingTradeResettingListener">
<beans:property name="reader" ref="itemGenerator" />
</beans:bean>
<bean id="resettingListener" class="org.springframework.batch.sample.loopFlow.GeneratingTradeResettingListener">
<property name="reader" ref="itemGenerator" />
</bean>
</beans:beans>
</beans>

View File

@@ -1,47 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:batch="http://www.springframework.org/schema/batch"
xmlns="http://www.springframework.org/schema/beans"
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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">
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.0.xsd">
<batch:job id="multilineJob">
<batch:step id="step1">
<batch:tasklet>
<batch:chunk reader="reader" writer="writer" commit-interval="1">
<batch:streams>
<batch:stream ref="fileItemReader"/>
</batch:streams>
</batch:chunk>
</batch:tasklet>
</batch:step>
</batch:job>
<job id="multilineJob" xmlns="http://www.springframework.org/schema/batch">
<step id="step1">
<tasklet>
<chunk reader="reader" writer="writer" commit-interval="1">
<streams>
<stream ref="fileItemReader" />
</streams>
</chunk>
</tasklet>
</step>
</job>
<bean id="reader" class="org.springframework.batch.sample.domain.multiline.AggregateItemReader">
<bean id="reader"
class="org.springframework.batch.sample.domain.multiline.AggregateItemReader">
<property name="itemReader" ref="fileItemReader" />
</bean>
<bean id="writer" class="org.springframework.batch.item.file.FlatFileItemWriter">
<property name="resource" value="file:target/test-outputs/20070122.testStream.multilineStep.txt" />
<property name="resource"
value="file:target/test-outputs/20070122.testStream.multilineStep.txt" />
<property name="lineAggregator">
<bean class="org.springframework.batch.item.file.transform.PassThroughLineAggregator"/>
<bean
class="org.springframework.batch.item.file.transform.PassThroughLineAggregator" />
</property>
</bean>
<bean id="fileItemReader"
class="org.springframework.batch.item.file.FlatFileItemReader">
<bean id="fileItemReader" class="org.springframework.batch.item.file.FlatFileItemReader">
<property name="resource"
value="classpath:data/multilineJob/input/20070122.teststream.multilineStep.txt" />
<property name="lineMapper">
<bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<property name="lineTokenizer" ref="fixedFileDescriptor" />
<property name="fieldSetMapper">
<bean class="org.springframework.batch.sample.domain.multiline.AggregateItemFieldSetMapper">
<bean
class="org.springframework.batch.sample.domain.multiline.AggregateItemFieldSetMapper">
<property name="delegate" ref="tradeLineMapper" />
</bean>
</property>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:batch="http://www.springframework.org/schema/batch"
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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
@@ -12,18 +12,18 @@
<import resource="multilineOrderOutputAggregators.xml" />
<import resource="multilineOrderValidator.xml" />
<batch:job id="multilineOrderJob">
<batch:step id="step1">
<batch:tasklet>
<batch:chunk reader="reader" processor="processor" writer="fileItemWriter" commit-interval="5">
<batch:streams>
<batch:stream ref="fileItemReader"/>
<batch:stream ref="fileItemWriter"/>
</batch:streams>
</batch:chunk>
</batch:tasklet>
</batch:step>
</batch:job>
<job id="multilineOrderJob" xmlns="http://www.springframework.org/schema/batch">
<step id="step1">
<tasklet>
<chunk reader="reader" processor="processor" writer="fileItemWriter" commit-interval="5">
<streams>
<stream ref="fileItemReader"/>
<stream ref="fileItemWriter"/>
</streams>
</chunk>
</tasklet>
</step>
</job>
<bean id="reader" class="org.springframework.batch.sample.domain.order.internal.OrderItemReader">
<property name="fieldSetReader" ref="fileItemReader" />

View File

@@ -1,17 +1,12 @@
<?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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:p="http://www.springframework.org/schema/p"
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
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
xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-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
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<job id="parallelJob">
<job id="parallelJob" xmlns="http://www.springframework.org/schema/batch">
<step id="staging" next="loading">
<tasklet>
<chunk reader="fileItemReader"
@@ -33,85 +28,85 @@
<!-- INFRASTRUCTURE SETUP -->
<beans:bean id="validatingProcessor" class="org.springframework.batch.item.validator.ValidatingItemProcessor">
<beans:constructor-arg ref="fixedValidator" />
</beans:bean>
<bean id="validatingProcessor" class="org.springframework.batch.item.validator.ValidatingItemProcessor">
<constructor-arg ref="fixedValidator" />
</bean>
<beans:bean id="stagingItemWriter" class="org.springframework.batch.sample.common.StagingItemWriter">
<beans:property name="dataSource" ref="dataSource" />
<beans:property name="incrementer">
<beans:bean parent="incrementerParent">
<beans:property name="incrementerName" value="BATCH_STAGING_SEQ" />
</beans:bean>
</beans:property>
</beans:bean>
<bean id="stagingItemWriter" class="org.springframework.batch.sample.common.StagingItemWriter">
<property name="dataSource" ref="dataSource" />
<property name="incrementer">
<bean parent="incrementerParent">
<property name="incrementerName" value="BATCH_STAGING_SEQ" />
</bean>
</property>
</bean>
<beans:bean id="taskExecutor" class="org.springframework.core.task.SimpleAsyncTaskExecutor" />
<bean id="taskExecutor" class="org.springframework.core.task.SimpleAsyncTaskExecutor" />
<beans:bean id="stagingReader" class="org.springframework.batch.sample.common.StagingItemReader">
<beans:property name="dataSource" ref="dataSource" />
</beans:bean>
<bean id="stagingReader" class="org.springframework.batch.sample.common.StagingItemReader">
<property name="dataSource" ref="dataSource" />
</bean>
<beans:bean id="stagingProcessor" class="org.springframework.batch.sample.common.StagingItemProcessor">
<beans:property name="dataSource" ref="dataSource" />
</beans:bean>
<bean id="stagingProcessor" class="org.springframework.batch.sample.common.StagingItemProcessor">
<property name="dataSource" ref="dataSource" />
</bean>
<beans:bean id="tradeWriter" class="org.springframework.batch.sample.domain.trade.internal.TradeWriter">
<beans:property name="dao" ref="tradeDao" />
</beans:bean>
<bean id="tradeWriter" class="org.springframework.batch.sample.domain.trade.internal.TradeWriter">
<property name="dao" ref="tradeDao" />
</bean>
<!--
This input source is injected into the test case to verify the output
- not used by the job at all
-->
<beans:bean id="testItemReader" class="org.springframework.batch.item.file.FlatFileItemReader">
<beans:property name="resource"
<bean id="testItemReader" class="org.springframework.batch.item.file.FlatFileItemReader">
<property name="resource"
value="classpath:data/fixedLengthImportJob/input/20070122.teststream.ImportTradeDataStep.txt" />
<beans:property name="lineMapper">
<beans:bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<beans:property name="lineTokenizer" ref="fixedFileTokenizer" />
<beans:property name="fieldSetMapper" ref="fieldSetMapper" />
</beans:bean>
</beans:property>
</beans:bean>
<property name="lineMapper">
<bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<property name="lineTokenizer" ref="fixedFileTokenizer" />
<property name="fieldSetMapper" ref="fieldSetMapper" />
</bean>
</property>
</bean>
<beans:bean id="fileItemReader" parent="testItemReader"
<bean id="fileItemReader" parent="testItemReader"
autowire-candidate="false">
</beans:bean>
</bean>
<beans:bean id="fixedFileTokenizer"
<bean id="fixedFileTokenizer"
class="org.springframework.batch.item.file.transform.FixedLengthTokenizer">
<beans:property name="names" value="ISIN, Quantity, Price, Customer" />
<beans:property name="columns" value="1-12, 13-15, 16-20, 21-29" />
</beans:bean>
<property name="names" value="ISIN, Quantity, Price, Customer" />
<property name="columns" value="1-12, 13-15, 16-20, 21-29" />
</bean>
<beans:bean id="fixedValidator"
<bean id="fixedValidator"
class="org.springframework.batch.item.validator.SpringValidator">
<beans:property name="validator">
<beans:bean id="tradeValidator" class="org.springmodules.validation.valang.ValangValidator">
<beans:property name="valang">
<beans:value>
<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}
]]>
</beans:value>
</beans:property>
</beans:bean>
</beans:property>
</beans:bean>
</value>
</property>
</bean>
</property>
</bean>
<beans:bean id="tradeDao"
<bean id="tradeDao"
class="org.springframework.batch.sample.domain.trade.internal.JdbcTradeDao">
<beans:property name="dataSource" ref="dataSource" />
<beans:property name="incrementer">
<beans:bean parent="incrementerParent">
<beans:property name="incrementerName" value="TRADE_SEQ" />
</beans:bean>
<property name="dataSource" ref="dataSource" />
<property name="incrementer">
<bean parent="incrementerParent">
<property name="incrementerName" value="TRADE_SEQ" />
</bean>
</beans:property>
</beans:bean>
</property>
</bean>
<beans:bean id="fieldSetMapper"
<bean id="fieldSetMapper"
class="org.springframework.batch.sample.domain.trade.internal.TradeFieldSetMapper" />
<aop:config>
@@ -122,4 +117,4 @@
</aop:aspect>
</aop:config>
</beans:beans>
</beans>

View File

@@ -1,17 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:batch="http://www.springframework.org/schema/batch" 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" xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-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
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">
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<batch:job id="partitionJob">
<batch:step id="step" parent="step1:master" />
</batch:job>
<job id="partitionJob" xmlns="http://www.springframework.org/schema/batch">
<step id="step" parent="step1:master" />
</job>
<bean name="step1:master" class="org.springframework.batch.core.partition.support.PartitionStep">
<property name="jobRepository" ref="jobRepository" />
@@ -36,14 +33,14 @@
</property>
</bean>
<batch:step id="step1">
<batch:tasklet job-repository="jobRepository" transaction-manager="transactionManager">
<batch:chunk writer="itemWriter" reader="itemReader" processor="itemProcessor" commit-interval="5" />
<batch:listeners>
<batch:listener ref="fileNameListener" />
</batch:listeners>
</batch:tasklet>
</batch:step>
<step id="step1" xmlns="http://www.springframework.org/schema/batch">
<tasklet job-repository="jobRepository" transaction-manager="transactionManager">
<chunk writer="itemWriter" reader="itemReader" processor="itemProcessor" commit-interval="5" />
<listeners>
<listener ref="fileNameListener" />
</listeners>
</tasklet>
</step>
<bean id="fileNameListener" class="org.springframework.batch.sample.common.OutputFileListener" scope="step"/>

View File

@@ -1,66 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:batch="http://www.springframework.org/schema/batch"
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"
xmlns:util="http://www.springframework.org/schema/util"
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
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">
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.0.xsd">
<batch:job id="ioSampleJob">
<batch:step id="step1">
<batch:tasklet>
<batch:chunk reader="itemReader" processor="itemProcessor" writer="itemWriter" commit-interval="5"/>
</batch:tasklet>
</batch:step>
</batch:job>
<job id="ioSampleJob" xmlns="http://www.springframework.org/schema/batch">
<step id="step1">
<tasklet>
<chunk reader="itemReader" processor="itemProcessor" writer="itemWriter"
commit-interval="5" />
</tasklet>
</step>
</job>
<bean id="itemReaderParent" class="org.springframework.batch.item.file.FlatFileItemReader" abstract="true">
<bean id="itemReaderParent" class="org.springframework.batch.item.file.FlatFileItemReader"
abstract="true">
<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="delimiter" value=","/>
<bean
class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
<property name="delimiter" value="," />
<property name="names" value="name,credit" />
</bean>
</property>
<property name="fieldSetMapper">
<bean class="org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper">
<property name="targetType" value="org.springframework.batch.sample.domain.trade.CustomerCredit" />
<bean
class="org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper">
<property name="targetType"
value="org.springframework.batch.sample.domain.trade.CustomerCredit" />
</bean>
</property>
</bean>
</property>
</bean>
<bean id="itemReader" parent="itemReaderParent" scope="step" autowire-candidate="false">
<bean id="itemReader" parent="itemReaderParent" scope="step"
autowire-candidate="false">
<property name="resource" value="data/restartFileSample/input/restartFile.csv" />
</bean>
<bean id="itemProcessor" class="org.springframework.batch.sample.domain.trade.internal.CustomerCreditIncreaseProcessor" />
<bean id="itemProcessor"
class="org.springframework.batch.sample.domain.trade.internal.CustomerCreditIncreaseProcessor" />
<bean id="itemWriter" class="org.springframework.batch.sample.RestartFileSampleFunctionalTests$CustomerCreditFlatFileItemWriter">
<bean id="itemWriter"
class="org.springframework.batch.sample.RestartFileSampleFunctionalTests$CustomerCreditFlatFileItemWriter">
<property name="resource" ref="outputResource" />
<property name="lineAggregator">
<bean class="org.springframework.batch.item.file.transform.DelimitedLineAggregator">
<property name="delimiter" value=","/>
<bean
class="org.springframework.batch.item.file.transform.DelimitedLineAggregator">
<property name="delimiter" value="," />
<property name="fieldExtractor">
<bean class="org.springframework.batch.item.file.transform.BeanWrapperFieldExtractor">
<property name="names" value="name,credit"/>
<bean
class="org.springframework.batch.item.file.transform.BeanWrapperFieldExtractor">
<property name="names" value="name,credit" />
</bean>
</property>
</bean>
</property>
</bean>
<bean id="outputResource" class="org.springframework.core.io.FileSystemResource">
<constructor-arg value="target/test-outputs/restartFileOutput.csv" />
<constructor-arg value="target/test-outputs/restartFileOutput.csv" />
</bean>
</beans>

View File

@@ -1,14 +1,10 @@
<?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:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p"
<beans xmlns="http://www.springframework.org/schema/beans"
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/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
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
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.0.xsd">
<job id="restartSampleJob" restartable="true">
<job id="restartSampleJob" restartable="true" xmlns="http://www.springframework.org/schema/batch">
<step id="step1">
<tasklet>
<chunk reader="itemReader" processor="processor" writer="tradeWriter" commit-interval="2">
@@ -22,58 +18,58 @@
<!-- INFRASTRUCTURE SETUP -->
<beans:bean id="processor" class="org.springframework.batch.item.validator.ValidatingItemProcessor">
<beans:constructor-arg ref="fixedValidator" />
</beans:bean>
<bean id="processor" class="org.springframework.batch.item.validator.ValidatingItemProcessor">
<constructor-arg ref="fixedValidator" />
</bean>
<beans:bean id="tradeWriter" class="org.springframework.batch.sample.domain.trade.internal.TradeWriter">
<beans:property name="dao" ref="tradeDao" />
</beans:bean>
<bean id="tradeWriter" class="org.springframework.batch.sample.domain.trade.internal.TradeWriter">
<property name="dao" ref="tradeDao" />
</bean>
<beans:bean id="itemReader" class="org.springframework.batch.sample.support.ExceptionThrowingItemReaderProxy">
<beans:property name="delegate" ref="fileItemReader" />
</beans:bean>
<bean id="itemReader" class="org.springframework.batch.sample.support.ExceptionThrowingItemReaderProxy">
<property name="delegate" ref="fileItemReader" />
</bean>
<beans:bean id="fileItemReader" class="org.springframework.batch.item.file.FlatFileItemReader" scope="step">
<beans:property name="resource" value="#{jobParameters['input.file']}" />
<beans:property name="lineMapper">
<beans:bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<beans:property name="lineTokenizer" ref="fixedFileTokenizer" />
<beans:property name="fieldSetMapper" ref="fieldSetMapper" />
</beans:bean>
</beans:property>
<beans:property name="saveState" value="true" />
</beans:bean>
<bean id="fileItemReader" class="org.springframework.batch.item.file.FlatFileItemReader" scope="step">
<property name="resource" value="#{jobParameters['input.file']}" />
<property name="lineMapper">
<bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<property name="lineTokenizer" ref="fixedFileTokenizer" />
<property name="fieldSetMapper" ref="fieldSetMapper" />
</bean>
</property>
<property name="saveState" value="true" />
</bean>
<beans:bean id="fixedFileTokenizer" class="org.springframework.batch.item.file.transform.FixedLengthTokenizer">
<beans:property name="names" value="ISIN, Quantity, Price, Customer" />
<beans:property name="columns" value="1-12, 13-15, 16-20, 21-29" />
</beans:bean>
<bean id="fixedFileTokenizer" class="org.springframework.batch.item.file.transform.FixedLengthTokenizer">
<property name="names" value="ISIN, Quantity, Price, Customer" />
<property name="columns" value="1-12, 13-15, 16-20, 21-29" />
</bean>
<beans:bean id="fixedValidator" class="org.springframework.batch.item.validator.SpringValidator">
<beans:property name="validator">
<beans:bean id="tradeValidator" class="org.springmodules.validation.valang.ValangValidator">
<beans:property name="valang">
<beans:value>
<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}
]]>
</beans:value>
</beans:property>
</beans:bean>
</beans:property>
</beans:bean>
</value>
</property>
</bean>
</property>
</bean>
<beans:bean id="tradeDao" class="org.springframework.batch.sample.domain.trade.internal.JdbcTradeDao">
<beans:property name="dataSource" ref="dataSource" />
<beans:property name="incrementer">
<beans:bean parent="incrementerParent">
<beans:property name="incrementerName" value="TRADE_SEQ" />
</beans:bean>
<bean id="tradeDao" class="org.springframework.batch.sample.domain.trade.internal.JdbcTradeDao">
<property name="dataSource" ref="dataSource" />
<property name="incrementer">
<bean parent="incrementerParent">
<property name="incrementerName" value="TRADE_SEQ" />
</bean>
</beans:property>
</beans:bean>
</property>
</bean>
<beans:bean id="fieldSetMapper" class="org.springframework.batch.sample.domain.trade.internal.TradeFieldSetMapper" />
<bean id="fieldSetMapper" class="org.springframework.batch.sample.domain.trade.internal.TradeFieldSetMapper" />
</beans:beans>
</beans>

View File

@@ -1,17 +1,10 @@
<?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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:p="http://www.springframework.org/schema/p"
<beans xmlns="http://www.springframework.org/schema/beans"
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/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
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
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.0.xsd">
<job id="retrySample">
<job id="retrySample" xmlns="http://www.springframework.org/schema/batch">
<step id="step1">
<tasklet>
<chunk reader="itemGenerator"
@@ -26,10 +19,10 @@
</step>
</job>
<beans:bean id="itemGenerator" class="org.springframework.batch.sample.domain.trade.internal.GeneratingTradeItemReader">
<beans:property name="limit" value="10" />
</beans:bean>
<bean id="itemGenerator" class="org.springframework.batch.sample.domain.trade.internal.GeneratingTradeItemReader">
<property name="limit" value="10" />
</bean>
<beans:bean id="itemWriter" class="org.springframework.batch.sample.support.RetrySampleItemWriter" />
<bean id="itemWriter" class="org.springframework.batch.sample.support.RetrySampleItemWriter" />
</beans:beans>
</beans>

View File

@@ -1,18 +1,10 @@
<?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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:p="http://www.springframework.org/schema/p"
<beans xmlns="http://www.springframework.org/schema/beans"
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/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">
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.xsd">
<job id="skipJob" incrementer="incrementer">
<job id="skipJob" incrementer="incrementer" xmlns="http://www.springframework.org/schema/batch">
<step id="step1" parent="baseStep">
<tasklet>
<chunk reader="fileItemReader" processor="tradeProcessor" writer="tradeWriter"
@@ -46,7 +38,7 @@
</step>
</job>
<step id="secondPass" parent="t2">
<step id="secondPass" parent="t2" xmlns="http://www.springframework.org/schema/batch">
<tasklet>
<chunk writer="itemTrackingWriter">
<skippable-exception-classes merge="true">
@@ -56,9 +48,9 @@
</tasklet>
</step>
<step id="t2" parent="t3" abstract="true"/>
<step id="t2" parent="t3" abstract="true" xmlns="http://www.springframework.org/schema/batch"/>
<step id="t3" parent="baseStep" abstract="true">
<step id="t3" parent="baseStep" abstract="true" xmlns="http://www.springframework.org/schema/batch">
<tasklet>
<chunk reader="tradeSqlItemReader" processor="tradeProcessor" writer="dummyWriter"
commit-interval="2" skip-limit="10">
@@ -69,7 +61,7 @@
</tasklet>
</step>
<step id="baseStep" abstract="true">
<step id="baseStep" abstract="true" xmlns="http://www.springframework.org/schema/batch">
<tasklet>
<listeners>
<listener class="org.springframework.batch.sample.common.SkipCheckingListener"/>
@@ -78,54 +70,55 @@
</tasklet>
</step>
<beans:bean id="dummyWriter" class="org.springframework.batch.sample.support.DummyItemWriter"/>
<bean id="dummyWriter" class="org.springframework.batch.sample.support.DummyItemWriter"/>
<beans:bean id="promotionListener" class="org.springframework.batch.core.listener.ExecutionContextPromotionListener" scope="step">
<beans:property name="keys" value="stepName"/>
</beans:bean>
<bean id="promotionListener" class="org.springframework.batch.core.listener.ExecutionContextPromotionListener" scope="step">
<property name="keys" value="stepName"/>
</bean>
<beans:bean id="fileItemReader" class="org.springframework.batch.item.file.FlatFileItemReader" scope="step">
<beans:property name="resource" value="classpath:/data/skipJob/input/input#{jobParameters[run.id]}.txt" />
<beans:property name="lineMapper">
<beans:bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<beans:property name="lineTokenizer">
<beans:bean class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
<beans:property name="names" value="ISIN, Quantity, Price, Customer" />
</beans:bean>
</beans:property>
<beans:property name="fieldSetMapper">
<beans:bean class="org.springframework.batch.sample.domain.trade.internal.TradeFieldSetMapper" />
</beans:property>
</beans:bean>
</beans:property>
</beans: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>
<beans:bean id="tradeProcessor" class="org.springframework.batch.sample.domain.trade.internal.TradeProcessor"/>
<bean id="tradeProcessor" class="org.springframework.batch.sample.domain.trade.internal.TradeProcessor"/>
<beans:bean id="tradeSqlItemReader" class="org.springframework.batch.item.database.JdbcCursorItemReader">
<beans:property name="dataSource" ref="dataSource" />
<beans:property name="sql" value="SELECT isin, quantity, price, customer from TRADE" />
<beans:property name="rowMapper">
<beans:bean class="org.springframework.batch.sample.domain.trade.internal.TradeRowMapper" />
</beans:property>
</beans: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="rowMapper">
<bean class="org.springframework.batch.sample.domain.trade.internal.TradeRowMapper" />
</property>
</bean>
<beans:bean id="customerReportItemWriter" class="org.springframework.batch.sample.domain.trade.internal.FlatFileCustomerCreditDao">
<beans:property name="itemWriter">
<beans:bean id="customerFlatFileOutputSource" class="org.springframework.batch.item.file.FlatFileItemWriter">
<beans:property name="resource" value="target/test-outputs/20070122.testStream.CustomerReportStep.TEMP.txt" />
<beans:property name="lineAggregator">
<beans:bean class="org.springframework.batch.item.file.transform.PassThroughLineAggregator" />
</beans:property>
</beans:bean>
</beans:property>
</beans: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>
<beans:bean id="errorLogTasklet" class="org.springframework.batch.sample.common.ErrorLogTasklet">
<beans:property name="dataSource" ref="dataSource"/>
</beans:bean>
<bean id="errorLogTasklet" class="org.springframework.batch.sample.common.ErrorLogTasklet">
<property name="dataSource" ref="dataSource"/>
</bean>
<beans:bean id="skipCheckingDecider" class="org.springframework.batch.sample.common.SkipCheckingDecider"/>
<bean id="skipCheckingDecider" class="org.springframework.batch.sample.common.SkipCheckingDecider"/>
<beans:bean id="incrementer" class="org.springframework.batch.sample.common.InfiniteLoopIncrementer"/>
</beans:beans>
<bean id="incrementer" class="org.springframework.batch.sample.common.InfiniteLoopIncrementer"/>
</beans>

View File

@@ -1,6 +1,6 @@
<?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:batch="http://www.springframework.org/schema/batch"
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.0.xsd"
xmlns:p="http://www.springframework.org/schema/p">
@@ -15,13 +15,13 @@
<bean class="org.springframework.batch.core.scope.StepScope"
p:proxyTargetClass="true" />
<batch:job id="loopJob">
<batch:step id="step1">
<batch:tasklet ref="adapter">
<batch:transaction-attributes propagation="REQUIRED"/>
</batch:tasklet>
</batch:step>
</batch:job>
<job id="loopJob" xmlns="http://www.springframework.org/schema/batch">
<step id="step1">
<tasklet ref="adapter">
<transaction-attributes propagation="REQUIRED"/>
</tasklet>
</step>
</job>
<bean id="adapter"
class="org.springframework.batch.core.step.tasklet.MethodInvokingTaskletAdapter">

View File

@@ -1,15 +1,11 @@
<?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:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p"
<beans xmlns="http://www.springframework.org/schema/beans"
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/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">
xmlns:p="http://www.springframework.org/schema/p"
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.xsd">
<job id="tradeJob">
<job id="tradeJob" xmlns="http://www.springframework.org/schema/batch">
<step id="step1" next="step2">
<tasklet>
<chunk reader="fileItemReader" processor="validatingProcessor" writer="tradeWriter"
@@ -33,87 +29,87 @@
</step>
</job>
<beans:bean id="validatingProcessor" class="org.springframework.batch.item.validator.ValidatingItemProcessor">
<beans:constructor-arg ref="tradeValidator" />
</beans:bean>
<bean id="validatingProcessor" class="org.springframework.batch.item.validator.ValidatingItemProcessor">
<constructor-arg ref="tradeValidator" />
</bean>
<beans:bean id="tradeWriter" class="org.springframework.batch.sample.domain.trade.internal.TradeWriter">
<beans:property name="dao" ref="tradeDao" />
</beans:bean>
<bean id="tradeWriter" class="org.springframework.batch.sample.domain.trade.internal.TradeWriter">
<property name="dao" ref="tradeDao" />
</bean>
<beans:bean id="customerWriter" class="org.springframework.batch.sample.domain.trade.internal.CustomerUpdateWriter">
<beans:property name="dao" ref="customerDao" />
</beans:bean>
<bean id="customerWriter" class="org.springframework.batch.sample.domain.trade.internal.CustomerUpdateWriter">
<property name="dao" ref="customerDao" />
</bean>
<beans:bean id="creditWriter" class="org.springframework.batch.sample.domain.trade.internal.CustomerCreditUpdateWriter">
<beans:property name="dao" ref="customerReportItemWriter" />
</beans:bean>
<bean id="creditWriter" class="org.springframework.batch.sample.domain.trade.internal.CustomerCreditUpdateWriter">
<property name="dao" ref="customerReportItemWriter" />
</bean>
<beans:bean id="tradeSqlItemReader" class="org.springframework.batch.item.database.JdbcCursorItemReader">
<beans:property name="dataSource" ref="dataSource" />
<beans:property name="sql" value="SELECT id, quantity, price, customer from TRADE" />
<beans:property name="rowMapper">
<beans:bean class="org.springframework.batch.sample.domain.trade.internal.TradeRowMapper" />
</beans:property>
</beans:bean>
<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="rowMapper">
<bean class="org.springframework.batch.sample.domain.trade.internal.TradeRowMapper" />
</property>
</bean>
<beans:bean id="customerSqlItemReader" class="org.springframework.batch.item.database.JdbcCursorItemReader">
<beans:property name="dataSource" ref="dataSource" />
<beans:property name="sql" value="SELECT id, name, credit FROM customer " />
<beans:property name="rowMapper">
<beans:bean class="org.springframework.batch.sample.domain.trade.internal.CustomerCreditRowMapper" />
</beans:property>
</beans: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="rowMapper">
<bean class="org.springframework.batch.sample.domain.trade.internal.CustomerCreditRowMapper" />
</property>
</bean>
<beans:bean id="tradeDao" class="org.springframework.batch.sample.domain.trade.internal.JdbcTradeDao"
<bean id="tradeDao" class="org.springframework.batch.sample.domain.trade.internal.JdbcTradeDao"
p:dataSource-ref="dataSource">
<beans:property name="incrementer">
<beans:bean parent="incrementerParent">
<beans:property name="incrementerName" value="TRADE_SEQ" />
</beans:bean>
</beans:property>
</beans:bean>
<property name="incrementer">
<bean parent="incrementerParent">
<property name="incrementerName" value="TRADE_SEQ" />
</bean>
</property>
</bean>
<beans:bean id="customerDao" class="org.springframework.batch.sample.domain.trade.internal.JdbcCustomerDebitDao"
<bean id="customerDao" class="org.springframework.batch.sample.domain.trade.internal.JdbcCustomerDebitDao"
p:dataSource-ref="dataSource" />
<beans:bean id="customerReportItemWriter" class="org.springframework.batch.sample.domain.trade.internal.FlatFileCustomerCreditDao">
<beans:property name="itemWriter">
<beans:bean class="org.springframework.batch.item.file.FlatFileItemWriter">
<beans:property name="resource" value="target/test-outputs/20070122.testStream.CustomerReportStep.TEMP.txt" />
<beans:property name="lineAggregator">
<beans:bean class="org.springframework.batch.item.file.transform.PassThroughLineAggregator" />
</beans:property>
</beans:bean>
</beans:property>
</beans:bean>
<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>
<beans:bean id="fileItemReader" class="org.springframework.batch.item.file.FlatFileItemReader" scope="step">
<beans:property name="resource" value="classpath:data/tradeJob/input/20070122.teststream.ImportTradeDataStep.txt" />
<beans:property name="lineMapper">
<beans:bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<beans:property name="lineTokenizer">
<beans:bean class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
<beans:property name="names" value="ISIN, Quantity, Price, Customer" />
</beans:bean>
</beans:property>
<beans:property name="fieldSetMapper">
<beans:bean class="org.springframework.batch.sample.domain.trade.internal.TradeFieldSetMapper" />
</beans:property>
</beans:bean>
</beans:property>
</beans:bean>
<bean id="fileItemReader" class="org.springframework.batch.item.file.FlatFileItemReader" scope="step">
<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>
<beans:bean id="tradeValidator" class="org.springframework.batch.item.validator.SpringValidator">
<beans:property name="validator">
<beans:bean class="org.springmodules.validation.valang.ValangValidator">
<beans:property name="valang">
<beans:value>
<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}]]>
</beans:value>
</beans:property>
</beans:bean>
</beans:property>
</beans:bean>
</value>
</property>
</bean>
</property>
</bean>
</beans:beans>
</beans>