OPEN - issue BATCH-385: Merge user attributes in StepContext with ExecutionContext
http://jira.springframework.org/browse/BATCH-385 removed delegate calls to ItemStream in favour of direct registration
This commit is contained in:
@@ -3,10 +3,8 @@ package org.springframework.batch.sample.item.reader;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import org.springframework.batch.item.ExecutionContext;
|
||||
import org.springframework.batch.item.ItemStream;
|
||||
import org.springframework.batch.item.exception.MarkFailedException;
|
||||
import org.springframework.batch.item.exception.ResetFailedException;
|
||||
import org.springframework.batch.item.exception.StreamException;
|
||||
import org.springframework.batch.item.reader.AbstractItemReaderRecoverer;
|
||||
import org.springframework.batch.sample.domain.Trade;
|
||||
|
||||
@@ -15,7 +13,7 @@ import org.springframework.batch.sample.domain.Trade;
|
||||
*
|
||||
* @author Robert Kasanicky
|
||||
*/
|
||||
public class GeneratingItemReader extends AbstractItemReaderRecoverer implements ItemStream {
|
||||
public class GeneratingItemReader extends AbstractItemReaderRecoverer {
|
||||
|
||||
private int limit = 1;
|
||||
|
||||
@@ -58,14 +56,6 @@ public class GeneratingItemReader extends AbstractItemReaderRecoverer implements
|
||||
return false;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.springframework.batch.item.ItemStream#close()
|
||||
*/
|
||||
public void close(ExecutionContext executionContext) throws StreamException {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.springframework.batch.item.ItemStream#mark()
|
||||
*/
|
||||
@@ -86,13 +76,4 @@ public class GeneratingItemReader extends AbstractItemReaderRecoverer implements
|
||||
public void restoreFrom(ExecutionContext context) {
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.springframework.batch.item.ExecutionContextProvider#getExecutionContext()
|
||||
*/
|
||||
public void update(ExecutionContext executionContext) {
|
||||
}
|
||||
|
||||
public void open(ExecutionContext context) throws StreamException {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -64,10 +64,4 @@ public class TradeWriter extends AbstractItemWriter {
|
||||
public void setDao(TradeDao dao) {
|
||||
this.dao = dao;
|
||||
}
|
||||
|
||||
public void close() {
|
||||
}
|
||||
|
||||
public void init() {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
<property name="steps">
|
||||
<list>
|
||||
<bean id="step1" parent="simpleStep">
|
||||
<property name="listener" ref="fileInputTemplate" />
|
||||
<property name="itemReader">
|
||||
<bean
|
||||
class="org.springframework.batch.item.reader.ValidatingItemReader">
|
||||
|
||||
@@ -1,58 +1,68 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop"
|
||||
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:aop="http://www.springframework.org/schema/aop"
|
||||
xmlns:tx="http://www.springframework.org/schema/tx"
|
||||
xmlns:p="http://www.springframework.org/schema/p"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="
|
||||
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
|
||||
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
|
||||
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
|
||||
|
||||
<import resource="../simple-container-definition.xml" />
|
||||
|
||||
|
||||
<bean id="compositeProcessorJob" parent="simpleJob">
|
||||
<property name="steps">
|
||||
<bean id="step1" parent="simpleStep">
|
||||
<property name="itemReader">
|
||||
<bean
|
||||
class="org.springframework.batch.item.reader.ValidatingItemReader">
|
||||
<property name="itemReader" ref="fileInputTemplate" />
|
||||
<property name="validator" ref="fixedValidator" />
|
||||
</bean>
|
||||
</property>
|
||||
<property name="itemWriter">
|
||||
<bean class="org.springframework.batch.item.writer.CompositeItemWriter" >
|
||||
<property name="delegates" >
|
||||
<list>
|
||||
<bean class="org.springframework.batch.sample.item.writer.TradeWriter">
|
||||
<property name="dao" ref="tradeDao" />
|
||||
</bean>
|
||||
<ref bean="flatFileOutputSource" />
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- INFRASTRUCTURE SETUP -->
|
||||
|
||||
<bean id="fileInputTemplate" class="org.springframework.batch.io.file.FlatFileItemReader">
|
||||
<property name="resource" ref="fileLocator" />
|
||||
<property name="lineTokenizer" ref="fixedFileDescriptor" />
|
||||
<property name="fieldSetMapper" ref="fieldSetMapper" />
|
||||
</bean>
|
||||
|
||||
<bean id="fixedFileDescriptor" class="org.springframework.batch.io.file.transform.FixedLengthTokenizer">
|
||||
<property name="names" value="ISIN, Quantity, Price, Customer" />
|
||||
<property name="columns" value="1-12, 13-15, 16-20, 21-29" />
|
||||
</bean>
|
||||
|
||||
<bean id="fixedValidator" class="org.springframework.batch.item.validator.SpringValidator">
|
||||
<property name="validator">
|
||||
<bean id="tradeValidator" class="org.springmodules.validation.valang.ValangValidator">
|
||||
<property name="valang">
|
||||
<value>
|
||||
<property name="listener" ref="fileInputTemplate" />
|
||||
<property name="itemReader">
|
||||
<bean
|
||||
class="org.springframework.batch.item.reader.ValidatingItemReader">
|
||||
<property name="itemReader"
|
||||
ref="fileInputTemplate" />
|
||||
<property name="validator" ref="fixedValidator" />
|
||||
</bean>
|
||||
</property>
|
||||
<property name="itemWriter">
|
||||
<bean
|
||||
class="org.springframework.batch.item.writer.CompositeItemWriter">
|
||||
<property name="delegates">
|
||||
<list>
|
||||
<bean
|
||||
class="org.springframework.batch.sample.item.writer.TradeWriter">
|
||||
<property name="dao" ref="tradeDao" />
|
||||
</bean>
|
||||
<ref bean="flatFileOutputSource" />
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- INFRASTRUCTURE SETUP -->
|
||||
|
||||
<bean id="fileInputTemplate"
|
||||
class="org.springframework.batch.io.file.FlatFileItemReader">
|
||||
<property name="resource" ref="fileLocator" />
|
||||
<property name="lineTokenizer" ref="fixedFileDescriptor" />
|
||||
<property name="fieldSetMapper" ref="fieldSetMapper" />
|
||||
</bean>
|
||||
|
||||
<bean id="fixedFileDescriptor"
|
||||
class="org.springframework.batch.io.file.transform.FixedLengthTokenizer">
|
||||
<property name="names" value="ISIN, Quantity, Price, Customer" />
|
||||
<property name="columns" value="1-12, 13-15, 16-20, 21-29" />
|
||||
</bean>
|
||||
|
||||
<bean id="fixedValidator"
|
||||
class="org.springframework.batch.item.validator.SpringValidator">
|
||||
<property name="validator">
|
||||
<bean id="tradeValidator"
|
||||
class="org.springmodules.validation.valang.ValangValidator">
|
||||
<property name="valang">
|
||||
<value>
|
||||
<![CDATA[
|
||||
{ isin : length(?) < 13 : 'ISIN too long' : 'isin_length' : 12}
|
||||
]]>
|
||||
@@ -62,33 +72,39 @@
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="tradeDao" class="org.springframework.batch.sample.dao.JdbcTradeDao">
|
||||
<property name="jdbcTemplate" ref="jdbcTemplate" />
|
||||
<property name="incrementer">
|
||||
<bean parent="incrementerParent">
|
||||
<property name="incrementerName" value="TRADE_SEQ" />
|
||||
</bean>
|
||||
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean class="org.springframework.batch.io.file.FlatFileItemWriter" id="flatFileOutputSource">
|
||||
<property name="resource" ref="customerFileLocator" />
|
||||
<bean id="tradeDao"
|
||||
class="org.springframework.batch.sample.dao.JdbcTradeDao">
|
||||
<property name="jdbcTemplate" ref="jdbcTemplate" />
|
||||
<property name="incrementer">
|
||||
<bean parent="incrementerParent">
|
||||
<property name="incrementerName" value="TRADE_SEQ" />
|
||||
</bean>
|
||||
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean class="org.springframework.batch.io.file.FlatFileItemWriter"
|
||||
id="flatFileOutputSource">
|
||||
<property name="resource" ref="customerFileLocator" />
|
||||
<property name="fieldSetUnmapper">
|
||||
<bean
|
||||
class="org.springframework.batch.io.file.mapping.PassThroughFieldSetMapper" />
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="customerFileLocator" class="org.springframework.core.io.FileSystemResource">
|
||||
<constructor-arg type="java.lang.String" value="target/test-outputs/20070122.testStream.ParallelCustomerReportStep.TEMP.txt" />
|
||||
</bean>
|
||||
|
||||
<bean id="fileLocator" class="org.springframework.core.io.ClassPathResource">
|
||||
<constructor-arg type="java.lang.String"
|
||||
value="data/fixedLengthImportJob/input/20070122.teststream.ImportTradeDataStep.txt" />
|
||||
</bean>
|
||||
|
||||
<bean id="fieldSetMapper" class="org.springframework.batch.sample.mapping.TradeFieldSetMapper" />
|
||||
|
||||
</bean>
|
||||
|
||||
<bean id="customerFileLocator"
|
||||
class="org.springframework.core.io.FileSystemResource">
|
||||
<constructor-arg type="java.lang.String"
|
||||
value="target/test-outputs/20070122.testStream.ParallelCustomerReportStep.TEMP.txt" />
|
||||
</bean>
|
||||
|
||||
<bean id="fileLocator"
|
||||
class="org.springframework.core.io.ClassPathResource">
|
||||
<constructor-arg type="java.lang.String"
|
||||
value="data/fixedLengthImportJob/input/20070122.teststream.ImportTradeDataStep.txt" />
|
||||
</bean>
|
||||
|
||||
<bean id="fieldSetMapper"
|
||||
class="org.springframework.batch.sample.mapping.TradeFieldSetMapper" />
|
||||
|
||||
</beans>
|
||||
@@ -14,6 +14,7 @@
|
||||
<bean id="fixedLengthImportJob" parent="simpleJob">
|
||||
<property name="steps">
|
||||
<bean id="step1" parent="simpleStep">
|
||||
<property name="listener" ref="fileInputTemplate" />
|
||||
<property name="itemReader">
|
||||
<bean
|
||||
class="org.springframework.batch.item.reader.ValidatingItemReader">
|
||||
|
||||
@@ -11,7 +11,8 @@
|
||||
|
||||
<bean id="multilineJob" parent="simpleJob">
|
||||
<property name="steps">
|
||||
<bean id="step1" parent="simpleStep">
|
||||
<bean id="step1" parent="simpleStep">
|
||||
<property name="listener" ref="fileItemReader"/>
|
||||
<property name="itemReader">
|
||||
<bean
|
||||
class="org.springframework.batch.item.reader.AggregateItemReader">
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
<?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:aop="http://www.springframework.org/schema/aop"
|
||||
<?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: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/aop
|
||||
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
|
||||
|
||||
<import resource="../simple-container-definition.xml" />
|
||||
|
||||
|
||||
<import resource="multilineOrderInputDescriptors.xml" />
|
||||
<import resource="multilineOrderOutputDescriptors.xml" />
|
||||
<import resource="multilineOrderIo.xml" />
|
||||
@@ -15,48 +16,74 @@
|
||||
<bean id="multilineOrderJob" parent="simpleJob">
|
||||
<property name="steps">
|
||||
<bean id="step1" parent="simpleStep">
|
||||
<property name="itemReader">
|
||||
<bean class="org.springframework.batch.sample.item.reader.OrderItemReader">
|
||||
<property name="itemReader" ref="fileInputTemplate" />
|
||||
<property name="headerMapper" ref="headerFieldSetMapper" />
|
||||
<property name="customerMapper" ref="customerFieldSetMapper" />
|
||||
<property name="addressMapper" ref="addressFieldSetMapper" />
|
||||
<property name="billingMapper" ref="billingFieldSetMapper" />
|
||||
<property name="itemMapper" ref="orderItemFieldSetMapper" />
|
||||
<property name="shippingMapper" ref="shippingFieldSetMapper" />
|
||||
<property name="validator" ref="validator" />
|
||||
</bean>
|
||||
</property>
|
||||
<property name="itemWriter">
|
||||
<bean class="org.springframework.batch.sample.item.writer.OrderWriter">
|
||||
<property name="delegate">
|
||||
<bean class="org.springframework.batch.sample.dao.FlatFileOrderWriter">
|
||||
<property name="delegate" ref="flatFileOutputSource" />
|
||||
<property name="transformer">
|
||||
<bean class="org.springframework.batch.sample.dao.OrderTransformer">
|
||||
<property name="aggregators" ref="outputDescriptors" />
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="headerFieldSetMapper" class="org.springframework.batch.sample.mapping.HeaderFieldSetMapper" />
|
||||
<bean id="customerFieldSetMapper" class="org.springframework.batch.sample.mapping.CustomerFieldSetMapper" />
|
||||
<bean id="addressFieldSetMapper" class="org.springframework.batch.sample.mapping.AddressFieldSetMapper" />
|
||||
<bean id="billingFieldSetMapper" class="org.springframework.batch.sample.mapping.BillingFieldSetMapper" />
|
||||
<bean id="orderItemFieldSetMapper" class="org.springframework.batch.sample.mapping.OrderItemFieldSetMapper" />
|
||||
<bean id="shippingFieldSetMapper" class="org.springframework.batch.sample.mapping.ShippingFieldSetMapper" />
|
||||
|
||||
<bean id="validator" class="org.springframework.batch.item.validator.SpringValidator">
|
||||
<property name="validator">
|
||||
<bean id="orderValidator" class="org.springmodules.validation.valang.ValangValidator">
|
||||
<property name="valang">
|
||||
<value>
|
||||
<property name="listeners">
|
||||
<list>
|
||||
<ref bean="orderWriter" />
|
||||
<ref bean="fileInputTemplate" />
|
||||
</list>
|
||||
</property>
|
||||
<property name="itemReader">
|
||||
<bean
|
||||
class="org.springframework.batch.sample.item.reader.OrderItemReader">
|
||||
<property name="itemReader"
|
||||
ref="fileInputTemplate" />
|
||||
<property name="headerMapper"
|
||||
ref="headerFieldSetMapper" />
|
||||
<property name="customerMapper"
|
||||
ref="customerFieldSetMapper" />
|
||||
<property name="addressMapper"
|
||||
ref="addressFieldSetMapper" />
|
||||
<property name="billingMapper"
|
||||
ref="billingFieldSetMapper" />
|
||||
<property name="itemMapper"
|
||||
ref="orderItemFieldSetMapper" />
|
||||
<property name="shippingMapper"
|
||||
ref="shippingFieldSetMapper" />
|
||||
<property name="validator" ref="validator" />
|
||||
</bean>
|
||||
</property>
|
||||
<property name="itemWriter">
|
||||
<bean
|
||||
class="org.springframework.batch.sample.item.writer.OrderWriter">
|
||||
<property name="delegate" ref="orderWriter" />
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="orderWriter"
|
||||
class="org.springframework.batch.sample.dao.FlatFileOrderWriter">
|
||||
<property name="delegate" ref="flatFileOutputSource" />
|
||||
<property name="transformer">
|
||||
<bean
|
||||
class="org.springframework.batch.sample.dao.OrderTransformer">
|
||||
<property name="aggregators" ref="outputDescriptors" />
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
|
||||
<bean id="headerFieldSetMapper"
|
||||
class="org.springframework.batch.sample.mapping.HeaderFieldSetMapper" />
|
||||
<bean id="customerFieldSetMapper"
|
||||
class="org.springframework.batch.sample.mapping.CustomerFieldSetMapper" />
|
||||
<bean id="addressFieldSetMapper"
|
||||
class="org.springframework.batch.sample.mapping.AddressFieldSetMapper" />
|
||||
<bean id="billingFieldSetMapper"
|
||||
class="org.springframework.batch.sample.mapping.BillingFieldSetMapper" />
|
||||
<bean id="orderItemFieldSetMapper"
|
||||
class="org.springframework.batch.sample.mapping.OrderItemFieldSetMapper" />
|
||||
<bean id="shippingFieldSetMapper"
|
||||
class="org.springframework.batch.sample.mapping.ShippingFieldSetMapper" />
|
||||
|
||||
<bean id="validator"
|
||||
class="org.springframework.batch.item.validator.SpringValidator">
|
||||
<property name="validator">
|
||||
<bean id="orderValidator"
|
||||
class="org.springmodules.validation.valang.ValangValidator">
|
||||
<property name="valang">
|
||||
<value>
|
||||
<![CDATA[
|
||||
{ orderId : ? > 0 AND ? <= 9999999999 : 'Incorrect order ID' : 'error.order.id' }
|
||||
{ orderDate : isFutureDate(?) = FALSE : 'Future date is not allowed' : 'error.order.date.future' }
|
||||
@@ -106,38 +133,41 @@
|
||||
</property>
|
||||
<property name="customFunctions">
|
||||
<map>
|
||||
<entry key="isFutureDate"
|
||||
value="org.springframework.batch.sample.validation.valang.custom.FutureDateFunction" />
|
||||
<entry key="validateTotalItemsCount"
|
||||
value="org.springframework.batch.sample.validation.valang.custom.TotalOrderItemsFunction" />
|
||||
<entry key="validateIds"
|
||||
value="org.springframework.batch.sample.validation.valang.custom.ValidateIdsFunction" />
|
||||
<entry key="validatePrices"
|
||||
value="org.springframework.batch.sample.validation.valang.custom.ValidatePricesFunction" />
|
||||
<entry key="validateDiscounts"
|
||||
value="org.springframework.batch.sample.validation.valang.custom.ValidateDiscountsFunction" />
|
||||
<entry key="validateShippingPrices"
|
||||
value="org.springframework.batch.sample.validation.valang.custom.ValidateShippingPricesFunction" />
|
||||
<entry key="validateHandlingPrices"
|
||||
value="org.springframework.batch.sample.validation.valang.custom.ValidateHandlingPricesFunction" />
|
||||
<entry key="validateQuantities"
|
||||
value="org.springframework.batch.sample.validation.valang.custom.ValidateQuantitiesFunction" />
|
||||
<entry key="validateTotalPrices"
|
||||
value="org.springframework.batch.sample.validation.valang.custom.ValidateTotalPricesFunction" />
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
<!-- "{" <key> : <rule> : <message> : [ <error_code> [ : <error_parameters> ] ] "}" -->
|
||||
|
||||
<bean id="fileInputLocator" class="org.springframework.core.io.ClassPathResource">
|
||||
<constructor-arg type="java.lang.String"
|
||||
value="data/multilineOrderJob/input/20070122.teststream.multilineOrderStep.txt" />
|
||||
</bean>
|
||||
|
||||
<bean id="fileOutputLocator" class="org.springframework.core.io.FileSystemResource">
|
||||
<constructor-arg type="java.lang.String" value="target/test-outputs/20070122.teststream.multilineOrderStep.TEMP.txt" />
|
||||
</bean>
|
||||
|
||||
<entry key="isFutureDate"
|
||||
value="org.springframework.batch.sample.validation.valang.custom.FutureDateFunction" />
|
||||
<entry key="validateTotalItemsCount"
|
||||
value="org.springframework.batch.sample.validation.valang.custom.TotalOrderItemsFunction" />
|
||||
<entry key="validateIds"
|
||||
value="org.springframework.batch.sample.validation.valang.custom.ValidateIdsFunction" />
|
||||
<entry key="validatePrices"
|
||||
value="org.springframework.batch.sample.validation.valang.custom.ValidatePricesFunction" />
|
||||
<entry key="validateDiscounts"
|
||||
value="org.springframework.batch.sample.validation.valang.custom.ValidateDiscountsFunction" />
|
||||
<entry key="validateShippingPrices"
|
||||
value="org.springframework.batch.sample.validation.valang.custom.ValidateShippingPricesFunction" />
|
||||
<entry key="validateHandlingPrices"
|
||||
value="org.springframework.batch.sample.validation.valang.custom.ValidateHandlingPricesFunction" />
|
||||
<entry key="validateQuantities"
|
||||
value="org.springframework.batch.sample.validation.valang.custom.ValidateQuantitiesFunction" />
|
||||
<entry key="validateTotalPrices"
|
||||
value="org.springframework.batch.sample.validation.valang.custom.ValidateTotalPricesFunction" />
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
<!-- "{" <key> : <rule> : <message> : [ <error_code> [ : <error_parameters> ] ] "}" -->
|
||||
|
||||
<bean id="fileInputLocator"
|
||||
class="org.springframework.core.io.ClassPathResource">
|
||||
<constructor-arg type="java.lang.String"
|
||||
value="data/multilineOrderJob/input/20070122.teststream.multilineOrderStep.txt" />
|
||||
</bean>
|
||||
|
||||
<bean id="fileOutputLocator"
|
||||
class="org.springframework.core.io.FileSystemResource">
|
||||
<constructor-arg type="java.lang.String"
|
||||
value="target/test-outputs/20070122.teststream.multilineOrderStep.TEMP.txt" />
|
||||
</bean>
|
||||
|
||||
</beans>
|
||||
@@ -18,6 +18,7 @@
|
||||
<property name="commitInterval" value="2" />
|
||||
<property name="startLimit" value="100" />
|
||||
<property name="allowStartIfComplete" value="false" />
|
||||
<property name="listener" ref="fileInputTemplate"/>
|
||||
<property name="itemReader">
|
||||
<bean
|
||||
class="org.springframework.batch.item.reader.ValidatingItemReader">
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
<bean id="restartSampleJob" parent="simpleJob">
|
||||
<property name="steps">
|
||||
<bean id="step1" parent="simpleStep">
|
||||
<property name="listener" ref="fileItemReader"/>
|
||||
<property name="itemReader">
|
||||
<bean
|
||||
class="org.springframework.batch.item.reader.ValidatingItemReader">
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
<bean
|
||||
class="org.springframework.batch.repeat.exception.handler.SimpleLimitExceptionHandler" p:limit="5"/>
|
||||
</property>
|
||||
<property name="listener" ref="fileInputTemplate" />
|
||||
<property name="itemReader">
|
||||
<bean
|
||||
class="org.springframework.batch.item.reader.ValidatingItemReader">
|
||||
|
||||
@@ -1,87 +1,91 @@
|
||||
<?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"
|
||||
<?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.0.xsd
|
||||
http://www.springframework.org/schema/aop
|
||||
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
|
||||
|
||||
<import resource="../simple-container-definition.xml" />
|
||||
|
||||
|
||||
<import resource="tradeJobIo.xml" />
|
||||
|
||||
<bean id="tradeJob" parent="simpleJob">
|
||||
<property name="steps">
|
||||
<list>
|
||||
<bean id="step1" parent="simpleStep">
|
||||
<property name="itemReader">
|
||||
<bean
|
||||
class="org.springframework.batch.item.reader.ValidatingItemReader">
|
||||
<property name="itemReader"
|
||||
ref="fileInputTemplate" />
|
||||
<property name="validator"
|
||||
ref="tradeValidator" />
|
||||
</bean>
|
||||
</property>
|
||||
<property name="itemWriter">
|
||||
<bean
|
||||
class="org.springframework.batch.sample.item.writer.TradeWriter"
|
||||
p:dao-ref="tradeDao" />
|
||||
</property>
|
||||
</bean>
|
||||
<bean id="step2" parent="simpleStep">
|
||||
<property name="itemReader" ref="tradeSqlItemReader" />
|
||||
<property name="itemWriter">
|
||||
<bean
|
||||
class="org.springframework.batch.sample.item.writer.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.item.writer.CustomerCreditUpdateWriter"
|
||||
p:writer-ref="customerReportOutputSource" />
|
||||
</property>
|
||||
</bean>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="tradeSqlItemReader"
|
||||
class="org.springframework.batch.io.cursor.JdbcCursorItemReader">
|
||||
<property name="dataSource" ref="dataSource" />
|
||||
<property name="sql"
|
||||
value="SELECT id, quantity, price, customer from TRADE" />
|
||||
<property name="mapper">
|
||||
<bean
|
||||
class="org.springframework.batch.sample.mapping.TradeRowMapper" />
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="customerSqlItemReader" class="org.springframework.batch.io.cursor.JdbcCursorItemReader">
|
||||
<property name="listener" ref="fileInputTemplate" />
|
||||
<property name="itemReader">
|
||||
<bean
|
||||
class="org.springframework.batch.item.reader.ValidatingItemReader">
|
||||
<property name="itemReader"
|
||||
ref="fileInputTemplate" />
|
||||
<property name="validator"
|
||||
ref="tradeValidator" />
|
||||
</bean>
|
||||
</property>
|
||||
<property name="itemWriter">
|
||||
<bean
|
||||
class="org.springframework.batch.sample.item.writer.TradeWriter"
|
||||
p:dao-ref="tradeDao" />
|
||||
</property>
|
||||
</bean>
|
||||
<bean id="step2" parent="simpleStep">
|
||||
<property name="itemReader"
|
||||
ref="tradeSqlItemReader" />
|
||||
<property name="itemWriter">
|
||||
<bean
|
||||
class="org.springframework.batch.sample.item.writer.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.item.writer.CustomerCreditUpdateWriter"
|
||||
p:writer-ref="customerReportOutputSource" />
|
||||
</property>
|
||||
</bean>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="tradeSqlItemReader"
|
||||
class="org.springframework.batch.io.cursor.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.mapping.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>
|
||||
|
||||
<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>
|
||||
|
||||
<property name="sql"
|
||||
value="SELECT id, quantity, price, customer from TRADE" />
|
||||
<property name="mapper">
|
||||
<bean
|
||||
class="org.springframework.batch.sample.mapping.TradeRowMapper" />
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="customerSqlItemReader"
|
||||
class="org.springframework.batch.io.cursor.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.mapping.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>
|
||||
|
||||
<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>
|
||||
|
||||
</beans>
|
||||
Reference in New Issue
Block a user