IN PROGRESS - issue BATCH-212: Merge InputSource with ItemProvider

http://opensource.atlassian.com/projects/spring/browse/BATCH-212

Merge InputSource/ItemProvider -> ItemReader.
This commit is contained in:
dsyer
2007-12-17 13:13:39 +00:00
parent ddc4a48de1
commit ab98d1ebe6
107 changed files with 828 additions and 826 deletions

View File

@@ -20,12 +20,12 @@ import java.util.ArrayList;
import java.util.List;
import org.springframework.batch.item.ItemProcessor;
import org.springframework.batch.item.ItemProvider;
import org.springframework.batch.item.ItemReader;
/**
* Custom class that contains logic that would normally be
* be contained in {@link ItemProvider} (<code>getData()</code>) and
* be contained in {@link ItemReader} (<code>getData()</code>) and
* {@link ItemProcessor} (<code>processData(..)</code>).
*
* @author tomas.slanina

View File

@@ -22,10 +22,10 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.batch.core.configuration.StepConfiguration;
import org.springframework.batch.core.domain.StepExecution;
import org.springframework.batch.io.InputSource;
import org.springframework.batch.io.file.FieldSet;
import org.springframework.batch.io.file.FieldSetMapper;
import org.springframework.batch.item.provider.AbstractItemProvider;
import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.provider.AbstractItemReader;
import org.springframework.batch.item.validator.Validator;
import org.springframework.batch.sample.domain.Address;
import org.springframework.batch.sample.domain.BillingInfo;
@@ -40,9 +40,9 @@ import org.springframework.batch.sample.domain.ShippingInfo;
* @author peter.zozom
*
*/
public class OrderItemProvider extends AbstractItemProvider {
private static Log log = LogFactory.getLog(OrderItemProvider.class);
private InputSource inputSource;
public class OrderItemReader extends AbstractItemReader {
private static Log log = LogFactory.getLog(OrderItemReader.class);
private ItemReader inputSource;
private Order order;
private boolean recordFinished;
private FieldSetMapper headerMapper;
@@ -54,9 +54,10 @@ public class OrderItemProvider extends AbstractItemProvider {
private Validator validator;
/**
* @see org.springframework.batch.item.ItemProvider#next()
* @throws Exception
* @see org.springframework.batch.item.ItemReader#read()
*/
public Object next() {
public Object read() throws Exception {
recordFinished = false;
while (!recordFinished) {
@@ -190,7 +191,7 @@ public class OrderItemProvider extends AbstractItemProvider {
this.headerMapper = headerMapper;
}
public void setInputSource(InputSource inputSource) {
public void setItemReader(ItemReader inputSource) {
this.inputSource = inputSource;
}

View File

@@ -11,7 +11,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.batch.execution.scope.StepContext;
import org.springframework.batch.execution.scope.StepContextAware;
import org.springframework.batch.item.ItemProvider;
import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.ResourceLifecycle;
import org.springframework.batch.repeat.synch.BatchTransactionSynchronizationManager;
import org.springframework.batch.sample.item.processor.StagingItemProcessor;
@@ -26,14 +26,14 @@ import org.springframework.transaction.support.TransactionSynchronizationAdapter
import org.springframework.transaction.support.TransactionSynchronizationManager;
import org.springframework.util.Assert;
public class StagingItemProvider extends JdbcDaoSupport implements
ItemProvider, ResourceLifecycle, DisposableBean,
public class StagingItemReader extends JdbcDaoSupport implements
ItemReader, ResourceLifecycle, DisposableBean,
StepContextAware {
// Key for buffer in transaction synchronization manager
private static final String BUFFER_KEY = StagingItemProvider.class.getName()+".BUFFER";
private static final String BUFFER_KEY = StagingItemReader.class.getName()+".BUFFER";
private static Log logger = LogFactory.getLog(StagingItemProvider.class);
private static Log logger = LogFactory.getLog(StagingItemReader.class);
private StepContext stepContext;
@@ -49,7 +49,7 @@ public class StagingItemProvider extends JdbcDaoSupport implements
/**
*
* @see org.springframework.batch.io.driving.DrivingQueryInputSource#close()
* @see org.springframework.batch.io.driving.DrivingQueryItemReader#close()
*/
public void close() {
initialized = false;
@@ -61,7 +61,7 @@ public class StagingItemProvider extends JdbcDaoSupport implements
/**
* @throws Exception
* @see org.springframework.batch.io.driving.DrivingQueryInputSource#destroy()
* @see org.springframework.batch.io.driving.DrivingQueryItemReader#destroy()
*/
public void destroy() throws Exception {
close();
@@ -69,7 +69,7 @@ public class StagingItemProvider extends JdbcDaoSupport implements
/**
*
* @see org.springframework.batch.io.driving.DrivingQueryInputSource#open()
* @see org.springframework.batch.io.driving.DrivingQueryItemReader#open()
*/
public void open() {
Assert.state(keys == null || initialized,
@@ -122,8 +122,8 @@ public class StagingItemProvider extends JdbcDaoSupport implements
return item;
}
public Object next() throws Exception {
Long id = read();
public Object read() throws Exception {
Long id = doRead();
if (id == null) {
return null;
@@ -152,7 +152,7 @@ public class StagingItemProvider extends JdbcDaoSupport implements
return result;
}
private Long read() {
private Long doRead() {
if (!initialized) {
open();
}

View File

@@ -18,7 +18,7 @@ package org.springframework.batch.sample.tasklet;
import org.springframework.batch.core.tasklet.Tasklet;
import org.springframework.batch.execution.tasklet.RestartableItemProviderTasklet;
import org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet;
import org.springframework.batch.io.exception.BatchCriticalException;
import org.springframework.batch.repeat.ExitStatus;
@@ -29,7 +29,7 @@ import org.springframework.batch.repeat.ExitStatus;
* @author Robert Kasanicky
*
*/
public class ExceptionRestartableTasklet extends RestartableItemProviderTasklet {
public class ExceptionRestartableTasklet extends RestartableItemOrientedTasklet {
private int counter = 0;
private int throwExceptionOnRecordNumber = 4;

View File

@@ -19,8 +19,8 @@ package org.springframework.batch.sample.tasklet;
import java.util.Properties;
import org.springframework.batch.core.tasklet.Tasklet;
import org.springframework.batch.execution.tasklet.ItemProviderProcessTasklet;
import org.springframework.batch.io.file.support.DefaultFlatFileInputSource;
import org.springframework.batch.execution.tasklet.ItemOrientedTasklet;
import org.springframework.batch.io.file.support.DefaultFlatFileItemReader;
import org.springframework.batch.repeat.ExitStatus;
import org.springframework.batch.sample.dao.TradeWriter;
import org.springframework.batch.sample.domain.Trade;
@@ -31,7 +31,7 @@ import org.springframework.batch.statistics.StatisticsProvider;
* and processing of input data. This can be viable in cases, when the input
* reading and processing logic need not to be reused in different contexts. In
* general it is recommended to separate these two concerns using an
* {@link ItemProviderProcessTasklet}.
* {@link ItemOrientedTasklet}.
*
* Note this class is thread-safe, as per the 'standard' module implementations
* provided by the framework.
@@ -45,7 +45,7 @@ public class SimpleTradeTasklet implements Tasklet, StatisticsProvider {
/*
* reads the data from input file
*/
private DefaultFlatFileInputSource inputSource;
private DefaultFlatFileItemReader inputSource;
/*
* writes a Trade object to output
@@ -76,7 +76,7 @@ public class SimpleTradeTasklet implements Tasklet, StatisticsProvider {
return ExitStatus.CONTINUABLE;
}
public void setInputSource(DefaultFlatFileInputSource inputTemplate) {
public void setItemReader(DefaultFlatFileItemReader inputTemplate) {
this.inputSource = inputTemplate;
}

View File

@@ -16,11 +16,11 @@
<bean id="step1" parent="simpleStep">
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.RestartableItemProviderTasklet">
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
<property name="itemProvider">
<bean
class="org.springframework.batch.item.provider.ValidatingItemProvider">
<property name="inputSource" ref="fileInputTemplate" />
class="org.springframework.batch.item.provider.ValidatingItemReader">
<property name="itemReader" ref="fileInputTemplate" />
<property name="validator" ref="fixedValidator" />
</bean>
</property>
@@ -35,11 +35,11 @@
<bean id="step2" parent="simpleStep">
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.RestartableItemProviderTasklet">
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
<property name="itemProvider">
<bean
class="org.springframework.batch.item.provider.InputSourceItemProvider">
<property name="inputSource" ref="fileInputTemplate2" />
class="org.springframework.batch.item.provider.DelegatingItemReader">
<property name="itemReader" ref="fileInputTemplate2" />
</bean>
</property>
<property name="itemProcessor">
@@ -55,7 +55,7 @@
<!-- INFRASTRUCTURE SETUP -->
<bean id="fileInputTemplate" class="org.springframework.batch.io.file.support.DefaultFlatFileInputSource"
<bean id="fileInputTemplate" class="org.springframework.batch.io.file.support.DefaultFlatFileItemReader"
scope="step" >
<aop:scoped-proxy />
<property name="resource" ref="fileLocator" />
@@ -63,7 +63,7 @@
<property name="fieldSetMapper" ref="fieldSetMapper" />
</bean>
<bean id="fileInputTemplate2" class="org.springframework.batch.io.file.support.DefaultFlatFileInputSource"
<bean id="fileInputTemplate2" class="org.springframework.batch.io.file.support.DefaultFlatFileItemReader"
scope="step">
<aop:scoped-proxy />
<property name="resource" ref="fileLocator2" />

View File

@@ -15,11 +15,11 @@
<bean id="step1" parent="simpleStep">
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.RestartableItemProviderTasklet">
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
<property name="itemProvider">
<bean
class="org.springframework.batch.item.provider.ValidatingItemProvider">
<property name="inputSource" ref="fileInputTemplate" />
class="org.springframework.batch.item.provider.ValidatingItemReader">
<property name="itemReader" ref="fileInputTemplate" />
<property name="validator" ref="fixedValidator" />
</bean>
</property>
@@ -46,7 +46,7 @@
<!-- INFRASTRUCTURE SETUP -->
<bean id="fileInputTemplate" class="org.springframework.batch.io.file.support.DefaultFlatFileInputSource"
<bean id="fileInputTemplate" class="org.springframework.batch.io.file.support.DefaultFlatFileItemReader"
scope="step">
<aop:scoped-proxy />
<property name="resource" ref="fileLocator" />

View File

@@ -22,9 +22,9 @@
<bean id="step1" parent="simpleStep">
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.ItemProviderProcessTasklet">
class="org.springframework.batch.execution.tasklet.ItemOrientedTasklet">
<property name="itemProvider">
<bean class="org.springframework.batch.item.provider.DelegatingItemProvider">
<bean class="org.springframework.batch.item.provider.ItemReaderAdapter">
<property name="targetObject" ref="delegatingObject" />
<property name="targetMethod" value="getData" />
</bean>

View File

@@ -15,11 +15,11 @@
<bean id="step1" parent="simpleStep">
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.RestartableItemProviderTasklet">
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
<property name="itemProvider">
<bean
class="org.springframework.batch.item.provider.ValidatingItemProvider">
<property name="inputSource" ref="fileInputTemplate" />
class="org.springframework.batch.item.provider.ValidatingItemReader">
<property name="itemReader" ref="fileInputTemplate" />
<property name="validator" ref="fixedValidator" />
</bean>
</property>
@@ -37,7 +37,7 @@
<!-- INFRASTRUCTURE SETUP -->
<!-- This input source is injected into the test case to verify the output - not used by the job at all -->
<bean id="testInputTemplate" class="org.springframework.batch.io.file.support.DefaultFlatFileInputSource">
<bean id="testInputTemplate" class="org.springframework.batch.io.file.support.DefaultFlatFileItemReader">
<property name="resource" ref="fileLocator" />
<property name="tokenizer" ref="fixedFileDescriptor" />
<property name="fieldSetMapper" ref="fieldSetMapper" />

View File

@@ -26,12 +26,12 @@
<property name="allowStartIfComplete" value="false" />
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.RestartableItemProviderTasklet">
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
<property name="itemProvider">
<bean
class="org.springframework.batch.item.provider.InputSourceItemProvider">
<property name="inputSource"
ref="playerFileInputSource" />
class="org.springframework.batch.item.provider.DelegatingItemReader">
<property name="itemReader"
ref="playerFileItemReader" />
</bean>
</property>
<property name="itemProcessor">
@@ -56,12 +56,12 @@
<property name="saveRestartData" value="true" />
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.RestartableItemProviderTasklet">
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
<property name="itemProvider">
<bean
class="org.springframework.batch.item.provider.InputSourceItemProvider">
<property name="inputSource"
ref="gameFileInputSource" />
class="org.springframework.batch.item.provider.DelegatingItemReader">
<property name="itemReader"
ref="gameFileItemReader" />
</bean>
</property>
<property name="itemProcessor">
@@ -86,11 +86,11 @@
<property name="saveRestartData" value="true" />
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.RestartableItemProviderTasklet">
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
<property name="itemProvider">
<bean
class="org.springframework.batch.item.provider.InputSourceItemProvider">
<property name="inputSource"
class="org.springframework.batch.item.provider.DelegatingItemReader">
<property name="itemReader"
ref="playerSummarizationSource" />
</bean>
</property>
@@ -113,8 +113,8 @@
</property>
</bean>
<bean id="playerFileInputSource"
class="org.springframework.batch.io.file.support.DefaultFlatFileInputSource" scope="step">
<bean id="playerFileItemReader"
class="org.springframework.batch.io.file.support.DefaultFlatFileItemReader" scope="step">
<aop:scoped-proxy/>
<property name="resource" value="classpath:data/footballjob/input/player.csv" />
<property name="tokenizer">
@@ -130,8 +130,8 @@
</property>
</bean>
<bean id="gameFileInputSource"
class="org.springframework.batch.io.file.support.DefaultFlatFileInputSource" scope="step">
<bean id="gameFileItemReader"
class="org.springframework.batch.io.file.support.DefaultFlatFileItemReader" scope="step">
<aop:scoped-proxy/>
<property name="resource" value="classpath:data/footballjob/input/games.csv"/>
<property name="tokenizer">
@@ -148,7 +148,7 @@
</bean>
<bean id="playerSummarizationSource"
class="org.springframework.batch.io.cursor.JdbcCursorInputSource" scope="step">
class="org.springframework.batch.io.cursor.JdbcCursorItemReader" scope="step">
<aop:scoped-proxy/>
<property name="dataSource" ref="dataSource" />
<property name="mapper">

View File

@@ -20,12 +20,12 @@
class="org.springframework.batch.execution.step.RepeatOperationsStepConfiguration">
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.RestartableItemProviderTasklet">
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
<property name="itemProvider">
<bean
class="org.springframework.batch.item.provider.InputSourceItemProvider">
<property name="inputSource"
ref="hibernateInputSource" />
class="org.springframework.batch.item.provider.DelegatingItemReader">
<property name="itemReader"
ref="hibernateItemReader" />
</bean>
</property>
<property name="itemProcessor">
@@ -76,8 +76,8 @@
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="hibernateInputSource"
class="org.springframework.batch.io.cursor.HibernateCursorInputSource"
<bean id="hibernateItemReader"
class="org.springframework.batch.io.cursor.HibernateCursorItemReader"
scope="step">
<aop:scoped-proxy />
<property name="queryString" value="from CustomerCredit" />

View File

@@ -19,10 +19,10 @@
<bean id="step1" parent="simpleStep">
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.RestartableItemProviderTasklet">
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
<property name="itemProvider">
<bean class="org.springframework.batch.item.provider.InputSourceItemProvider">
<property name="inputSource" ref="ibatisInputSource" />
<bean class="org.springframework.batch.item.provider.DelegatingItemReader">
<property name="itemReader" ref="ibatisItemReader" />
</bean>
</property>
<property name="itemProcessor">
@@ -43,7 +43,7 @@
</property>
</bean>
<bean id="ibatisInputSource" class="org.springframework.batch.io.driving.IbatisDrivingQueryInputSource"
<bean id="ibatisItemReader" class="org.springframework.batch.io.driving.IbatisDrivingQueryItemReader"
scope="step" >
<aop:scoped-proxy />
<property name="detailsQueryId" value="getCustomerCreditById" />

View File

@@ -15,12 +15,12 @@
<bean id="step1" parent="simpleStep">
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.RestartableItemProviderTasklet">
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
<property name="itemProvider">
<bean
class="org.springframework.batch.item.provider.AggregateItemProvider">
<property name="inputSource"
ref="fileInputSource" />
class="org.springframework.batch.item.provider.AggregateItemReader">
<property name="itemReader"
ref="fileItemReader" />
</bean>
</property>
<property name="itemProcessor">
@@ -43,8 +43,8 @@
</property>
</bean>
<bean id="fileInputSource"
class="org.springframework.batch.io.file.support.DefaultFlatFileInputSource"
<bean id="fileItemReader"
class="org.springframework.batch.io.file.support.DefaultFlatFileItemReader"
scope="step">
<aop:scoped-proxy />
<property name="resource"

View File

@@ -8,7 +8,7 @@
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
<bean id="fileInputTemplate" class="org.springframework.batch.io.file.support.DefaultFlatFileInputSource"
<bean id="fileInputTemplate" class="org.springframework.batch.io.file.support.DefaultFlatFileItemReader"
scope="step">
<aop:scoped-proxy />
<property name="resource" ref="fileInputLocator" />

View File

@@ -18,10 +18,10 @@
<bean id="step1" parent="simpleStep">
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.RestartableItemProviderTasklet">
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
<property name="itemProvider">
<bean class="org.springframework.batch.sample.item.provider.OrderItemProvider">
<property name="inputSource" ref="fileInputTemplate" />
<bean class="org.springframework.batch.sample.item.provider.OrderItemReader">
<property name="itemReader" ref="fileInputTemplate" />
<property name="headerMapper" ref="headerFieldSetMapper" />
<property name="customerMapper" ref="customerFieldSetMapper" />
<property name="addressMapper" ref="addressFieldSetMapper" />

View File

@@ -21,12 +21,12 @@
<bean id="staging" parent="simpleStep">
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.RestartableItemProviderTasklet">
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
<property name="itemProvider">
<bean
class="org.springframework.batch.item.provider.InputSourceItemProvider">
<property name="inputSource"
ref="playerFileInputSource" />
class="org.springframework.batch.item.provider.DelegatingItemReader">
<property name="itemReader"
ref="playerFileItemReader" />
</bean>
</property>
<property name="itemProcessor">
@@ -56,10 +56,10 @@
class="org.springframework.batch.execution.step.RepeatOperationsStepConfiguration">
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.ItemProviderProcessTasklet">
class="org.springframework.batch.execution.tasklet.ItemOrientedTasklet">
<property name="itemProvider">
<bean
class="org.springframework.batch.sample.item.provider.StagingItemProvider"
class="org.springframework.batch.sample.item.provider.StagingItemReader"
scope="step">
<aop:scoped-proxy />
<property name="dataSource"
@@ -109,12 +109,12 @@
<property name="saveRestartData" value="true" />
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.RestartableItemProviderTasklet">
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
<property name="itemProvider">
<bean
class="org.springframework.batch.item.provider.InputSourceItemProvider">
<property name="inputSource"
ref="gameFileInputSource" />
class="org.springframework.batch.item.provider.DelegatingItemReader">
<property name="itemReader"
ref="gameFileItemReader" />
</bean>
</property>
<property name="itemProcessor">
@@ -139,11 +139,11 @@
<property name="saveRestartData" value="true" />
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.RestartableItemProviderTasklet">
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
<property name="itemProvider">
<bean
class="org.springframework.batch.item.provider.InputSourceItemProvider">
<property name="inputSource"
class="org.springframework.batch.item.provider.DelegatingItemReader">
<property name="itemReader"
ref="playerSummarizationSource" />
</bean>
</property>
@@ -166,8 +166,8 @@
</property>
</bean>
<bean id="playerFileInputSource"
class="org.springframework.batch.io.file.support.DefaultFlatFileInputSource"
<bean id="playerFileItemReader"
class="org.springframework.batch.io.file.support.DefaultFlatFileItemReader"
scope="step">
<aop:scoped-proxy />
<property name="resource"
@@ -185,8 +185,8 @@
</property>
</bean>
<bean id="gameFileInputSource"
class="org.springframework.batch.io.file.support.DefaultFlatFileInputSource"
<bean id="gameFileItemReader"
class="org.springframework.batch.io.file.support.DefaultFlatFileItemReader"
scope="step">
<aop:scoped-proxy />
<property name="resource"
@@ -205,7 +205,7 @@
</bean>
<bean id="playerSummarizationSource"
class="org.springframework.batch.io.cursor.JdbcCursorInputSource"
class="org.springframework.batch.io.cursor.JdbcCursorItemReader"
scope="step">
<aop:scoped-proxy />
<property name="dataSource" ref="dataSource" />

View File

@@ -18,8 +18,8 @@
<bean class="org.springframework.batch.sample.tasklet.ExceptionRestartableTasklet">
<property name="itemProvider">
<bean
class="org.springframework.batch.item.provider.ValidatingItemProvider">
<property name="inputSource" ref="fileInputSource" />
class="org.springframework.batch.item.provider.ValidatingItemReader">
<property name="itemReader" ref="fileItemReader" />
<property name="validator" ref="fixedValidator" />
</bean>
</property>
@@ -38,7 +38,7 @@
<!-- INFRASTRUCTURE SETUP -->
<bean id="fileInputSource" class="org.springframework.batch.io.file.support.DefaultFlatFileInputSource"
<bean id="fileItemReader" class="org.springframework.batch.io.file.support.DefaultFlatFileItemReader"
scope="step" >
<aop:scoped-proxy />
<property name="resource" ref="fileLocator" />

View File

@@ -43,11 +43,11 @@
</property>
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.RestartableItemProviderTasklet">
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
<property name="itemProvider">
<bean
class="org.springframework.batch.item.provider.ValidatingItemProvider">
<property name="inputSource"
class="org.springframework.batch.item.provider.ValidatingItemReader">
<property name="itemReader"
ref="fileInputTemplate" />
<property name="validator"
ref="tradeValidator" />
@@ -64,11 +64,11 @@
<bean id="step2" parent="simpleStep">
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.RestartableItemProviderTasklet">
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
<property name="itemProvider">
<bean
class="org.springframework.batch.item.provider.InputSourceItemProvider"
p:input-source-ref="tradeSqlInputSource" />
class="org.springframework.batch.item.provider.DelegatingItemReader"
p:item-reader-ref="tradeSqlItemReader" />
</property>
<property name="itemProcessor">
<bean
@@ -81,8 +81,8 @@
</property>
</bean>
<bean id="tradeSqlInputSource"
class="org.springframework.batch.io.cursor.JdbcCursorInputSource"
<bean id="tradeSqlItemReader"
class="org.springframework.batch.io.cursor.JdbcCursorItemReader"
scope="step">
<aop:scoped-proxy />
<property name="dataSource" ref="dataSource" />
@@ -94,8 +94,8 @@
</property>
</bean>
<bean id="customerSqlInputSource"
class="org.springframework.batch.io.cursor.JdbcCursorInputSource"
<bean id="customerSqlItemReader"
class="org.springframework.batch.io.cursor.JdbcCursorItemReader"
scope="step">
<aop:scoped-proxy />
<property name="dataSource" ref="dataSource" />

View File

@@ -17,8 +17,8 @@
<property name="tasklet">
<bean id="tradeTasklet"
class="org.springframework.batch.sample.tasklet.SimpleTradeTasklet">
<property name="inputSource"
ref="fileInputSource" />
<property name="itemReader"
ref="fileItemReader" />
<property name="tradeDao" ref="tradeDao" />
</bean>
</property>
@@ -39,13 +39,13 @@
</bean>
<!-- This input source is injected into the test case to verify the output - not used by the job at all -->
<bean id="testInputTemplate" class="org.springframework.batch.io.file.support.DefaultFlatFileInputSource">
<bean id="testInputTemplate" class="org.springframework.batch.io.file.support.DefaultFlatFileItemReader">
<property name="resource" ref="fileLocator" />
<property name="tokenizer" ref="tradeTokenizer" />
<property name="fieldSetMapper" ref="tradeMapper" />
</bean>
<bean id="fileInputSource" parent="testInputTemplate"
<bean id="fileItemReader" parent="testInputTemplate"
autowire-candidate="false" scope="step">
<aop:scoped-proxy />
</bean>

View File

@@ -19,11 +19,11 @@
<bean id="step1" parent="simpleStep">
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.RestartableItemProviderTasklet">
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
<property name="itemProvider">
<bean
class="org.springframework.batch.item.provider.ValidatingItemProvider">
<property name="inputSource"
class="org.springframework.batch.item.provider.ValidatingItemReader">
<property name="itemReader"
ref="fileInputTemplate" />
<property name="validator"
ref="tradeValidator" />
@@ -40,12 +40,12 @@
<bean id="step2" parent="simpleStep">
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.RestartableItemProviderTasklet">
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
<property name="itemProvider">
<bean
class="org.springframework.batch.item.provider.InputSourceItemProvider">
<property name="inputSource"
ref="tradeSqlInputSource" />
class="org.springframework.batch.item.provider.DelegatingItemReader">
<property name="itemReader"
ref="tradeSqlItemReader" />
</bean>
</property>
<property name="itemProcessor">
@@ -59,11 +59,11 @@
<bean id="step3" parent="simpleStep">
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.RestartableItemProviderTasklet">
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
<property name="itemProvider">
<bean
class="org.springframework.batch.item.provider.InputSourceItemProvider">
<property name="inputSource" ref="customerSqlInputSource" />
class="org.springframework.batch.item.provider.DelegatingItemReader">
<property name="itemReader" ref="customerSqlItemReader" />
</bean>
</property>
<property name="itemProcessor">
@@ -78,8 +78,8 @@
</property>
</bean>
<bean id="tradeSqlInputSource"
class="org.springframework.batch.io.cursor.JdbcCursorInputSource"
<bean id="tradeSqlItemReader"
class="org.springframework.batch.io.cursor.JdbcCursorItemReader"
scope="step">
<aop:scoped-proxy />
<property name="dataSource" ref="dataSource" />
@@ -92,7 +92,7 @@
</bean>
<bean id="customerSqlInputSource" class="org.springframework.batch.io.cursor.JdbcCursorInputSource"
<bean id="customerSqlItemReader" class="org.springframework.batch.io.cursor.JdbcCursorItemReader"
scope="step">
<aop:scoped-proxy />
<property name="dataSource" ref="dataSource" />

View File

@@ -36,7 +36,7 @@
</bean>
<bean
class="org.springframework.batch.io.file.support.DefaultFlatFileInputSource"
class="org.springframework.batch.io.file.support.DefaultFlatFileItemReader"
id="fileInputTemplate" scope="step">
<aop:scoped-proxy />
<property name="resource" ref="fileLocator" />

View File

@@ -17,11 +17,11 @@
<bean id="step1" parent="simpleStep">
<property name="tasklet">
<bean
class="org.springframework.batch.execution.tasklet.RestartableItemProviderTasklet">
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
<property name="itemProvider">
<bean class="org.springframework.batch.item.provider.InputSourceItemProvider">
<property name="inputSource">
<bean class="org.springframework.batch.io.file.support.StaxEventReaderInputSource" scope="step">
<bean class="org.springframework.batch.item.provider.DelegatingItemReader">
<property name="itemReader">
<bean class="org.springframework.batch.io.file.support.StaxEventReaderItemReader" scope="step">
<aop:scoped-proxy/>
<property name="fragmentRootElementName" value="trade" />
<property name="resource" value="data/staxJob/input/20070918.testStream.xmlFileStep.xml" />

View File

@@ -21,7 +21,7 @@ import java.io.FileReader;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.springframework.batch.io.file.support.DefaultFlatFileInputSource;
import org.springframework.batch.io.file.support.DefaultFlatFileItemReader;
import org.springframework.batch.sample.domain.Trade;
import org.springframework.core.io.Resource;
import org.springframework.jdbc.core.JdbcOperations;
@@ -35,7 +35,7 @@ public class FixedLengthImportJobFunctionalTests extends AbstractValidatingBatch
//auto-injected attributes
private JdbcOperations jdbcTemplate;
private Resource fileLocator;
private DefaultFlatFileInputSource inputSource;
private DefaultFlatFileItemReader inputSource;
protected void onSetUp() throws Exception {
super.onSetUp();
@@ -89,7 +89,7 @@ public class FixedLengthImportJobFunctionalTests extends AbstractValidatingBatch
this.fileLocator = fileLocator;
}
public void setDefaultFlatFileInputSource(DefaultFlatFileInputSource inputSource){
public void setDefaultFlatFileItemReader(DefaultFlatFileItemReader inputSource){
this.inputSource = inputSource;
}
}

View File

@@ -5,9 +5,9 @@ import java.util.Iterator;
import junit.framework.TestCase;
import org.easymock.MockControl;
import org.springframework.batch.io.InputSource;
import org.springframework.batch.io.file.FieldSet;
import org.springframework.batch.io.file.FieldSetMapper;
import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.validator.Validator;
import org.springframework.batch.sample.domain.Address;
import org.springframework.batch.sample.domain.BillingInfo;
@@ -15,13 +15,12 @@ import org.springframework.batch.sample.domain.Customer;
import org.springframework.batch.sample.domain.LineItem;
import org.springframework.batch.sample.domain.Order;
import org.springframework.batch.sample.domain.ShippingInfo;
import org.springframework.batch.sample.item.provider.OrderItemProvider;
public class OrderItemProviderTests extends TestCase {
public class OrderItemReaderTests extends TestCase {
private OrderItemProvider provider;
private OrderItemReader provider;
private MockControl inputControl;
private InputSource input;
private ItemReader input;
private MockControl mapperControl;
private FieldSetMapper mapper;
private MockControl validatorControl;
@@ -29,11 +28,11 @@ public class OrderItemProviderTests extends TestCase {
public void setUp() {
inputControl = MockControl.createControl(InputSource.class);
input = (InputSource)inputControl.getMock();
inputControl = MockControl.createControl(ItemReader.class);
input = (ItemReader)inputControl.getMock();
provider = new OrderItemProvider();
provider.setInputSource(input);
provider = new OrderItemReader();
provider.setItemReader(input);
}
/*
@@ -47,7 +46,7 @@ public class OrderItemProviderTests extends TestCase {
* In testNext method we are going to test these responsibilities. So we need create mock
* objects for input source, mapper and validator.
*/
public void testNext() {
public void testNext() throws Exception {
//create fieldsets and set return values for input source
FieldSet headerFS = new FieldSet(new String[] {Order.LINE_ID_HEADER});
@@ -127,7 +126,7 @@ public class OrderItemProviderTests extends TestCase {
provider.setShippingMapper(mapper);
//call tested method
Object result = provider.next();
Object result = provider.read();
//verify result
assertNotNull(result);
@@ -152,7 +151,7 @@ public class OrderItemProviderTests extends TestCase {
}
//try to retrieve next object - nothing should be returned
assertNull(provider.next());
assertNull(provider.read());
//verify method calls on input source, mapper and validator
inputControl.verify();

View File

@@ -14,18 +14,18 @@ import org.springframework.batch.sample.item.processor.StagingItemProcessor;
import org.springframework.test.AbstractTransactionalDataSourceSpringContextTests;
import org.springframework.util.ClassUtils;
public class StagingItemProviderTests extends
public class StagingItemReaderTests extends
AbstractTransactionalDataSourceSpringContextTests {
private StagingItemProcessor processor;
private StagingItemProvider provider;
private StagingItemReader provider;
private Long jobId;
public void setProcessor(StagingItemProcessor processor) {
this.processor = processor;
}
public void setProvider(StagingItemProvider provider) {
public void setProvider(StagingItemReader provider) {
this.provider = provider;
}
@@ -66,7 +66,7 @@ public class StagingItemProviderTests extends
new Object[] { new Long(id) }, String.class);
assertEquals(StagingItemProcessor.NEW, before);
Object item = provider.next();
Object item = provider.read();
assertEquals("FOO", item);
String after = (String) getJdbcTemplate().queryForObject(
@@ -103,27 +103,27 @@ public class StagingItemProviderTests extends
new Object[] { jobId, StagingItemProcessor.NEW });
assertEquals(4, count);
Object item = provider.next();
Object item = provider.read();
assertEquals("FOO", item);
item = provider.next();
item = provider.read();
assertEquals("BAR", item);
endTransaction();
startNewTransaction();
BatchTransactionSynchronizationManager.resynchronize();
item = provider.next();
item = provider.read();
assertEquals("FOO", item);
item = provider.next();
item = provider.read();
assertEquals("BAR", item);
item = provider.next();
item = provider.read();
assertEquals("SPAM", item);
endTransaction();
startNewTransaction();
BatchTransactionSynchronizationManager.resynchronize();
item = provider.next();
item = provider.read();
assertEquals("FOO", item);
}
@@ -144,7 +144,7 @@ public class StagingItemProviderTests extends
new Object[] { new Long(id) }, String.class);
assertEquals(StagingItemProcessor.NEW, before);
Object item = provider.next();
Object item = provider.read();
assertEquals("FOO", item);
endTransaction();
@@ -157,7 +157,7 @@ public class StagingItemProviderTests extends
new Object[] { new Long(id) }, String.class);
assertEquals(StagingItemProcessor.NEW, after);
item = provider.next();
item = provider.read();
assertEquals("FOO", item);
}
}

View File

@@ -7,7 +7,7 @@ import junit.framework.TestCase;
import org.easymock.MockControl;
import org.springframework.batch.io.exception.BatchCriticalException;
import org.springframework.batch.item.ItemProcessor;
import org.springframework.batch.item.provider.ListItemProvider;
import org.springframework.batch.item.provider.ListItemReader;
import org.springframework.batch.repeat.context.RepeatContextSupport;
import org.springframework.batch.repeat.synch.RepeatSynchronizationManager;
import org.springframework.batch.sample.tasklet.ExceptionRestartableTasklet;
@@ -38,7 +38,7 @@ public class ExceptionRestartableTaskletTests extends TestCase {
module.setItemProcessor(itemProcessor);
module.setThrowExceptionOnRecordNumber(ITER_COUNT + 1);
module.setItemProvider(new ListItemProvider(new ArrayList() {{
module.setItemProvider(new ListItemReader(new ArrayList() {{
add("a");
add("b");
add("c");

View File

@@ -4,7 +4,7 @@ import java.math.BigDecimal;
import junit.framework.TestCase;
import org.springframework.batch.io.file.support.DefaultFlatFileInputSource;
import org.springframework.batch.io.file.support.DefaultFlatFileItemReader;
import org.springframework.batch.sample.dao.TradeWriter;
import org.springframework.batch.sample.domain.Trade;
@@ -16,7 +16,7 @@ public class SimpleTradeTaskletTests extends TestCase {
public void testReadAndProcess() throws Exception {
//create input
DefaultFlatFileInputSource input = new DefaultFlatFileInputSource() {
DefaultFlatFileItemReader input = new DefaultFlatFileItemReader() {
private boolean done = false;
@@ -46,7 +46,7 @@ public class SimpleTradeTaskletTests extends TestCase {
//create module
SimpleTradeTasklet module = new SimpleTradeTasklet();
module.setInputSource(input);
module.setItemReader(input);
module.setTradeDao(writer);
//call tested methods

View File

@@ -24,7 +24,7 @@
</bean>
<bean id="provider"
class="org.springframework.batch.sample.item.provider.StagingItemProvider"
class="org.springframework.batch.sample.item.provider.StagingItemReader"
scope="step">
<property name="dataSource" ref="dataSource" />
</bean>