From ab98d1ebe6bb3a378227cec950aeeadca561cb91 Mon Sep 17 00:00:00 2001
From: dsyer
Date: Mon, 17 Dec 2007 13:13:39 +0000
Subject: [PATCH] IN PROGRESS - issue BATCH-212: Merge InputSource with
ItemProvider http://opensource.atlassian.com/projects/spring/browse/BATCH-212
Merge InputSource/ItemProvider -> ItemReader.
---
...sTasklet.java => ItemOrientedTasklet.java} | 30 ++++----
...va => RestartableItemOrientedTasklet.java} | 24 +++---
.../execution/launch/SimpleJobTests.java | 20 ++---
.../step/simple/DefaultStepExecutorTests.java | 12 +--
...sts.java => ItemOrientedTaskletTests.java} | 42 +++++------
... RestartableItemOrientedTaskletTests.java} | 20 ++---
.../src/test/resources/job-configuration.xml | 4 +-
.../execution/configuration/test-context.xml | 4 +-
.../springframework/batch/io/InputSource.java | 37 ----------
...ce.java => HibernateCursorItemReader.java} | 15 ++--
...tSource.java => JdbcCursorItemReader.java} | 17 ++++-
...ource.java => DrivingQueryItemReader.java} | 24 ++++--
...java => IbatisDrivingQueryItemReader.java} | 6 +-
.../driving/support/IbatisKeyGenerator.java | 10 +--
.../MultipleColumnJdbcKeyGenerator.java | 12 +--
...ce.java => DefaultFlatFileItemReader.java} | 6 +-
.../io/file/support/ResourceLineReader.java | 9 ++-
...rce.java => SimpleFlatFileItemReader.java} | 15 ++--
...ce.java => StaxEventReaderItemReader.java} | 73 ++++++++++---------
.../AbstractTransactionalIoSource.java | 4 +-
.../batch/item/FailedItemIdentifier.java | 2 +-
.../{ItemProvider.java => ItemReader.java} | 6 +-
...ocessor.java => ItemProcessorAdapter.java} | 4 +-
...ertyExtractingDelegatingItemProcessor.java | 6 +-
...mProvider.java => AbstractItemReader.java} | 8 +-
...Provider.java => AggregateItemReader.java} | 30 ++++----
...rovider.java => DelegatingItemReader.java} | 19 ++---
...emProvider.java => ItemReaderAdapter.java} | 8 +-
...msItemProvider.java => JmsItemReader.java} | 14 ++--
...tItemProvider.java => ListItemReader.java} | 10 +--
...rovider.java => ValidatingItemReader.java} | 12 +--
.../batch/repeat/RepeatCallback.java | 5 +-
...ack.java => ItemReaderRepeatCallback.java} | 12 +--
...back.java => ItemReaderRetryCallback.java} | 28 +++----
...Policy.java => ItemReaderRetryPolicy.java} | 28 +++----
...a => AbstractMethodInvokingDelegator.java} | 2 +-
...orInputSourceStatefulIntegrationTests.java | 16 ----
...nateCursorItemReaderIntegrationTests.java} | 16 ++--
...sorItemReaderStatefulIntegrationTests.java | 16 ++++
...JdbcCursorItemReaderIntegrationTests.java} | 12 +--
....java => DrivingQueryItemReaderTests.java} | 26 ++++---
.../batch/io/driving/FooInputSource.java | 9 ++-
... => IbatisItemReaderIntegrationTests.java} | 12 +--
...ivingQueryItemReaderIntegrationTests.java} | 18 ++---
...ivingQueryInputSourceIntegrationTests.java | 26 -------
...rivingQueryItemReaderIntegrationTests.java | 26 +++++++
...va => DefaultFlatFileItemReaderTests.java} | 10 +--
...ava => SimpleFlatFileItemReaderTests.java} | 26 +++----
...va => StaxEventReaderItemReaderTests.java} | 26 +++----
...stractJdbcItemReaderIntegrationTests.java} | 28 +++----
...DataSourceItemReaderIntegrationTests.java} | 35 +++++----
.../AbstractTransactionalIoSourceTests.java | 10 ++-
.../batch/item/ItemProviderTests.java | 8 +-
...legatingItemProcessorIntegrationTests.java | 6 +-
...sts.java => AggregateItemReaderTests.java} | 22 +++---
...DelegatingItemReaderIntegrationTests.java} | 10 +--
...ts.java => DelegatingItemReaderTests.java} | 36 ++++-----
...iderTests.java => JmsItemReaderTests.java} | 14 ++--
...derTests.java => ListItemReaderTests.java} | 18 ++---
... TransactionAwareListItemReaderTests.java} | 30 ++++----
...ts.java => ValidatingItemReaderTests.java} | 38 +++++-----
...ava => ItemReaderRepeatCallbackTests.java} | 14 ++--
.../support/AbstractTradeBatchTests.java | 20 ++---
.../support/AsynchronousRepeatTests.java | 6 +-
.../repeat/support/ChunkedRepeatTests.java | 18 ++---
.../support/SimpleRepeatTemplateTests.java | 14 ++--
...erer.java => ListItemReaderRecoverer.java} | 10 +--
...java => ItemReaderRetryCallbackTests.java} | 26 +++----
...s.java => ItemReaderRetryPolicyTests.java} | 60 +++++++--------
.../batch/support/AbstractDelegatorTests.java | 6 +-
.../processor/delegating-item-processor.xml | 2 +-
.../provider/delegating-item-provider.xml | 2 +-
...stractStaxEventReaderItemReaderTests.java} | 6 +-
.../io/oxm/CastorUnmarshallingTests.java | 2 +-
.../io/oxm/XStreamUnmarshallingTests.java | 2 +-
.../batch/jms/ExternalRetryInBatchTests.java | 20 ++---
.../batch/retry/jms/ExternalRetryTests.java | 22 +++---
.../batch/retry/jms/SynchronousTests.java | 8 +-
.../retry/jms/SynchronousTests.java | 8 +-
.../batch/sample/domain/PersonService.java | 4 +-
...ItemProvider.java => OrderItemReader.java} | 17 +++--
...emProvider.java => StagingItemReader.java} | 22 +++---
.../tasklet/ExceptionRestartableTasklet.java | 4 +-
.../sample/tasklet/SimpleTradeTasklet.java | 10 +--
.../jobs/beanWrapperMapperSampleJob.xml | 16 ++--
.../jobs/compositeProcessorSampleJob.xml | 8 +-
.../src/main/resources/jobs/delegatingJob.xml | 4 +-
.../resources/jobs/fixedLengthImportJob.xml | 8 +-
.../src/main/resources/jobs/footballJob.xml | 32 ++++----
.../src/main/resources/jobs/hibernateJob.xml | 12 +--
.../src/main/resources/jobs/ibatisJob.xml | 8 +-
.../src/main/resources/jobs/multilineJob.xml | 12 +--
.../main/resources/jobs/multilineOrderIo.xml | 2 +-
.../main/resources/jobs/multilineOrderJob.xml | 6 +-
.../src/main/resources/jobs/parallelJob.xml | 36 ++++-----
.../src/main/resources/jobs/restartSample.xml | 6 +-
.../src/main/resources/jobs/rollbackJob.xml | 20 ++---
.../main/resources/jobs/simpleTaskletJob.xml | 8 +-
.../src/main/resources/jobs/tradeJob.xml | 26 +++----
.../src/main/resources/jobs/tradeJobIo.xml | 2 +-
.../src/main/resources/jobs/xmlStaxJob.xml | 8 +-
.../FixedLengthImportJobFunctionalTests.java | 6 +-
...erTests.java => OrderItemReaderTests.java} | 23 +++---
...Tests.java => StagingItemReaderTests.java} | 24 +++---
.../ExceptionRestartableTaskletTests.java | 4 +-
.../tasklet/SimpleTradeTaskletTests.java | 6 +-
.../item/processor/staging-test-context.xml | 2 +-
107 files changed, 828 insertions(+), 826 deletions(-)
rename spring-batch-execution/src/main/java/org/springframework/batch/execution/tasklet/{ItemProviderProcessTasklet.java => ItemOrientedTasklet.java} (90%)
rename spring-batch-execution/src/main/java/org/springframework/batch/execution/tasklet/{RestartableItemProviderTasklet.java => RestartableItemOrientedTasklet.java} (78%)
rename spring-batch-execution/src/test/java/org/springframework/batch/execution/tasklet/{ItemProviderProcessTaskletTests.java => ItemOrientedTaskletTests.java} (87%)
rename spring-batch-execution/src/test/java/org/springframework/batch/execution/tasklet/{RestartableItemProviderTaskletTests.java => RestartableItemOrientedTaskletTests.java} (88%)
delete mode 100644 spring-batch-infrastructure/src/main/java/org/springframework/batch/io/InputSource.java
rename spring-batch-infrastructure/src/main/java/org/springframework/batch/io/cursor/{HibernateCursorInputSource.java => HibernateCursorItemReader.java} (90%)
rename spring-batch-infrastructure/src/main/java/org/springframework/batch/io/cursor/{JdbcCursorInputSource.java => JdbcCursorItemReader.java} (94%)
rename spring-batch-infrastructure/src/main/java/org/springframework/batch/io/driving/{DrivingQueryInputSource.java => DrivingQueryItemReader.java} (86%)
rename spring-batch-infrastructure/src/main/java/org/springframework/batch/io/driving/{IbatisDrivingQueryInputSource.java => IbatisDrivingQueryItemReader.java} (86%)
rename spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/support/{DefaultFlatFileInputSource.java => DefaultFlatFileItemReader.java} (95%)
rename spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/support/{SimpleFlatFileInputSource.java => SimpleFlatFileItemReader.java} (90%)
rename spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/support/{StaxEventReaderInputSource.java => StaxEventReaderItemReader.java} (82%)
rename spring-batch-infrastructure/src/main/java/org/springframework/batch/item/{ItemProvider.java => ItemReader.java} (96%)
rename spring-batch-infrastructure/src/main/java/org/springframework/batch/item/processor/{DelegatingItemProcessor.java => ItemProcessorAdapter.java} (83%)
rename spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/{AbstractItemProvider.java => AbstractItemReader.java} (78%)
rename spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/{AggregateItemProvider.java => AggregateItemReader.java} (71%)
rename spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/{InputSourceItemProvider.java => DelegatingItemReader.java} (80%)
rename spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/{DelegatingItemProvider.java => ItemReaderAdapter.java} (78%)
rename spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/{JmsItemProvider.java => JmsItemReader.java} (90%)
rename spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/{ListItemProvider.java => ListItemReader.java} (81%)
rename spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/{ValidatingItemProvider.java => ValidatingItemReader.java} (75%)
rename spring-batch-infrastructure/src/main/java/org/springframework/batch/repeat/callback/{ItemProviderRepeatCallback.java => ItemReaderRepeatCallback.java} (86%)
rename spring-batch-infrastructure/src/main/java/org/springframework/batch/retry/callback/{ItemProviderRetryCallback.java => ItemReaderRetryCallback.java} (80%)
rename spring-batch-infrastructure/src/main/java/org/springframework/batch/retry/policy/{ItemProviderRetryPolicy.java => ItemReaderRetryPolicy.java} (89%)
rename spring-batch-infrastructure/src/main/java/org/springframework/batch/support/{AbstractDelegator.java => AbstractMethodInvokingDelegator.java} (95%)
delete mode 100644 spring-batch-infrastructure/src/test/java/org/springframework/batch/io/cursor/HibernateCursorInputSourceStatefulIntegrationTests.java
rename spring-batch-infrastructure/src/test/java/org/springframework/batch/io/cursor/{HibernateCursorInputSourceIntegrationTests.java => HibernateCursorItemReaderIntegrationTests.java} (65%)
create mode 100644 spring-batch-infrastructure/src/test/java/org/springframework/batch/io/cursor/HibernateCursorItemReaderStatefulIntegrationTests.java
rename spring-batch-infrastructure/src/test/java/org/springframework/batch/io/cursor/{JdbcCursorInputSourceIntegrationTests.java => JdbcCursorItemReaderIntegrationTests.java} (52%)
rename spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/{DrivingQueryInputSourceTests.java => DrivingQueryItemReaderTests.java} (88%)
rename spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/{IbatisInputSourceIntegrationTests.java => IbatisItemReaderIntegrationTests.java} (68%)
rename spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/{MultipleColumnJdbcDrivingQueryInputSourceIntegrationTests.java => MultipleColumnJdbcDrivingQueryItemReaderIntegrationTests.java} (77%)
delete mode 100644 spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/SingleColumnJdbcDrivingQueryInputSourceIntegrationTests.java
create mode 100644 spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/SingleColumnJdbcDrivingQueryItemReaderIntegrationTests.java
rename spring-batch-infrastructure/src/test/java/org/springframework/batch/io/file/support/{DefaultFlatFileInputSourceTests.java => DefaultFlatFileItemReaderTests.java} (96%)
rename spring-batch-infrastructure/src/test/java/org/springframework/batch/io/file/support/{SimpleFlatFileInputSourceTests.java => SimpleFlatFileItemReaderTests.java} (88%)
rename spring-batch-infrastructure/src/test/java/org/springframework/batch/io/file/support/{StaxEventReaderInputSourceTests.java => StaxEventReaderItemReaderTests.java} (88%)
rename spring-batch-infrastructure/src/test/java/org/springframework/batch/io/sql/{AbstractJdbcInputSourceIntegrationTests.java => AbstractJdbcItemReaderIntegrationTests.java} (80%)
rename spring-batch-infrastructure/src/test/java/org/springframework/batch/io/support/{AbstractDataSourceInputSourceIntegrationTests.java => AbstractDataSourceItemReaderIntegrationTests.java} (82%)
rename spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/{AggregateItemProviderTests.java => AggregateItemReaderTests.java} (66%)
rename spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/{DelegatingItemProviderIntegrationTests.java => DelegatingItemReaderIntegrationTests.java} (77%)
rename spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/{InputSourceItemProviderTests.java => DelegatingItemReaderTests.java} (73%)
rename spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/{JmsItemProviderTests.java => JmsItemReaderTests.java} (95%)
rename spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/{ListItemProviderTests.java => ListItemReaderTests.java} (70%)
rename spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/{TransactionAwareListItemProviderTests.java => TransactionAwareListItemReaderTests.java} (85%)
rename spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/{ValidatingItemProviderTests.java => ValidatingItemReaderTests.java} (69%)
rename spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/callback/{ItemProviderRepeatCallbackTests.java => ItemReaderRepeatCallbackTests.java} (72%)
rename spring-batch-infrastructure/src/test/java/org/springframework/batch/retry/{ListItemProviderRecoverer.java => ListItemReaderRecoverer.java} (76%)
rename spring-batch-infrastructure/src/test/java/org/springframework/batch/retry/callback/{ItemProviderRetryCallbackTests.java => ItemReaderRetryCallbackTests.java} (86%)
rename spring-batch-infrastructure/src/test/java/org/springframework/batch/retry/policy/{ItemProviderRetryPolicyTests.java => ItemReaderRetryPolicyTests.java} (79%)
rename spring-batch-integration/src/test/java/org/springframework/batch/io/oxm/{AbstractStaxEventReaderInputSourceTests.java => AbstractStaxEventReaderItemReaderTests.java} (90%)
rename spring-batch-samples/src/main/java/org/springframework/batch/sample/item/provider/{OrderItemProvider.java => OrderItemReader.java} (92%)
rename spring-batch-samples/src/main/java/org/springframework/batch/sample/item/provider/{StagingItemProvider.java => StagingItemReader.java} (87%)
rename spring-batch-samples/src/test/java/org/springframework/batch/sample/item/provider/{OrderItemProviderTests.java => OrderItemReaderTests.java} (88%)
rename spring-batch-samples/src/test/java/org/springframework/batch/sample/item/provider/{StagingItemProviderTests.java => StagingItemReaderTests.java} (90%)
diff --git a/spring-batch-execution/src/main/java/org/springframework/batch/execution/tasklet/ItemProviderProcessTasklet.java b/spring-batch-execution/src/main/java/org/springframework/batch/execution/tasklet/ItemOrientedTasklet.java
similarity index 90%
rename from spring-batch-execution/src/main/java/org/springframework/batch/execution/tasklet/ItemProviderProcessTasklet.java
rename to spring-batch-execution/src/main/java/org/springframework/batch/execution/tasklet/ItemOrientedTasklet.java
index fba6e0e12..a9c4099dd 100644
--- a/spring-batch-execution/src/main/java/org/springframework/batch/execution/tasklet/ItemProviderProcessTasklet.java
+++ b/spring-batch-execution/src/main/java/org/springframework/batch/execution/tasklet/ItemOrientedTasklet.java
@@ -25,12 +25,12 @@ import java.util.Set;
import org.springframework.batch.core.tasklet.Tasklet;
import org.springframework.batch.io.Skippable;
import org.springframework.batch.item.ItemProcessor;
-import org.springframework.batch.item.ItemProvider;
+import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.ItemRecoverer;
import org.springframework.batch.repeat.ExitStatus;
import org.springframework.batch.retry.RetryPolicy;
-import org.springframework.batch.retry.callback.ItemProviderRetryCallback;
-import org.springframework.batch.retry.policy.ItemProviderRetryPolicy;
+import org.springframework.batch.retry.callback.ItemReaderRetryCallback;
+import org.springframework.batch.retry.policy.ItemReaderRetryPolicy;
import org.springframework.batch.retry.support.RetryTemplate;
import org.springframework.batch.statistics.StatisticsProvider;
import org.springframework.beans.factory.InitializingBean;
@@ -42,7 +42,7 @@ import org.springframework.util.Assert;
* the reading and processing of batch data into two separate classes:
* ItemProvider and ItemProcessor. The ItemProvider class provides a solid means
* for re-usability and enforces good architecture practices. Because an object
- * must be returned by the {@link ItemProvider} to continue
+ * must be returned by the {@link ItemReader} to continue
* processing, (returning null indicates processing should end) a developer is
* forced to read in all relevant data, place it into a domain object, and
* return that object. The {@link ItemProcessor} will then use this object for
@@ -50,12 +50,12 @@ import org.springframework.util.Assert;
*
* If a {@link RetryPolicy} is provided it will be used to construct a stateful
* retry around the {@link ItemProcessor}, delegating identity concerns to the
- * {@link ItemProvider} and recovery concerns to the {@link ItemRecoverer} (if
+ * {@link ItemReader} and recovery concerns to the {@link ItemRecoverer} (if
* present). In this case clients of this class do not need to take any
* additional action at runtime to take advantage of the retry and recovery,
* provided that when the {@link #execute()} method is called again the same
* item is eventually re-presented (normally this would be the case because a
- * transaction would have rolled back and the {@link ItemProvider} would go back
+ * transaction would have rolled back and the {@link ItemReader} would go back
* to its previous state).
*
* If a {@link RetryPolicy} is not provided then the {@link ItemRecoverer} can
@@ -65,7 +65,7 @@ import org.springframework.util.Assert;
* can be achieved by injecting an {@link ItemRecoverer} that has a
* transactional recover method.
*
- * @see ItemProvider
+ * @see ItemReader
* @see ItemProcessor
* @see RetryPolicy
* @see Recoverable
@@ -75,7 +75,7 @@ import org.springframework.util.Assert;
* @author Robert Kasanicky
*
*/
-public class ItemProviderProcessTasklet implements Tasklet, Skippable,
+public class ItemOrientedTasklet implements Tasklet, Skippable,
StatisticsProvider, InitializingBean {
/**
@@ -92,7 +92,7 @@ public class ItemProviderProcessTasklet implements Tasklet, Skippable,
private RetryPolicy retryPolicy = null;
- protected ItemProvider itemProvider;
+ protected ItemReader itemProvider;
protected ItemProcessor itemProcessor;
@@ -100,7 +100,7 @@ public class ItemProviderProcessTasklet implements Tasklet, Skippable,
private RetryTemplate template = new RetryTemplate();
- private ItemProviderRetryCallback retryCallback;
+ private ItemReaderRetryCallback retryCallback;
/**
* Check mandatory properties (provider and processor).
@@ -115,12 +115,12 @@ public class ItemProviderProcessTasklet implements Tasklet, Skippable,
itemRecoverer = (ItemRecoverer) itemProvider;
}
- ItemProviderRetryPolicy itemProviderRetryPolicy = new ItemProviderRetryPolicy(
+ ItemReaderRetryPolicy itemProviderRetryPolicy = new ItemReaderRetryPolicy(
retryPolicy);
template.setRetryPolicy(itemProviderRetryPolicy);
if (retryPolicy != null) {
- retryCallback = new ItemProviderRetryCallback(itemProvider,
+ retryCallback = new ItemReaderRetryCallback(itemProvider,
itemProcessor);
retryCallback.setRecoverer(itemRecoverer);
}
@@ -128,7 +128,7 @@ public class ItemProviderProcessTasklet implements Tasklet, Skippable,
}
/**
- * Read from the {@link ItemProvider} and process (if not null) with the
+ * Read from the {@link ItemReader} and process (if not null) with the
* {@link ItemProcessor}. The call to {@link ItemProcessor} is wrapped in a
* stateful retry, if a {@link RetryPolicy} is provided. The
* {@link ItemRecoverer} is used (if provided) in the case of an exception
@@ -144,7 +144,7 @@ public class ItemProviderProcessTasklet implements Tasklet, Skippable,
public ExitStatus execute() throws Exception {
if (retryCallback == null) {
- Object item = itemProvider.next();
+ Object item = itemProvider.read();
if (item == null) {
return ExitStatus.FINISHED;
}
@@ -168,7 +168,7 @@ public class ItemProviderProcessTasklet implements Tasklet, Skippable,
/**
* @param itemProvider
*/
- public void setItemProvider(ItemProvider itemProvider) {
+ public void setItemProvider(ItemReader itemProvider) {
this.itemProvider = itemProvider;
}
diff --git a/spring-batch-execution/src/main/java/org/springframework/batch/execution/tasklet/RestartableItemProviderTasklet.java b/spring-batch-execution/src/main/java/org/springframework/batch/execution/tasklet/RestartableItemOrientedTasklet.java
similarity index 78%
rename from spring-batch-execution/src/main/java/org/springframework/batch/execution/tasklet/RestartableItemProviderTasklet.java
rename to spring-batch-execution/src/main/java/org/springframework/batch/execution/tasklet/RestartableItemOrientedTasklet.java
index a02330ffc..6d6e61ec5 100644
--- a/spring-batch-execution/src/main/java/org/springframework/batch/execution/tasklet/RestartableItemProviderTasklet.java
+++ b/spring-batch-execution/src/main/java/org/springframework/batch/execution/tasklet/RestartableItemOrientedTasklet.java
@@ -19,17 +19,17 @@ package org.springframework.batch.execution.tasklet;
import java.util.Properties;
import org.springframework.batch.item.ItemProcessor;
-import org.springframework.batch.item.ItemProvider;
+import org.springframework.batch.item.ItemReader;
import org.springframework.batch.restart.GenericRestartData;
import org.springframework.batch.restart.RestartData;
import org.springframework.batch.restart.Restartable;
import org.springframework.batch.support.PropertiesConverter;
/**
- * An extension of {@link ItemProviderProcessTasklet} that delegates calls to
+ * An extension of {@link ItemOrientedTasklet} that delegates calls to
* {@link Restartable} to the provider and processor.
*
- * @see ItemProvider
+ * @see ItemReader
* @see ItemProcessor
* @see Restartable
*
@@ -37,7 +37,7 @@ import org.springframework.batch.support.PropertiesConverter;
* @author Dave Syer
*
*/
-public class RestartableItemProviderTasklet extends ItemProviderProcessTasklet implements Restartable {
+public class RestartableItemOrientedTasklet extends ItemOrientedTasklet implements Restartable {
/**
* @see Restartable#getRestartData()
@@ -55,7 +55,7 @@ public class RestartableItemProviderTasklet extends ItemProviderProcessTasklet i
itemProcessorRestartData = ((Restartable) itemProcessor).getRestartData();
}
- RestartableItemProviderTaskletRestartData restartData = new RestartableItemProviderTaskletRestartData(itemProviderRestartData, itemProcessorRestartData);
+ RestartableItemOrientedTaskletRestartData restartData = new RestartableItemOrientedTaskletRestartData(itemProviderRestartData, itemProcessorRestartData);
return restartData;
}
@@ -67,13 +67,13 @@ public class RestartableItemProviderTasklet extends ItemProviderProcessTasklet i
if (data == null || data.getProperties() == null)
return;
- RestartableItemProviderTaskletRestartData moduleRestartData;
+ RestartableItemOrientedTaskletRestartData moduleRestartData;
- if (data instanceof RestartableItemProviderTaskletRestartData) {
- moduleRestartData = (RestartableItemProviderTaskletRestartData) data;
+ if (data instanceof RestartableItemOrientedTaskletRestartData) {
+ moduleRestartData = (RestartableItemOrientedTaskletRestartData) data;
}
else {
- moduleRestartData = new RestartableItemProviderTaskletRestartData(data.getProperties());
+ moduleRestartData = new RestartableItemOrientedTaskletRestartData(data.getProperties());
}
if (itemProvider instanceof Restartable) {
@@ -84,7 +84,7 @@ public class RestartableItemProviderTasklet extends ItemProviderProcessTasklet i
}
}
- private class RestartableItemProviderTaskletRestartData implements RestartData {
+ private class RestartableItemOrientedTaskletRestartData implements RestartData {
private static final String PROVIDER_KEY = "DATA_PROVIDER";
@@ -94,12 +94,12 @@ public class RestartableItemProviderTasklet extends ItemProviderProcessTasklet i
RestartData processorData;
- public RestartableItemProviderTaskletRestartData(RestartData providerData, RestartData processorData) {
+ public RestartableItemOrientedTaskletRestartData(RestartData providerData, RestartData processorData) {
this.providerData = providerData;
this.processorData = processorData;
}
- public RestartableItemProviderTaskletRestartData(Properties data) {
+ public RestartableItemOrientedTaskletRestartData(Properties data) {
providerData = new GenericRestartData(PropertiesConverter
.stringToProperties(data.getProperty(PROVIDER_KEY)));
processorData = new GenericRestartData(PropertiesConverter.stringToProperties(data
diff --git a/spring-batch-execution/src/test/java/org/springframework/batch/execution/launch/SimpleJobTests.java b/spring-batch-execution/src/test/java/org/springframework/batch/execution/launch/SimpleJobTests.java
index 376cc97bf..164ff67d1 100644
--- a/spring-batch-execution/src/test/java/org/springframework/batch/execution/launch/SimpleJobTests.java
+++ b/spring-batch-execution/src/test/java/org/springframework/batch/execution/launch/SimpleJobTests.java
@@ -39,11 +39,11 @@ import org.springframework.batch.execution.repository.dao.MapStepDao;
import org.springframework.batch.execution.runtime.ScheduledJobIdentifierFactory;
import org.springframework.batch.execution.step.SimpleStepConfiguration;
import org.springframework.batch.execution.step.simple.SimpleStepExecutor;
-import org.springframework.batch.execution.tasklet.ItemProviderProcessTasklet;
+import org.springframework.batch.execution.tasklet.ItemOrientedTasklet;
import org.springframework.batch.item.ItemProcessor;
-import org.springframework.batch.item.ItemProvider;
+import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.ItemRecoverer;
-import org.springframework.batch.item.provider.ListItemProvider;
+import org.springframework.batch.item.provider.ListItemReader;
import org.springframework.batch.repeat.RepeatContext;
import org.springframework.batch.repeat.exception.handler.ExceptionHandler;
import org.springframework.batch.repeat.support.RepeatTemplate;
@@ -67,7 +67,7 @@ public class SimpleJobTests extends TestCase {
}
};
- private ItemProvider provider;
+ private ItemReader provider;
private DefaultJobExecutor jobExecutor = new DefaultJobExecutor();;
@@ -92,11 +92,11 @@ public class SimpleJobTests extends TestCase {
return getTasklet(new String[] { arg0, arg1 });
}
- private ItemProviderProcessTasklet getTasklet(String[] args) throws Exception {
- ItemProviderProcessTasklet module = new ItemProviderProcessTasklet();
+ private ItemOrientedTasklet getTasklet(String[] args) throws Exception {
+ ItemOrientedTasklet module = new ItemOrientedTasklet();
List items = TransactionAwareProxyFactory.createTransactionalList();
items.addAll(Arrays.asList(args));
- provider = new ListItemProvider(items);
+ provider = new ListItemReader(items);
module.setItemRecoverer(new ItemRecoverer() {
public boolean recover(Object item, Throwable cause) {
recovered.add(item);
@@ -161,7 +161,7 @@ public class SimpleJobTests extends TestCase {
* is recovered ("skipped") on the second attempt (see retry policy
* definition above)...
*/
- final ItemProviderProcessTasklet module = getTasklet(new String[] { "foo", "bar", "spam" });
+ final ItemOrientedTasklet module = getTasklet(new String[] { "foo", "bar", "spam" });
StepConfiguration step = new SimpleStepConfiguration(module);
module.setItemProcessor(new ItemProcessor() {
public void process(Object data) throws Exception {
@@ -177,7 +177,7 @@ public class SimpleJobTests extends TestCase {
assertEquals(BatchStatus.COMPLETED, jobExecution.getJob().getStatus());
assertEquals(0, processed.size());
// provider should be exhausted
- assertEquals(null, provider.next());
+ assertEquals(null, provider.read());
assertEquals(3, recovered.size());
}
@@ -185,7 +185,7 @@ public class SimpleJobTests extends TestCase {
JobConfiguration jobConfiguration = new JobConfiguration();
JobIdentifier runtimeInformation = new SimpleJobIdentifier("real.job");
- final ItemProviderProcessTasklet module = getTasklet(new String[] { "foo", "bar", "spam" });
+ final ItemOrientedTasklet module = getTasklet(new String[] { "foo", "bar", "spam" });
StepConfiguration step = new SimpleStepConfiguration(module);
module.setItemProcessor(new ItemProcessor() {
public void process(Object data) throws Exception {
diff --git a/spring-batch-execution/src/test/java/org/springframework/batch/execution/step/simple/DefaultStepExecutorTests.java b/spring-batch-execution/src/test/java/org/springframework/batch/execution/step/simple/DefaultStepExecutorTests.java
index 73b4d9fe9..a65ab3f80 100644
--- a/spring-batch-execution/src/test/java/org/springframework/batch/execution/step/simple/DefaultStepExecutorTests.java
+++ b/spring-batch-execution/src/test/java/org/springframework/batch/execution/step/simple/DefaultStepExecutorTests.java
@@ -36,10 +36,10 @@ import org.springframework.batch.execution.repository.dao.MapStepDao;
import org.springframework.batch.execution.scope.StepScope;
import org.springframework.batch.execution.scope.StepSynchronizationManager;
import org.springframework.batch.execution.step.SimpleStepConfiguration;
-import org.springframework.batch.execution.tasklet.ItemProviderProcessTasklet;
+import org.springframework.batch.execution.tasklet.ItemOrientedTasklet;
import org.springframework.batch.item.ItemProcessor;
-import org.springframework.batch.item.ItemProvider;
-import org.springframework.batch.item.provider.ListItemProvider;
+import org.springframework.batch.item.ItemReader;
+import org.springframework.batch.item.provider.ListItemReader;
import org.springframework.batch.repeat.ExitStatus;
import org.springframework.batch.repeat.RepeatContext;
import org.springframework.batch.repeat.exception.handler.DefaultExceptionHandler;
@@ -66,8 +66,8 @@ public class DefaultStepExecutorTests extends TestCase {
private RepeatTemplate template;
- private ItemProvider getProvider(String[] args) {
- return new ListItemProvider(Arrays.asList(args));
+ private ItemReader getProvider(String[] args) {
+ return new ListItemReader(Arrays.asList(args));
}
/**
@@ -76,7 +76,7 @@ public class DefaultStepExecutorTests extends TestCase {
* @throws Exception
*/
private Tasklet getTasklet(String[] strings) throws Exception {
- ItemProviderProcessTasklet module = new ItemProviderProcessTasklet();
+ ItemOrientedTasklet module = new ItemOrientedTasklet();
module.setItemProcessor(processor);
module.setItemProvider(getProvider(strings));
module.afterPropertiesSet();
diff --git a/spring-batch-execution/src/test/java/org/springframework/batch/execution/tasklet/ItemProviderProcessTaskletTests.java b/spring-batch-execution/src/test/java/org/springframework/batch/execution/tasklet/ItemOrientedTaskletTests.java
similarity index 87%
rename from spring-batch-execution/src/test/java/org/springframework/batch/execution/tasklet/ItemProviderProcessTaskletTests.java
rename to spring-batch-execution/src/test/java/org/springframework/batch/execution/tasklet/ItemOrientedTaskletTests.java
index 29975f580..f973a9a41 100644
--- a/spring-batch-execution/src/test/java/org/springframework/batch/execution/tasklet/ItemProviderProcessTaskletTests.java
+++ b/spring-batch-execution/src/test/java/org/springframework/batch/execution/tasklet/ItemOrientedTaskletTests.java
@@ -25,9 +25,9 @@ import junit.framework.TestCase;
import org.springframework.batch.io.Skippable;
import org.springframework.batch.item.ItemProcessor;
-import org.springframework.batch.item.ItemProvider;
+import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.ItemRecoverer;
-import org.springframework.batch.item.provider.AbstractItemProvider;
+import org.springframework.batch.item.provider.AbstractItemReader;
import org.springframework.batch.repeat.context.RepeatContextSupport;
import org.springframework.batch.repeat.synch.RepeatSynchronizationManager;
import org.springframework.batch.retry.policy.SimpleRetryPolicy;
@@ -38,16 +38,16 @@ import org.springframework.batch.support.PropertiesConverter;
* @author Dave Syer
* @author Peter Zozom
*/
-public class ItemProviderProcessTaskletTests extends TestCase {
+public class ItemOrientedTaskletTests extends TestCase {
private List list = new ArrayList();
private List items = new ArrayList();
- private ItemProvider itemProvider = new AbstractItemProvider() {
+ private ItemReader itemProvider = new AbstractItemReader() {
int count = 0;
- public Object next() throws Exception {
+ public Object read() throws Exception {
if (count < items.size()) {
Object data = items.get(count++);
if (data instanceof Exception) {
@@ -65,12 +65,12 @@ public class ItemProviderProcessTaskletTests extends TestCase {
}
};
- private ItemProviderProcessTasklet module;
+ private ItemOrientedTasklet module;
public void setUp() throws Exception {
// create module
- module = new ItemProviderProcessTasklet();
+ module = new ItemOrientedTasklet();
// set up module
module.setItemProvider(itemProvider);
@@ -144,15 +144,15 @@ public class ItemProviderProcessTaskletTests extends TestCase {
}
}
- public void testSkippableProvider() throws Exception {
- module.setItemProvider(new SkippableItemProvider());
+ public void testSkippableReader() throws Exception {
+ module.setItemProvider(new SkippableItemReader());
module.setItemRecoverer(null);
module.skip();
assertEquals(1, list.size());
}
- public void testSkippablProviderProcessor() throws Exception {
- module.setItemProvider(new SkippableItemProvider());
+ public void testSkippablReaderProcessor() throws Exception {
+ module.setItemProvider(new SkippableItemReader());
module.setItemProcessor(new SkippableItemProcessor());
module.setItemRecoverer(null);
module.skip();
@@ -160,7 +160,7 @@ public class ItemProviderProcessTaskletTests extends TestCase {
}
public void testStatisticsProvider() throws Exception {
- module.setItemProvider(new SkippableItemProvider());
+ module.setItemProvider(new SkippableItemReader());
Properties stats = module.getStatistics();
assertEquals(1, stats.size());
assertEquals("bar", stats.getProperty("foo"));
@@ -174,7 +174,7 @@ public class ItemProviderProcessTaskletTests extends TestCase {
}
public void testStatisticsProviderProcessor() throws Exception {
- module.setItemProvider(new SkippableItemProvider());
+ module.setItemProvider(new SkippableItemReader());
module.setItemProcessor(new SkippableItemProcessor());
Properties stats = module.getStatistics();
assertEquals(2, stats.size());
@@ -184,7 +184,7 @@ public class ItemProviderProcessTaskletTests extends TestCase {
public void testStatisticsProviderProcessorMergeDuplicates()
throws Exception {
- module.setItemProvider(new SkippableItemProvider());
+ module.setItemProvider(new SkippableItemReader());
module.setItemProcessor(new SkippableItemProcessor(
"foo=bar\nspam=bucket"));
Properties stats = module.getStatistics();
@@ -207,8 +207,8 @@ public class ItemProviderProcessTaskletTests extends TestCase {
}
});
- module.setItemProvider(new AbstractItemProvider() {
- public Object next() throws Exception {
+ module.setItemProvider(new AbstractItemReader() {
+ public Object read() throws Exception {
return "bar";
}
});
@@ -245,8 +245,8 @@ public class ItemProviderProcessTaskletTests extends TestCase {
return true;
}
});
- module.setItemProvider(new AbstractItemProvider() {
- public Object next() throws Exception {
+ module.setItemProvider(new AbstractItemReader() {
+ public Object read() throws Exception {
return "foo";
}
});
@@ -295,10 +295,10 @@ public class ItemProviderProcessTaskletTests extends TestCase {
}
}
- private class SkippableItemProvider implements ItemProvider,
+ private class SkippableItemReader implements ItemReader,
Skippable, StatisticsProvider {
- public Object next() throws Exception {
- return itemProvider.next();
+ public Object read() throws Exception {
+ return itemProvider.read();
}
public Object getKey(Object item) {
return item;
diff --git a/spring-batch-execution/src/test/java/org/springframework/batch/execution/tasklet/RestartableItemProviderTaskletTests.java b/spring-batch-execution/src/test/java/org/springframework/batch/execution/tasklet/RestartableItemOrientedTaskletTests.java
similarity index 88%
rename from spring-batch-execution/src/test/java/org/springframework/batch/execution/tasklet/RestartableItemProviderTaskletTests.java
rename to spring-batch-execution/src/test/java/org/springframework/batch/execution/tasklet/RestartableItemOrientedTaskletTests.java
index e88e69ebf..f6dcca269 100644
--- a/spring-batch-execution/src/test/java/org/springframework/batch/execution/tasklet/RestartableItemProviderTaskletTests.java
+++ b/spring-batch-execution/src/test/java/org/springframework/batch/execution/tasklet/RestartableItemOrientedTaskletTests.java
@@ -20,9 +20,9 @@ import java.util.Properties;
import junit.framework.TestCase;
-import org.springframework.batch.execution.tasklet.RestartableItemProviderTasklet;
+import org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet;
import org.springframework.batch.item.ItemProcessor;
-import org.springframework.batch.item.ItemProvider;
+import org.springframework.batch.item.ItemReader;
import org.springframework.batch.restart.GenericRestartData;
import org.springframework.batch.restart.RestartData;
import org.springframework.batch.restart.Restartable;
@@ -31,9 +31,9 @@ import org.springframework.batch.support.PropertiesConverter;
/**
* @author Peter Zozom
*/
-public class RestartableItemProviderTaskletTests extends TestCase {
+public class RestartableItemOrientedTaskletTests extends TestCase {
- private static class MockProvider implements ItemProvider, Restartable {
+ private static class MockProvider implements ItemReader, Restartable {
RestartData data = new RestartData() {
@@ -43,7 +43,7 @@ public class RestartableItemProviderTaskletTests extends TestCase {
};
- public Object next() {
+ public Object read() {
return null;
}
@@ -88,11 +88,11 @@ public class RestartableItemProviderTaskletTests extends TestCase {
}
- private ItemProvider itemProvider;
+ private ItemReader itemProvider;
private ItemProcessor itemProcessor;
- private RestartableItemProviderTasklet module;
+ private RestartableItemOrientedTasklet module;
public void testRestart() {
@@ -101,7 +101,7 @@ public class RestartableItemProviderTaskletTests extends TestCase {
itemProcessor = new MockProcessor();
// create and set up module
- module = new RestartableItemProviderTasklet();
+ module = new RestartableItemOrientedTasklet();
module.setItemProvider(itemProvider);
module.setItemProcessor(itemProcessor);
@@ -119,7 +119,7 @@ public class RestartableItemProviderTaskletTests extends TestCase {
itemProcessor = new MockProcessor();
// create and set up module
- module = new RestartableItemProviderTasklet();
+ module = new RestartableItemOrientedTasklet();
module.setItemProvider(itemProvider);
module.setItemProcessor(itemProcessor);
@@ -134,7 +134,7 @@ public class RestartableItemProviderTaskletTests extends TestCase {
public void testRestartFromNotRestartable() {
// create and set up module
- module = new RestartableItemProviderTasklet();
+ module = new RestartableItemOrientedTasklet();
module.setItemProvider(null);
module.setItemProcessor(null);
diff --git a/spring-batch-execution/src/test/resources/job-configuration.xml b/spring-batch-execution/src/test/resources/job-configuration.xml
index 42e170dc7..5b9db1294 100644
--- a/spring-batch-execution/src/test/resources/job-configuration.xml
+++ b/spring-batch-execution/src/test/resources/job-configuration.xml
@@ -16,10 +16,10 @@
+ class="org.springframework.batch.execution.tasklet.ItemOrientedTasklet">
+ class="org.springframework.batch.item.provider.ListItemReader">
diff --git a/spring-batch-execution/src/test/resources/org/springframework/batch/execution/configuration/test-context.xml b/spring-batch-execution/src/test/resources/org/springframework/batch/execution/configuration/test-context.xml
index 345a8b28d..c9a3fef7f 100644
--- a/spring-batch-execution/src/test/resources/org/springframework/batch/execution/configuration/test-context.xml
+++ b/spring-batch-execution/src/test/resources/org/springframework/batch/execution/configuration/test-context.xml
@@ -18,10 +18,10 @@
+ class="org.springframework.batch.execution.tasklet.ItemOrientedTasklet">
+ class="org.springframework.batch.item.provider.ListItemReader">
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/InputSource.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/InputSource.java
deleted file mode 100644
index 61629d998..000000000
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/InputSource.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright 2006-2007 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.batch.io;
-
-
-/**
- * Basic interface for generic input operations. Class implementing this
- * interface will be responsible for reading records from input stream and also
- * possibly for mapping these records to objects. Generally it is responsibility
- * of implementing class to decide which technology to use for mapping and how
- * it should be configured.
- *
- * @author Dave Syer
- */
-public interface InputSource {
-
- /**
- * Read record from input stream and map it to an object.
- *
- * @return the value object
- */
- public Object read();
-}
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/cursor/HibernateCursorInputSource.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/cursor/HibernateCursorItemReader.java
similarity index 90%
rename from spring-batch-infrastructure/src/main/java/org/springframework/batch/io/cursor/HibernateCursorInputSource.java
rename to spring-batch-infrastructure/src/main/java/org/springframework/batch/io/cursor/HibernateCursorItemReader.java
index 413be6531..40775b123 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/cursor/HibernateCursorInputSource.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/cursor/HibernateCursorItemReader.java
@@ -23,9 +23,10 @@ import org.hibernate.ScrollableResults;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.StatelessSession;
-import org.springframework.batch.io.InputSource;
import org.springframework.batch.io.Skippable;
+import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.ResourceLifecycle;
+import org.springframework.batch.item.provider.AbstractItemReader;
import org.springframework.batch.repeat.synch.BatchTransactionSynchronizationManager;
import org.springframework.batch.restart.GenericRestartData;
import org.springframework.batch.restart.RestartData;
@@ -39,7 +40,7 @@ import org.springframework.util.ClassUtils;
import org.springframework.util.StringUtils;
/**
- * {@link InputSource} for reading database records built on top of Hibernate.
+ * {@link ItemReader} for reading database records built on top of Hibernate.
*
* It executes the HQL {@link #queryString} when initialized and iterates over
* the result set as {@link #read()} method is called, returning an object
@@ -56,15 +57,15 @@ import org.springframework.util.StringUtils;
* @author Robert Kasanicky
* @author Dave Syer
*/
-public class HibernateCursorInputSource implements InputSource, Restartable,
+public class HibernateCursorItemReader extends AbstractItemReader implements ItemReader, Restartable,
Skippable, InitializingBean, DisposableBean, ResourceLifecycle {
private static final String RESTART_DATA_ROW_NUMBER_KEY = ClassUtils
- .getShortName(HibernateCursorInputSource.class)
+ .getShortName(HibernateCursorItemReader.class)
+ ".rowNumber";
private static final String SKIPPED_ROWS = ClassUtils
- .getShortName(HibernateCursorInputSource.class)
+ .getShortName(HibernateCursorItemReader.class)
+ ".skippedRows";;
private SessionFactory sessionFactory;
@@ -90,7 +91,7 @@ public class HibernateCursorInputSource implements InputSource, Restartable,
private boolean initialized = false;
- private TransactionSynchronization synchronization = new HibernateInputSourceTransactionSynchronization();
+ private TransactionSynchronization synchronization = new HibernateItemReaderTransactionSynchronization();
public Object read() {
if (!initialized) {
@@ -238,7 +239,7 @@ public class HibernateCursorInputSource implements InputSource, Restartable,
/**
* Encapsulates transaction events handling.
*/
- private class HibernateInputSourceTransactionSynchronization extends
+ private class HibernateItemReaderTransactionSynchronization extends
TransactionSynchronizationAdapter {
public void afterCompletion(int status) {
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/cursor/JdbcCursorInputSource.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/cursor/JdbcCursorItemReader.java
similarity index 94%
rename from spring-batch-infrastructure/src/main/java/org/springframework/batch/io/cursor/JdbcCursorInputSource.java
rename to spring-batch-infrastructure/src/main/java/org/springframework/batch/io/cursor/JdbcCursorItemReader.java
index e995a0867..f5fc39efb 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/cursor/JdbcCursorInputSource.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/cursor/JdbcCursorItemReader.java
@@ -29,9 +29,9 @@ import javax.sql.DataSource;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.springframework.batch.io.InputSource;
import org.springframework.batch.io.Skippable;
import org.springframework.batch.io.support.AbstractTransactionalIoSource;
+import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.ResourceLifecycle;
import org.springframework.batch.restart.GenericRestartData;
import org.springframework.batch.restart.RestartData;
@@ -116,11 +116,11 @@ import org.springframework.util.StringUtils;
* @author Lucas Ward
* @author Peter Zozom
*/
-public class JdbcCursorInputSource extends AbstractTransactionalIoSource
- implements InputSource, ResourceLifecycle, DisposableBean,
+public class JdbcCursorItemReader extends AbstractTransactionalIoSource
+ implements ItemReader, ResourceLifecycle, DisposableBean,
InitializingBean, Restartable, StatisticsProvider, Skippable {
- private static Log log = LogFactory.getLog(JdbcCursorInputSource.class);
+ private static Log log = LogFactory.getLog(JdbcCursorItemReader.class);
public static final int VALUE_NOT_SET = -1;
@@ -565,4 +565,13 @@ public class JdbcCursorInputSource extends AbstractTransactionalIoSource
initialized = true;
}
+
+ /**
+ * Return the item itself (which is already a key).
+ * @see org.springframework.batch.item.ItemReader#getKey(java.lang.Object)
+ */
+ public Object getKey(Object item) {
+ return item;
+ }
+
}
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/driving/DrivingQueryInputSource.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/driving/DrivingQueryItemReader.java
similarity index 86%
rename from spring-batch-infrastructure/src/main/java/org/springframework/batch/io/driving/DrivingQueryInputSource.java
rename to spring-batch-infrastructure/src/main/java/org/springframework/batch/io/driving/DrivingQueryItemReader.java
index 5701c4819..1dc05952f 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/driving/DrivingQueryInputSource.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/driving/DrivingQueryItemReader.java
@@ -18,8 +18,8 @@ package org.springframework.batch.io.driving;
import java.util.Iterator;
import java.util.List;
-import org.springframework.batch.io.InputSource;
import org.springframework.batch.io.support.AbstractTransactionalIoSource;
+import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.ResourceLifecycle;
import org.springframework.batch.repeat.synch.BatchTransactionSynchronizationManager;
import org.springframework.batch.restart.RestartData;
@@ -50,8 +50,8 @@ import org.springframework.util.Assert;
* @author Lucas Ward
* @since 1.0
*/
-public class DrivingQueryInputSource extends AbstractTransactionalIoSource
- implements InputSource, ResourceLifecycle, InitializingBean,
+public class DrivingQueryItemReader extends AbstractTransactionalIoSource
+ implements ItemReader, ResourceLifecycle, InitializingBean,
DisposableBean, Restartable {
private boolean initialized = false;
@@ -66,7 +66,7 @@ public class DrivingQueryInputSource extends AbstractTransactionalIoSource
private KeyGenerator keyGenerator;
- public DrivingQueryInputSource() {
+ public DrivingQueryItemReader() {
}
@@ -75,14 +75,14 @@ public class DrivingQueryInputSource extends AbstractTransactionalIoSource
*
* @param keys
*/
- public DrivingQueryInputSource(List keys) {
+ public DrivingQueryItemReader(List keys) {
this.keys = keys;
this.keysIterator = keys.iterator();
}
/**
- * Return the next key in the List. If the InputSource has not been
- * initialized yet, then {@link AbstractDrivingQueryInputSource.open()} will
+ * Return the next key in the List. If the ItemReader has not been
+ * initialized yet, then {@link AbstractDrivingQueryItemReader.open()} will
* be called.
*
* @return next key in the list if not index is not at the last element,
@@ -103,7 +103,7 @@ public class DrivingQueryInputSource extends AbstractTransactionalIoSource
/**
* Get the current key. This method will return the same object returned by
- * the last read() method. If the InputSource hasn't been initialized yet,
+ * the last read() method. If the ItemReader hasn't been initialized yet,
* then null will be returned.
*
* @return the current key.
@@ -217,4 +217,12 @@ public class DrivingQueryInputSource extends AbstractTransactionalIoSource
keysIterator = keys.listIterator(lastCommitIndex);
}
+ /**
+ * Return the item itself (which is already a key).
+ * @see org.springframework.batch.item.ItemReader#getKey(java.lang.Object)
+ */
+ public Object getKey(Object item) {
+ return item;
+ }
+
}
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/driving/IbatisDrivingQueryInputSource.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/driving/IbatisDrivingQueryItemReader.java
similarity index 86%
rename from spring-batch-infrastructure/src/main/java/org/springframework/batch/io/driving/IbatisDrivingQueryInputSource.java
rename to spring-batch-infrastructure/src/main/java/org/springframework/batch/io/driving/IbatisDrivingQueryItemReader.java
index 821dbd89d..b33117e28 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/driving/IbatisDrivingQueryInputSource.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/driving/IbatisDrivingQueryItemReader.java
@@ -21,13 +21,13 @@ import org.springframework.orm.ibatis.SqlMapClientTemplate;
import com.ibatis.sqlmap.client.SqlMapClient;
/**
- * Extension of {@link DrivingQueryInputSource} that maps keys to
+ * Extension of {@link DrivingQueryItemReader} that maps keys to
* objects. An iBatis query id must be set to map and return each 'detail record'.
*
* @author Lucas Ward
* @see IbatisKeyGenerator
*/
-public class IbatisDrivingQueryInputSource extends DrivingQueryInputSource {
+public class IbatisDrivingQueryItemReader extends DrivingQueryItemReader {
private String detailsQueryId;
@@ -36,7 +36,7 @@ public class IbatisDrivingQueryInputSource extends DrivingQueryInputSource {
/**
* Overridden read() that uses the returned key as arguments to the details query.
*
- * @see org.springframework.batch.io.driving.DrivingQueryInputSource#read()
+ * @see org.springframework.batch.io.driving.DrivingQueryItemReader#read()
*/
public Object read() {
Object key = super.read();
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/driving/support/IbatisKeyGenerator.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/driving/support/IbatisKeyGenerator.java
index 9bfe64165..c71ee530c 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/driving/support/IbatisKeyGenerator.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/driving/support/IbatisKeyGenerator.java
@@ -3,7 +3,7 @@ package org.springframework.batch.io.driving.support;
import java.util.List;
import java.util.Properties;
-import org.springframework.batch.io.driving.DrivingQueryInputSource;
+import org.springframework.batch.io.driving.DrivingQueryItemReader;
import org.springframework.batch.io.driving.KeyGenerator;
import org.springframework.batch.restart.GenericRestartData;
import org.springframework.batch.restart.RestartData;
@@ -19,11 +19,11 @@ import com.ibatis.sqlmap.client.SqlMapClient;
*
* @author Robert Kasanicky
* @author Lucas Ward
- * @see DrivingQueryInputSource
+ * @see DrivingQueryItemReader
*/
public class IbatisKeyGenerator implements KeyGenerator {
- public static final String RESTART_KEY = "IbatisDrivingQueryInputSource.keyIndex";
+ public static final String RESTART_KEY = "IbatisDrivingQueryItemReader.keyIndex";
private SqlMapClientTemplate sqlMapClientTemplate;
@@ -34,7 +34,7 @@ public class IbatisKeyGenerator implements KeyGenerator {
/*
* Retrieve the keys using the provided driving query id.
*
- * @see org.springframework.batch.io.support.AbstractDrivingQueryInputSource#retrieveKeys()
+ * @see org.springframework.batch.io.support.AbstractDrivingQueryItemReader#retrieveKeys()
*/
public List retrieveKeys() {
return sqlMapClientTemplate.queryForList(drivingQuery);
@@ -54,7 +54,7 @@ public class IbatisKeyGenerator implements KeyGenerator {
/**
* Restore the keys list given the provided restart data.
*
- * @see org.springframework.batch.io.driving.DrivingQueryInputSource#restoreKeys(org.springframework.batch.restart.RestartData)
+ * @see org.springframework.batch.io.driving.DrivingQueryItemReader#restoreKeys(org.springframework.batch.restart.RestartData)
*/
public List restoreKeys(RestartData data) {
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/driving/support/MultipleColumnJdbcKeyGenerator.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/driving/support/MultipleColumnJdbcKeyGenerator.java
index 95161c668..906993caa 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/driving/support/MultipleColumnJdbcKeyGenerator.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/driving/support/MultipleColumnJdbcKeyGenerator.java
@@ -18,7 +18,7 @@ package org.springframework.batch.io.driving.support;
import java.util.ArrayList;
import java.util.List;
-import org.springframework.batch.io.driving.DrivingQueryInputSource;
+import org.springframework.batch.io.driving.DrivingQueryItemReader;
import org.springframework.batch.io.driving.KeyGenerator;
import org.springframework.batch.restart.RestartData;
import org.springframework.jdbc.core.JdbcTemplate;
@@ -33,13 +33,13 @@ import org.springframework.util.StringUtils;
*
*
* @author Lucas Ward
- * @see DrivingQueryInputSource
+ * @see DrivingQueryItemReader
* @since 1.0
*/
public class MultipleColumnJdbcKeyGenerator implements
KeyGenerator {
- public static final String RESTART_KEY = "CompositeKeySqlDrivingQueryInputSource.key";
+ public static final String RESTART_KEY = "CompositeKeySqlDrivingQueryItemReader.key";
private JdbcTemplate jdbcTemplate;
@@ -54,7 +54,7 @@ public class MultipleColumnJdbcKeyGenerator implements
}
/**
- * Construct a new InputSource.
+ * Construct a new ItemReader.
*
* @param jdbcTemplate
* @param sql - Sql statement that returns all keys to process.
@@ -71,14 +71,14 @@ public class MultipleColumnJdbcKeyGenerator implements
}
/* (non-Javadoc)
- * @see org.springframework.batch.io.sql.scratch.AbstractDrivingQueryInputSource#retrieveKeys()
+ * @see org.springframework.batch.io.sql.scratch.AbstractDrivingQueryItemReader#retrieveKeys()
*/
public List retrieveKeys() {
return jdbcTemplate.query(sql, keyMapper);
}
/* (non-Javadoc)
- * @see org.springframework.batch.io.sql.scratch.AbstractDrivingQueryInputSource#restoreKeys(org.springframework.batch.restart.RestartData)
+ * @see org.springframework.batch.io.sql.scratch.AbstractDrivingQueryItemReader#restoreKeys(org.springframework.batch.restart.RestartData)
*/
public List restoreKeys(RestartData restartData) {
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/support/DefaultFlatFileInputSource.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/support/DefaultFlatFileItemReader.java
similarity index 95%
rename from spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/support/DefaultFlatFileInputSource.java
rename to spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/support/DefaultFlatFileItemReader.java
index 24d0b9e28..5cb0adffa 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/support/DefaultFlatFileInputSource.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/support/DefaultFlatFileItemReader.java
@@ -33,7 +33,7 @@ import org.springframework.transaction.support.TransactionSynchronizationAdapter
/**
*
- * This class is a {@link FieldSetInputSource} that supports restart,
+ * This class is a {@link FieldSetItemReader} that supports restart,
* skipping invalid lines and storing statistics.
*
*
@@ -41,9 +41,9 @@ import org.springframework.transaction.support.TransactionSynchronizationAdapter
* @author Tomas Slanina
* @author Robert Kasanicky
*/
-public class DefaultFlatFileInputSource extends SimpleFlatFileInputSource implements Skippable, Restartable,
+public class DefaultFlatFileItemReader extends SimpleFlatFileItemReader implements Skippable, Restartable,
StatisticsProvider {
- private static Log log = LogFactory.getLog(DefaultFlatFileInputSource.class);
+ private static Log log = LogFactory.getLog(DefaultFlatFileItemReader.class);
public static final String READ_STATISTICS_NAME = "lines.read.count";
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/support/ResourceLineReader.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/support/ResourceLineReader.java
index be369e6cd..f4824be85 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/support/ResourceLineReader.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/support/ResourceLineReader.java
@@ -25,11 +25,12 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
-import org.springframework.batch.io.InputSource;
import org.springframework.batch.io.exception.BatchEnvironmentException;
import org.springframework.batch.io.file.support.separator.DefaultRecordSeparatorPolicy;
import org.springframework.batch.io.file.support.separator.RecordSeparatorPolicy;
+import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.ResourceLifecycle;
+import org.springframework.batch.item.provider.AbstractItemReader;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.core.io.Resource;
import org.springframework.util.Assert;
@@ -57,7 +58,7 @@ import org.springframework.util.Assert;
* @author Dave Syer
* @author Rob Harrop
*/
-class ResourceLineReader implements ResourceLifecycle, InputSource,
+class ResourceLineReader extends AbstractItemReader implements ResourceLifecycle, ItemReader,
DisposableBean {
private static final Collection DEFAULT_COMMENTS = Collections
@@ -128,7 +129,7 @@ class ResourceLineReader implements ResourceLifecycle, InputSource,
* if there is an IOException while accessing the input
* resource.
*
- * @see org.springframework.batch.item.provider.support.InputSource#read()
+ * @see org.springframework.batch.item.provider.support.ItemReader#read()
*/
public synchronized Object read() {
// Make a copy of the recordSeparatorPolicy reference, in case it is
@@ -179,7 +180,7 @@ class ResourceLineReader implements ResourceLifecycle, InputSource,
/**
* Close the reader associated with this input source.
*
- * @see org.springframework.batch.io.InputSource#close()
+ * @see org.springframework.batch.io.ItemReader#close()
* @throws BatchEnvironmentException
* if there is an {@link IOException} during the close
* operation.
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/support/SimpleFlatFileInputSource.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/support/SimpleFlatFileItemReader.java
similarity index 90%
rename from spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/support/SimpleFlatFileInputSource.java
rename to spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/support/SimpleFlatFileItemReader.java
index 0728e185d..1a920eb6c 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/support/SimpleFlatFileInputSource.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/support/SimpleFlatFileItemReader.java
@@ -18,7 +18,6 @@ package org.springframework.batch.io.file.support;
import java.io.IOException;
-import org.springframework.batch.io.InputSource;
import org.springframework.batch.io.exception.FlatFileParsingException;
import org.springframework.batch.io.file.FieldSet;
import org.springframework.batch.io.file.FieldSetMapper;
@@ -26,7 +25,9 @@ import org.springframework.batch.io.file.support.separator.RecordSeparatorPolicy
import org.springframework.batch.io.file.support.transform.AbstractLineTokenizer;
import org.springframework.batch.io.file.support.transform.DelimitedLineTokenizer;
import org.springframework.batch.io.file.support.transform.LineTokenizer;
+import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.ResourceLifecycle;
+import org.springframework.batch.item.provider.AbstractItemReader;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.core.io.Resource;
@@ -39,16 +40,16 @@ import org.springframework.util.Assert;
* structure of the file, {@link LineTokenizer} is used to parse data obtained
* from the file.
*
- * A {@link SimpleFlatFileInputSource} is not thread safe because it maintains
+ * A {@link SimpleFlatFileItemReader} is not thread safe because it maintains
* state in the form of a {@link ResourceLineReader}. Be careful to configure a
- * {@link SimpleFlatFileInputSource} using an appropriate factory or scope so
+ * {@link SimpleFlatFileItemReader} using an appropriate factory or scope so
* that it is not shared between threads.
*
- * @see FieldSetInputSource
+ * @see FieldSetItemReader
*
* @author Dave Syer
*/
-public class SimpleFlatFileInputSource implements InputSource,
+public class SimpleFlatFileItemReader extends AbstractItemReader implements ItemReader,
InitializingBean, DisposableBean {
// default encoding for input files - set to ISO-8859-1
@@ -182,9 +183,9 @@ public class SimpleFlatFileInputSource implements InputSource,
/**
* A wrapper for {@link #readFieldSet()} to make this into a real
- * {@link InputSource}.
+ * {@link ItemReader}.
*
- * @see org.springframework.batch.io.InputSource#read()
+ * @see org.springframework.batch.io.ItemReader#read()
*/
public Object read() {
String line = readLine();
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/support/StaxEventReaderInputSource.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/support/StaxEventReaderItemReader.java
similarity index 82%
rename from spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/support/StaxEventReaderInputSource.java
rename to spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/support/StaxEventReaderItemReader.java
index d90f9933f..29eccba6f 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/support/StaxEventReaderInputSource.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/support/StaxEventReaderItemReader.java
@@ -12,14 +12,15 @@ import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.events.StartElement;
-import org.springframework.batch.io.InputSource;
import org.springframework.batch.io.Skippable;
import org.springframework.batch.io.file.support.stax.DefaultFragmentEventReader;
import org.springframework.batch.io.file.support.stax.DefaultTransactionalEventReader;
import org.springframework.batch.io.file.support.stax.FragmentDeserializer;
import org.springframework.batch.io.file.support.stax.FragmentEventReader;
import org.springframework.batch.io.file.support.stax.TransactionalEventReader;
+import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.ResourceLifecycle;
+import org.springframework.batch.item.provider.AbstractItemReader;
import org.springframework.batch.repeat.synch.BatchTransactionSynchronizationManager;
import org.springframework.batch.restart.GenericRestartData;
import org.springframework.batch.restart.RestartData;
@@ -35,19 +36,20 @@ import org.springframework.util.Assert;
/**
* Input source for reading XML input based on StAX.
- *
+ *
* It extracts fragments from the input XML document which correspond to records
* for processing. The fragments are wrapped with StartDocument and EndDocument
* events so that the fragments can be further processed like standalone XML
* documents.
- *
+ *
* @author Robert Kasanicky
*/
-public class StaxEventReaderInputSource implements InputSource, ResourceLifecycle, Skippable, Restartable, StatisticsProvider, InitializingBean, DisposableBean {
+public class StaxEventReaderItemReader extends AbstractItemReader implements ItemReader, ResourceLifecycle,
+ Skippable, Restartable, StatisticsProvider, InitializingBean, DisposableBean {
- public static final String READ_COUNT_STATISTICS_NAME = "StaxEventReaderInputSource.readCount";
+ public static final String READ_COUNT_STATISTICS_NAME = "StaxEventReaderItemReader.readCount";
- private static final String RESTART_DATA_NAME = "StaxEventReaderInputSource.recordcount";
+ private static final String RESTART_DATA_NAME = "StaxEventReaderItemReader.recordcount";
private FragmentEventReader fragmentReader;
@@ -63,7 +65,7 @@ public class StaxEventReaderInputSource implements InputSource, ResourceLifecycl
private boolean initialized = false;
- private TransactionSynchronization synchronization = new StaxEventReaderInputSourceTransactionSychronization();
+ private TransactionSynchronization synchronization = new StaxEventReaderItemReaderTransactionSychronization();
private long lastCommitPointRecordCount = 0;
@@ -73,9 +75,9 @@ public class StaxEventReaderInputSource implements InputSource, ResourceLifecycl
/**
* Read in the next root element from the file, and return it.
- *
+ *
* @return the next available record, if none exist, return null
- * @see org.springframework.batch.io.InputSource#read()
+ * @see org.springframework.batch.io.ItemReader#read()
*/
public Object read() {
if (!initialized) {
@@ -120,8 +122,8 @@ public class StaxEventReaderInputSource implements InputSource, ResourceLifecycl
registerSynchronization();
try {
inputStream = resource.getInputStream();
- txReader = new DefaultTransactionalEventReader(XMLInputFactory
- .newInstance().createXMLEventReader(inputStream));
+ txReader = new DefaultTransactionalEventReader(XMLInputFactory.newInstance().createXMLEventReader(
+ inputStream));
fragmentReader = new DefaultFragmentEventReader(txReader);
}
catch (XMLStreamException xse) {
@@ -138,8 +140,8 @@ public class StaxEventReaderInputSource implements InputSource, ResourceLifecycl
}
/**
- * @param fragmentDeserializer maps xml fragments corresponding to records to
- * objects
+ * @param fragmentDeserializer maps xml fragments corresponding to records
+ * to objects
*/
public void setFragmentDeserializer(FragmentDeserializer fragmentDeserializer) {
this.fragmentDeserializer = fragmentDeserializer;
@@ -156,7 +158,7 @@ public class StaxEventReaderInputSource implements InputSource, ResourceLifecycl
/**
* Mark the last read record as 'skipped', so that I will not be returned
* from read() in the case of a rollback.
- *
+ *
* @see Skippable#skip()
*/
public void skip() {
@@ -173,9 +175,9 @@ public class StaxEventReaderInputSource implements InputSource, ResourceLifecycl
}
/**
- * Ensure that all required dependencies for the InputSource to run are provided
- * after all properties have been set.
- *
+ * Ensure that all required dependencies for the ItemReader to run are
+ * provided after all properties have been set.
+ *
* @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet()
* @throws IllegalArgumentException if the Resource, FragmentDeserializer or
* FragmentRootElementName is null, or if the root element is empty.
@@ -201,17 +203,17 @@ public class StaxEventReaderInputSource implements InputSource, ResourceLifecycl
}
/**
- * Restores the input source for the given restart data by rereading and skipping
- * the number of records stored in the RestartData.
- *
+ * Restores the input source for the given restart data by rereading and
+ * skipping the number of records stored in the RestartData.
+ *
* @param RestartData that holds the line count from the last commit.
- * @throws IllegalStateException if the InputSource has already been initialized
- * or if the number of records to read and skip exceeds the available records.
+ * @throws IllegalStateException if the ItemReader has already been
+ * initialized or if the number of records to read and skip exceeds the
+ * available records.
*/
public void restoreFrom(RestartData data) {
Assert.state(!initialized);
- if (data == null || data.getProperties() == null ||
- data.getProperties().getProperty(RESTART_DATA_NAME) == null) {
+ if (data == null || data.getProperties() == null || data.getProperties().getProperty(RESTART_DATA_NAME) == null) {
return;
}
@@ -232,13 +234,15 @@ public class StaxEventReaderInputSource implements InputSource, ResourceLifecycl
}
/**
- * Responsible for moving the cursor before the StartElement of the fragment root.
- *
- * This implementation simply looks for the next corresponding element, it does not care
- * about element nesting. You will need to override this method to correctly handle
- * composite fragments.
- *
- * @return true if next fragment was found, false otherwise.
+ * Responsible for moving the cursor before the StartElement of the fragment
+ * root.
+ *
+ * This implementation simply looks for the next corresponding element, it
+ * does not care about element nesting. You will need to override this
+ * method to correctly handle composite fragments.
+ *
+ * @return true if next fragment was found,
+ * false otherwise.
*/
protected boolean moveCursorToNextFragment(XMLEventReader reader) {
try {
@@ -252,7 +256,8 @@ public class StaxEventReaderInputSource implements InputSource, ResourceLifecycl
QName startElementName = ((StartElement) reader.peek()).getName();
if (startElementName.getLocalPart().equals(fragmentRootElementName)) {
return true;
- } else {
+ }
+ else {
reader.nextEvent();
}
}
@@ -268,9 +273,9 @@ public class StaxEventReaderInputSource implements InputSource, ResourceLifecycl
}
/**
- * Encapsulates transaction events for the StaxEventReaderInputSource.
+ * Encapsulates transaction events for the StaxEventReaderItemReader.
*/
- private class StaxEventReaderInputSourceTransactionSychronization extends TransactionSynchronizationAdapter {
+ private class StaxEventReaderItemReaderTransactionSychronization extends TransactionSynchronizationAdapter {
/**
* @param status
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/support/AbstractTransactionalIoSource.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/support/AbstractTransactionalIoSource.java
index f7b8f62cf..b4d88cd85 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/support/AbstractTransactionalIoSource.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/support/AbstractTransactionalIoSource.java
@@ -15,8 +15,8 @@
*/
package org.springframework.batch.io.support;
-import org.springframework.batch.io.InputSource;
import org.springframework.batch.io.ItemWriter;
+import org.springframework.batch.item.ItemReader;
import org.springframework.batch.repeat.synch.BatchTransactionSynchronizationManager;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.transaction.support.TransactionSynchronization;
@@ -26,7 +26,7 @@ import org.springframework.transaction.support.TransactionSynchronizationManager
/**
*
* Abstract class that abstracts away transaction handling from input and
- * output. Any {@link InputSource} or {@link ItemWriter} that wants to be
+ * output. Any {@link ItemReader} or {@link ItemWriter} that wants to be
* notified of transaction events to maintain the contract that all calls to
* read or write can extend this base class to ensure that correct ordering is
* maintained regardless of rollbacks.
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/FailedItemIdentifier.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/FailedItemIdentifier.java
index 21e30ff3c..5adf68b47 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/FailedItemIdentifier.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/FailedItemIdentifier.java
@@ -17,7 +17,7 @@
package org.springframework.batch.item;
/**
- * Mixin interface for {@link ItemProvider} implementations if they can
+ * Mixin interface for {@link ItemReader} implementations if they can
* distinguish a new item from one that has been processed before and failed,
* e.g. by examining a message flag.
*
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/ItemProvider.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/ItemReader.java
similarity index 96%
rename from spring-batch-infrastructure/src/main/java/org/springframework/batch/item/ItemProvider.java
rename to spring-batch-infrastructure/src/main/java/org/springframework/batch/item/ItemReader.java
index 25f9a0c4d..71a2d8609 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/ItemProvider.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/ItemReader.java
@@ -24,7 +24,7 @@ package org.springframework.batch.item;
* for each batch, with each call to {@link #next} returning a different value
* and finally returning null when all input data is exhausted.
*
- * Implementations need to be thread safe and clients of a {@link ItemProvider}
+ * Implementations need to be thread safe and clients of a {@link ItemReader}
* need to be aware that this is the case. Clients can code to this interface
* without worrying about thread safety by using the AbstractItemProvider base
* class.
@@ -35,7 +35,7 @@ package org.springframework.batch.item;
* @author Rob Harrop
* @author Dave Syer
*/
-public interface ItemProvider {
+public interface ItemReader {
/**
* Reads a piece of input data and advance to the next one. Implementations
@@ -46,7 +46,7 @@ public interface ItemProvider {
*
* @throws Exception if an underlying resource is unavailable.
*/
- Object next() throws Exception;
+ Object read() throws Exception;
/**
* Get a unique identifier for the item that can be used to cache it between
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/processor/DelegatingItemProcessor.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/processor/ItemProcessorAdapter.java
similarity index 83%
rename from spring-batch-infrastructure/src/main/java/org/springframework/batch/item/processor/DelegatingItemProcessor.java
rename to spring-batch-infrastructure/src/main/java/org/springframework/batch/item/processor/ItemProcessorAdapter.java
index bda01f4bf..a7c58ecba 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/processor/DelegatingItemProcessor.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/processor/ItemProcessorAdapter.java
@@ -17,7 +17,7 @@
package org.springframework.batch.item.processor;
import org.springframework.batch.item.ItemProcessor;
-import org.springframework.batch.support.AbstractDelegator;
+import org.springframework.batch.support.AbstractMethodInvokingDelegator;
/**
@@ -28,7 +28,7 @@ import org.springframework.batch.support.AbstractDelegator;
*
* @author Robert Kasanicky
*/
-public class DelegatingItemProcessor extends AbstractDelegator implements ItemProcessor {
+public class ItemProcessorAdapter extends AbstractMethodInvokingDelegator implements ItemProcessor {
public void process(Object item) throws Exception {
invokeDelegateMethodWithArgument(item);
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/processor/PropertyExtractingDelegatingItemProcessor.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/processor/PropertyExtractingDelegatingItemProcessor.java
index 277dff2b0..3c934418a 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/processor/PropertyExtractingDelegatingItemProcessor.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/processor/PropertyExtractingDelegatingItemProcessor.java
@@ -17,7 +17,7 @@
package org.springframework.batch.item.processor;
import org.springframework.batch.item.ItemProcessor;
-import org.springframework.batch.support.AbstractDelegator;
+import org.springframework.batch.support.AbstractMethodInvokingDelegator;
import org.springframework.beans.BeanWrapper;
import org.springframework.beans.BeanWrapperImpl;
import org.springframework.util.Assert;
@@ -26,11 +26,11 @@ import org.springframework.util.Assert;
* Delegates processing to a custom method - extracts property values
* from item object and uses them as arguments for the delegate method.
*
- * @see DelegatingItemProcessor
+ * @see ItemProcessorAdapter
*
* @author Robert Kasanicky
*/
-public class PropertyExtractingDelegatingItemProcessor extends AbstractDelegator implements ItemProcessor {
+public class PropertyExtractingDelegatingItemProcessor extends AbstractMethodInvokingDelegator implements ItemProcessor {
private String[] fieldsUsedAsTargetMethodArguments;
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/AbstractItemProvider.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/AbstractItemReader.java
similarity index 78%
rename from spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/AbstractItemProvider.java
rename to spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/AbstractItemReader.java
index e73d4f4b7..79f4076f4 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/AbstractItemProvider.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/AbstractItemReader.java
@@ -16,21 +16,21 @@
package org.springframework.batch.item.provider;
-import org.springframework.batch.item.ItemProvider;
+import org.springframework.batch.item.ItemReader;
/**
- * Base class for {@link ItemProvider} implementations.
+ * Base class for {@link ItemReader} implementations.
* @author Dave Syer
*
*/
-public abstract class AbstractItemProvider implements ItemProvider {
+public abstract class AbstractItemReader implements ItemReader {
/**
* Simply returns the item itself. Will be adequate for many purposes, but
* not (for example) if the item is a message - in which case the identifier
* should be used.
*
- * @see org.springframework.batch.item.ItemProvider#getKey(java.lang.Object)
+ * @see org.springframework.batch.item.ItemReader#getKey(java.lang.Object)
*/
public Object getKey(Object item) {
return item;
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/AggregateItemProvider.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/AggregateItemReader.java
similarity index 71%
rename from spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/AggregateItemProvider.java
rename to spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/AggregateItemReader.java
index 43a4134bf..eb8a3667b 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/AggregateItemProvider.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/AggregateItemReader.java
@@ -21,36 +21,36 @@ import java.util.Collection;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.springframework.batch.io.InputSource;
import org.springframework.batch.io.file.FieldSetMapper;
-import org.springframework.batch.item.ItemProvider;
+import org.springframework.batch.item.ItemReader;
/**
- * An {@link ItemProvider} that delivers a list as its item, storing up objects
- * from the injected {@link InputSource} until they are ready to be packed out
- * as a collection. The {@link InputSource} should mark the beginning and end of
+ * An {@link ItemReader} that delivers a list as its item, storing up objects
+ * from the injected {@link ItemReader} until they are ready to be packed out
+ * as a collection. The {@link ItemReader} should mark the beginning and end of
* records with the constant values in {@link FieldSetMapper} ({@link FieldSetMapper#BEGIN_RECORD}
* and {@link FieldSetMapper#END_RECORD}).
*
* This class is thread safe (it can be used concurrently by multiple threads)
- * as long as the {@link InputSource} is also thread safe.
+ * as long as the {@link ItemReader} is also thread safe.
*
* @author Dave Syer
*
*/
-public class AggregateItemProvider extends AbstractItemProvider {
+public class AggregateItemReader extends AbstractItemReader {
private static final Log log = LogFactory
- .getLog(AggregateItemProvider.class);
+ .getLog(AggregateItemReader.class);
- private InputSource inputSource;
+ private ItemReader inputSource;
/**
* Get the next list of records.
+ * @throws Exception
*
- * @see org.springframework.batch.item.ItemProvider#next()
+ * @see org.springframework.batch.item.ItemReader#read()
*/
- public Object next() {
+ public Object read() throws Exception {
ResultHolder holder = new ResultHolder();
while (process(inputSource.read(), holder)) {
@@ -67,7 +67,7 @@ public class AggregateItemProvider extends AbstractItemProvider {
private boolean process(Object value, ResultHolder holder) {
// finish processing if we hit the end of file
if (value == null) {
- log.debug("Exhausted InputSource");
+ log.debug("Exhausted ItemReader");
holder.exhausted = true;
return false;
}
@@ -91,12 +91,12 @@ public class AggregateItemProvider extends AbstractItemProvider {
}
/**
- * Injection setter for {@link InputSource}.
+ * Injection setter for {@link ItemReader}.
*
* @param inputSource
- * an {@link InputSource}.
+ * an {@link ItemReader}.
*/
- public void setInputSource(InputSource inputSource) {
+ public void setItemReader(ItemReader inputSource) {
this.inputSource = inputSource;
}
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/InputSourceItemProvider.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/DelegatingItemReader.java
similarity index 80%
rename from spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/InputSourceItemProvider.java
rename to spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/DelegatingItemReader.java
index a06bc0dd6..58399a50c 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/InputSourceItemProvider.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/DelegatingItemReader.java
@@ -18,8 +18,8 @@ package org.springframework.batch.item.provider;
import java.util.Properties;
-import org.springframework.batch.io.InputSource;
import org.springframework.batch.io.Skippable;
+import org.springframework.batch.item.ItemReader;
import org.springframework.batch.restart.RestartData;
import org.springframework.batch.restart.Restartable;
import org.springframework.batch.statistics.StatisticsProvider;
@@ -27,24 +27,25 @@ import org.springframework.beans.factory.InitializingBean;
import org.springframework.util.Assert;
/**
- * Simple wrapper around {@link InputSource}. The input source is expected to
+ * Simple wrapper around {@link ItemReader}. The input source is expected to
* take care of open and close operations. If necessary it should be registered
* as a step scoped bean to ensure that the lifecycle methods are called.
*
* @author Dave Syer
*/
-public class InputSourceItemProvider extends AbstractItemProvider implements Restartable, StatisticsProvider, Skippable, InitializingBean{
+public class DelegatingItemReader extends AbstractItemReader implements Restartable, StatisticsProvider, Skippable, InitializingBean{
- private InputSource inputSource;
+ private ItemReader inputSource;
public void afterPropertiesSet() throws Exception {
- Assert.notNull(inputSource, "InputSource must not be null.");
+ Assert.notNull(inputSource, "ItemReader must not be null.");
}
/**
* Get the next object from the input source.
- * @see org.springframework.batch.item.ItemProvider#next()
+ * @throws Exception
+ * @see org.springframework.batch.item.ItemReader#read()
*/
- public Object next() {
+ public Object read() throws Exception {
return inputSource.read();
}
@@ -89,11 +90,11 @@ public class InputSourceItemProvider extends AbstractItemProvider implements Res
* Setter for input source.
* @param source
*/
- public void setInputSource(InputSource source) {
+ public void setItemReader(ItemReader source) {
this.inputSource = source;
}
- public InputSource getInputSource() {
+ public ItemReader getItemReader() {
return inputSource;
}
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/DelegatingItemProvider.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/ItemReaderAdapter.java
similarity index 78%
rename from spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/DelegatingItemProvider.java
rename to spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/ItemReaderAdapter.java
index 592a3dc4f..8ce4318ba 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/DelegatingItemProvider.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/ItemReaderAdapter.java
@@ -16,20 +16,20 @@
package org.springframework.batch.item.provider;
-import org.springframework.batch.item.ItemProvider;
-import org.springframework.batch.support.AbstractDelegator;
+import org.springframework.batch.item.ItemReader;
+import org.springframework.batch.support.AbstractMethodInvokingDelegator;
/**
* Invokes a custom method which provides an item.
*
* @author Robert Kasanicky
*/
-public class DelegatingItemProvider extends AbstractDelegator implements ItemProvider {
+public class ItemReaderAdapter extends AbstractMethodInvokingDelegator implements ItemReader {
/**
* @return return value of the target method.
*/
- public Object next() throws Exception {
+ public Object read() throws Exception {
return invokeDelegateMethod();
}
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/JmsItemProvider.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/JmsItemReader.java
similarity index 90%
rename from spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/JmsItemProvider.java
rename to spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/JmsItemReader.java
index d150b57f1..45e7e1244 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/JmsItemProvider.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/JmsItemReader.java
@@ -23,7 +23,7 @@ import javax.jms.Message;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.batch.item.FailedItemIdentifier;
-import org.springframework.batch.item.ItemProvider;
+import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.exception.UnexpectedInputException;
import org.springframework.jms.JmsException;
import org.springframework.jms.core.JmsOperations;
@@ -31,15 +31,15 @@ import org.springframework.jms.core.JmsTemplate;
import org.springframework.util.Assert;
/**
- * An {@link ItemProvider} for JMS using a {@link JmsTemplate}. The template
+ * An {@link ItemReader} for JMS using a {@link JmsTemplate}. The template
* should have a default destination, which will be used to provide items in
- * {@link #next()}. If a recovery step is needed, set the error destination and
+ * {@link #read()}. If a recovery step is needed, set the error destination and
* the item will be sent there if processing fails in an external retry.
*
* @author Dave Syer
*
*/
-public class JmsItemProvider extends AbstractItemProvider implements FailedItemIdentifier {
+public class JmsItemReader extends AbstractItemReader implements FailedItemIdentifier {
protected Log logger = LogFactory.getLog(getClass());
@@ -92,7 +92,7 @@ public class JmsItemProvider extends AbstractItemProvider implements FailedItemI
this.itemType = itemType;
}
- public Object next() {
+ public Object read() {
if (itemType != null && itemType.isAssignableFrom(Message.class)) {
return jmsTemplate.receive();
}
@@ -108,7 +108,7 @@ public class JmsItemProvider extends AbstractItemProvider implements FailedItemI
* Send the message back to the proovider using the specified error
* destination property of this provider.
*
- * @see org.springframework.batch.item.provider.AbstractItemProvider#recover(java.lang.Object,
+ * @see org.springframework.batch.item.provider.AbstractItemReader#recover(java.lang.Object,
* Throwable)
*/
public boolean recover(Object item, Throwable cause) {
@@ -137,7 +137,7 @@ public class JmsItemProvider extends AbstractItemProvider implements FailedItemI
* If the message is a {@link Message} then returns the JMS message ID.
* Otherwise just delegate to parent class.
*
- * @see org.springframework.batch.item.provider.AbstractItemProvider#getKey(java.lang.Object)
+ * @see org.springframework.batch.item.provider.AbstractItemReader#getKey(java.lang.Object)
*
* @throws UnexpectedInputException if the JMS id cannot be determined from
* a JMS Message
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/ListItemProvider.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/ListItemReader.java
similarity index 81%
rename from spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/ListItemProvider.java
rename to spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/ListItemReader.java
index 58f027c68..4a34514a2 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/ListItemProvider.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/ListItemReader.java
@@ -20,19 +20,19 @@ import java.util.ArrayList;
import java.util.List;
import org.springframework.aop.support.AopUtils;
-import org.springframework.batch.item.ItemProvider;
+import org.springframework.batch.item.ItemReader;
/**
- * An {@link ItemProvider} that pulls data from a list. Useful for testing.
+ * An {@link ItemReader} that pulls data from a list. Useful for testing.
*
* @author Dave Syer
*
*/
-public class ListItemProvider extends AbstractItemProvider {
+public class ListItemReader extends AbstractItemReader {
private List list;
- public ListItemProvider(List list) {
+ public ListItemReader(List list) {
// If it is a proxy we assume it knows how to deal with its own state.
// (It's probably transaction aware.)
if (AopUtils.isAopProxy(list)) {
@@ -43,7 +43,7 @@ public class ListItemProvider extends AbstractItemProvider {
}
}
- public Object next() {
+ public Object read() {
if (!list.isEmpty()) {
return list.remove(0);
}
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/ValidatingItemProvider.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/ValidatingItemReader.java
similarity index 75%
rename from spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/ValidatingItemProvider.java
rename to spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/ValidatingItemReader.java
index 6acab044a..a4d5f9836 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/ValidatingItemProvider.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/provider/ValidatingItemReader.java
@@ -19,18 +19,18 @@ import org.springframework.batch.item.validator.Validator;
import org.springframework.util.Assert;
/**
- * Simple extension of InputsourceItemProvider that provides for
+ * Simple extension of {@link DelegatingItemReader} that provides for
* validation before returning input.
*
* @author Lucas Ward
*
*/
-public class ValidatingItemProvider extends InputSourceItemProvider {
+public class ValidatingItemReader extends DelegatingItemReader {
private Validator validator;
/* (non-Javadoc)
- * @see org.springframework.batch.item.provider.InputSourceItemProvider#afterPropertiesSet()
+ * @see org.springframework.batch.item.provider.ItemReaderItemProvider#afterPropertiesSet()
*/
public void afterPropertiesSet() throws Exception {
super.afterPropertiesSet();
@@ -38,10 +38,10 @@ public class ValidatingItemProvider extends InputSourceItemProvider {
}
/* (non-Javadoc)
- * @see org.springframework.batch.item.provider.InputSourceItemProvider#next()
+ * @see org.springframework.batch.item.provider.ItemReaderItemProvider#next()
*/
- public Object next() {
- Object input = super.next();
+ public Object read() throws Exception {
+ Object input = super.read();
if(input != null){
validator.validate(input);
}
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/repeat/RepeatCallback.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/repeat/RepeatCallback.java
index 5fc1cfd72..b71ddc60c 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/repeat/RepeatCallback.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/repeat/RepeatCallback.java
@@ -18,9 +18,8 @@ package org.springframework.batch.repeat;
/**
* Callback interface for batch operations. Many simple batch processes will be
- * able to use off-the-shelf implementations of this interface, e.g.
- * {@link org.springframework.batch.repeat.callback.ItemProviderRepeatCallback},
- * enabling the batch developer to concentrate on business logic.
+ * able to use off-the-shelf implementations of this interface, enabling the
+ * batch developer to concentrate on business logic.
*
* @see RepeatOperations
*
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/repeat/callback/ItemProviderRepeatCallback.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/repeat/callback/ItemReaderRepeatCallback.java
similarity index 86%
rename from spring-batch-infrastructure/src/main/java/org/springframework/batch/repeat/callback/ItemProviderRepeatCallback.java
rename to spring-batch-infrastructure/src/main/java/org/springframework/batch/repeat/callback/ItemReaderRepeatCallback.java
index 4c01ae319..2add5277c 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/repeat/callback/ItemProviderRepeatCallback.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/repeat/callback/ItemReaderRepeatCallback.java
@@ -17,7 +17,7 @@
package org.springframework.batch.repeat.callback;
import org.springframework.batch.item.ItemProcessor;
-import org.springframework.batch.item.ItemProvider;
+import org.springframework.batch.item.ItemReader;
import org.springframework.batch.repeat.RepeatCallback;
import org.springframework.batch.repeat.RepeatContext;
import org.springframework.batch.repeat.ExitStatus;
@@ -29,13 +29,13 @@ import org.springframework.batch.repeat.ExitStatus;
* @author Dave Syer
*
*/
-public class ItemProviderRepeatCallback implements RepeatCallback {
+public class ItemReaderRepeatCallback implements RepeatCallback {
- ItemProvider provider;
+ ItemReader provider;
ItemProcessor processor;
- public ItemProviderRepeatCallback(ItemProvider provider, ItemProcessor processor) {
+ public ItemReaderRepeatCallback(ItemReader provider, ItemProcessor processor) {
super();
this.provider = provider;
this.processor = processor;
@@ -47,7 +47,7 @@ public class ItemProviderRepeatCallback implements RepeatCallback {
* provider by calling next().
* @param provider
*/
- public ItemProviderRepeatCallback(ItemProvider provider) {
+ public ItemReaderRepeatCallback(ItemReader provider) {
this(provider, null);
}
@@ -61,7 +61,7 @@ public class ItemProviderRepeatCallback implements RepeatCallback {
public ExitStatus doInIteration(RepeatContext context) throws Exception {
ExitStatus result = ExitStatus.FINISHED;
- Object item = provider.next();
+ Object item = provider.read();
if (processor != null) {
if (item != null) {
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/retry/callback/ItemProviderRetryCallback.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/retry/callback/ItemReaderRetryCallback.java
similarity index 80%
rename from spring-batch-infrastructure/src/main/java/org/springframework/batch/retry/callback/ItemProviderRetryCallback.java
rename to spring-batch-infrastructure/src/main/java/org/springframework/batch/retry/callback/ItemReaderRetryCallback.java
index 5cd28053c..0d7001592 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/retry/callback/ItemProviderRetryCallback.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/retry/callback/ItemReaderRetryCallback.java
@@ -19,41 +19,41 @@ package org.springframework.batch.retry.callback;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.batch.item.ItemProcessor;
-import org.springframework.batch.item.ItemProvider;
+import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.ItemRecoverer;
import org.springframework.batch.retry.RetryCallback;
import org.springframework.batch.retry.RetryContext;
import org.springframework.batch.retry.RetryPolicy;
import org.springframework.batch.retry.exception.ExhaustedRetryException;
import org.springframework.batch.retry.exception.RetryException;
-import org.springframework.batch.retry.policy.ItemProviderRetryPolicy;
+import org.springframework.batch.retry.policy.ItemReaderRetryPolicy;
/**
* A {@link RetryCallback} that knows about and caches the value from an
- * {@link ItemProvider}. Used by the {@link ItemProviderRetryPolicy} to enable
+ * {@link ItemReader}. Used by the {@link ItemReaderRetryPolicy} to enable
* external retry of the item processing.
*
* @author Dave Syer
*
- * @see ItemProviderRetryPolicy
+ * @see ItemReaderRetryPolicy
* @see RetryPolicy#handleRetryExhausted(RetryContext)
*
*/
-public class ItemProviderRetryCallback implements RetryCallback {
+public class ItemReaderRetryCallback implements RetryCallback {
private final static Log logger = LogFactory
- .getLog(ItemProviderRetryCallback.class);
+ .getLog(ItemReaderRetryCallback.class);
- public static final String ITEM = ItemProviderRetryCallback.class.getName()
+ public static final String ITEM = ItemReaderRetryCallback.class.getName()
+ ".ITEM";
- private ItemProvider provider;
+ private ItemReader provider;
private ItemProcessor processor;
private ItemRecoverer recoverer;
- public ItemProviderRetryCallback(ItemProvider provider,
+ public ItemReaderRetryCallback(ItemReader provider,
ItemProcessor processor) {
super();
this.provider = provider;
@@ -81,7 +81,7 @@ public class ItemProviderRetryCallback implements RetryCallback {
Object item = context.getAttribute(ITEM);
if (item == null) {
try {
- item = provider.next();
+ item = provider.read();
} catch (Exception e) {
throw new ExhaustedRetryException(
"Unexpected end of item provider", e);
@@ -107,7 +107,7 @@ public class ItemProviderRetryCallback implements RetryCallback {
/**
* Accessor for the {@link ItemRecoverer}. If the handler is null but
- * the {@link ItemProvider} is an instanceof {@link ItemRecoverer},
+ * the {@link ItemReader} is an instanceof {@link ItemRecoverer},
* then it will be returned instead.
*
* @return the {@link ItemRecoverer}.
@@ -123,11 +123,11 @@ public class ItemProviderRetryCallback implements RetryCallback {
}
/**
- * Public getter for the {@link ItemProvider}.
+ * Public getter for the {@link ItemReader}.
*
- * @return the {@link ItemProvider} instance.
+ * @return the {@link ItemReader} instance.
*/
- public ItemProvider getProvider() {
+ public ItemReader getProvider() {
return provider;
}
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/retry/policy/ItemProviderRetryPolicy.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/retry/policy/ItemReaderRetryPolicy.java
similarity index 89%
rename from spring-batch-infrastructure/src/main/java/org/springframework/batch/retry/policy/ItemProviderRetryPolicy.java
rename to spring-batch-infrastructure/src/main/java/org/springframework/batch/retry/policy/ItemReaderRetryPolicy.java
index fb734600c..4a4d09329 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/retry/policy/ItemProviderRetryPolicy.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/retry/policy/ItemReaderRetryPolicy.java
@@ -19,33 +19,33 @@ package org.springframework.batch.retry.policy;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.batch.item.FailedItemIdentifier;
-import org.springframework.batch.item.ItemProvider;
+import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.ItemRecoverer;
import org.springframework.batch.repeat.synch.RepeatSynchronizationManager;
import org.springframework.batch.retry.RetryCallback;
import org.springframework.batch.retry.RetryContext;
import org.springframework.batch.retry.RetryPolicy;
-import org.springframework.batch.retry.callback.ItemProviderRetryCallback;
+import org.springframework.batch.retry.callback.ItemReaderRetryCallback;
import org.springframework.batch.retry.context.RetryContextSupport;
import org.springframework.batch.retry.exception.TerminatedRetryException;
import org.springframework.batch.retry.synch.RetrySynchronizationManager;
import org.springframework.util.Assert;
/**
- * A {@link RetryPolicy} that detects an {@link ItemProviderRetryCallback} when
+ * A {@link RetryPolicy} that detects an {@link ItemReaderRetryCallback} when
* it opens a new context, and uses it to make sure the item is in place for
* later decisions about how to retry or backoff. The callback should be an
- * instance of {@link ItemProviderRetryCallback} otherwise an exception will be
+ * instance of {@link ItemReaderRetryCallback} otherwise an exception will be
* thrown when the context is created.
*
* @author Dave Syer
*
*/
-public class ItemProviderRetryPolicy extends AbstractStatefulRetryPolicy {
+public class ItemReaderRetryPolicy extends AbstractStatefulRetryPolicy {
protected Log logger = LogFactory.getLog(getClass());
- public static final String EXHAUSTED = ItemProviderRetryPolicy.class
+ public static final String EXHAUSTED = ItemReaderRetryPolicy.class
.getName()
+ ".EXHAUSTED";
@@ -56,7 +56,7 @@ public class ItemProviderRetryPolicy extends AbstractStatefulRetryPolicy {
*
* @param delegate
*/
- public ItemProviderRetryPolicy(RetryPolicy delegate) {
+ public ItemReaderRetryPolicy(RetryPolicy delegate) {
super();
this.delegate = delegate;
}
@@ -65,7 +65,7 @@ public class ItemProviderRetryPolicy extends AbstractStatefulRetryPolicy {
* Default constructor. Creates a new {@link SimpleRetryPolicy} for the
* delegate.
*/
- public ItemProviderRetryPolicy() {
+ public ItemReaderRetryPolicy() {
this(new SimpleRetryPolicy());
}
@@ -99,7 +99,7 @@ public class ItemProviderRetryPolicy extends AbstractStatefulRetryPolicy {
/**
* Create a new context for the execution of the callback, which must be an
- * instance of {@link ItemProviderRetryCallback}.
+ * instance of {@link ItemReaderRetryCallback}.
*
* @see org.springframework.batch.retry.RetryPolicy#open(org.springframework.batch.retry.RetryCallback)
*
@@ -107,10 +107,10 @@ public class ItemProviderRetryPolicy extends AbstractStatefulRetryPolicy {
* if the callback is not of the required type.
*/
public RetryContext open(RetryCallback callback) {
- Assert.state(callback instanceof ItemProviderRetryCallback,
+ Assert.state(callback instanceof ItemReaderRetryCallback,
"Callback must be ItemProviderRetryCallback");
ItemProviderRetryContext context = new ItemProviderRetryContext(
- (ItemProviderRetryCallback) callback);
+ (ItemReaderRetryCallback) callback);
context.open(callback);
return context;
}
@@ -145,11 +145,11 @@ public class ItemProviderRetryPolicy extends AbstractStatefulRetryPolicy {
// The delegate context...
private RetryContext delegateContext;
- private ItemProvider provider;
+ private ItemReader provider;
private ItemRecoverer recoverer;
- public ItemProviderRetryContext(ItemProviderRetryCallback callback) {
+ public ItemProviderRetryContext(ItemReaderRetryCallback callback) {
super(RetrySynchronizationManager.getContext());
item = callback.next(this);
this.provider = callback.getProvider();
@@ -243,7 +243,7 @@ public class ItemProviderRetryPolicy extends AbstractStatefulRetryPolicy {
* @param item
* @return
*/
- protected boolean hasFailed(ItemProvider provider, Object item) {
+ protected boolean hasFailed(ItemReader provider, Object item) {
if (provider instanceof FailedItemIdentifier) {
return ((FailedItemIdentifier) provider).hasFailed(item);
}
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/support/AbstractDelegator.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/support/AbstractMethodInvokingDelegator.java
similarity index 95%
rename from spring-batch-infrastructure/src/main/java/org/springframework/batch/support/AbstractDelegator.java
rename to spring-batch-infrastructure/src/main/java/org/springframework/batch/support/AbstractMethodInvokingDelegator.java
index f3fdab5a8..61e6bf6e9 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/support/AbstractDelegator.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/support/AbstractMethodInvokingDelegator.java
@@ -32,7 +32,7 @@ import org.springframework.util.MethodInvoker;
*
* @author Robert Kasanicky
*/
-public class AbstractDelegator implements InitializingBean {
+public class AbstractMethodInvokingDelegator implements InitializingBean {
private Object targetObject;
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/cursor/HibernateCursorInputSourceStatefulIntegrationTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/cursor/HibernateCursorInputSourceStatefulIntegrationTests.java
deleted file mode 100644
index 483090a30..000000000
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/cursor/HibernateCursorInputSourceStatefulIntegrationTests.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package org.springframework.batch.io.cursor;
-
-import org.hibernate.Session;
-
-/**
- * Tests for {@link HibernateCursorInputSource} using standard hibernate {@link Session}.
- *
- * @author Robert Kasanicky
- */
-public class HibernateCursorInputSourceStatefulIntegrationTests extends HibernateCursorInputSourceIntegrationTests {
-
- protected boolean isUseStatelessSession() {
- return false;
- }
-
-}
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/cursor/HibernateCursorInputSourceIntegrationTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/cursor/HibernateCursorItemReaderIntegrationTests.java
similarity index 65%
rename from spring-batch-infrastructure/src/test/java/org/springframework/batch/io/cursor/HibernateCursorInputSourceIntegrationTests.java
rename to spring-batch-infrastructure/src/test/java/org/springframework/batch/io/cursor/HibernateCursorItemReaderIntegrationTests.java
index 7227377fa..0cc4ac87e 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/cursor/HibernateCursorInputSourceIntegrationTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/cursor/HibernateCursorItemReaderIntegrationTests.java
@@ -2,20 +2,20 @@ package org.springframework.batch.io.cursor;
import org.hibernate.SessionFactory;
import org.hibernate.StatelessSession;
-import org.springframework.batch.io.InputSource;
-import org.springframework.batch.io.support.AbstractDataSourceInputSourceIntegrationTests;
+import org.springframework.batch.io.support.AbstractDataSourceItemReaderIntegrationTests;
+import org.springframework.batch.item.ItemReader;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.orm.hibernate3.LocalSessionFactoryBean;
/**
- * Tests for {@link HibernateCursorInputSource} using {@link StatelessSession}.
+ * Tests for {@link HibernateCursorItemReader} using {@link StatelessSession}.
*
* @author Robert Kasanicky
*/
-public class HibernateCursorInputSourceIntegrationTests extends AbstractDataSourceInputSourceIntegrationTests {
+public class HibernateCursorItemReaderIntegrationTests extends AbstractDataSourceItemReaderIntegrationTests {
- protected InputSource createInputSource() throws Exception {
+ protected ItemReader createItemReader() throws Exception {
LocalSessionFactoryBean factoryBean = new LocalSessionFactoryBean();
factoryBean.setDataSource(super.getJdbcTemplate().getDataSource());
factoryBean.setMappingLocations(new Resource[] { new ClassPathResource("Foo.hbm.xml", getClass()) });
@@ -25,7 +25,7 @@ public class HibernateCursorInputSourceIntegrationTests extends AbstractDataSour
String hsqlQuery = "from Foo";
- HibernateCursorInputSource inputSource = new HibernateCursorInputSource();
+ HibernateCursorItemReader inputSource = new HibernateCursorItemReader();
inputSource.setQueryString(hsqlQuery);
inputSource.setSessionFactory(sessionFactory);
inputSource.setUseStatelessSession(isUseStatelessSession());
@@ -41,11 +41,11 @@ public class HibernateCursorInputSourceIntegrationTests extends AbstractDataSour
/**
* Exception scenario.
*
- * {@link HibernateCursorInputSource#setUseStatelessSession(boolean)} can be
+ * {@link HibernateCursorItemReader#setUseStatelessSession(boolean)} can be
* called only in uninitialized state.
*/
public void testSetUseStatelessSession() {
- HibernateCursorInputSource inputSource = ((HibernateCursorInputSource) source);
+ HibernateCursorItemReader inputSource = ((HibernateCursorItemReader) source);
// initialize and call setter => error
inputSource.open();
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/cursor/HibernateCursorItemReaderStatefulIntegrationTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/cursor/HibernateCursorItemReaderStatefulIntegrationTests.java
new file mode 100644
index 000000000..3897f3225
--- /dev/null
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/cursor/HibernateCursorItemReaderStatefulIntegrationTests.java
@@ -0,0 +1,16 @@
+package org.springframework.batch.io.cursor;
+
+import org.hibernate.Session;
+
+/**
+ * Tests for {@link HibernateCursorItemReader} using standard hibernate {@link Session}.
+ *
+ * @author Robert Kasanicky
+ */
+public class HibernateCursorItemReaderStatefulIntegrationTests extends HibernateCursorItemReaderIntegrationTests {
+
+ protected boolean isUseStatelessSession() {
+ return false;
+ }
+
+}
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/cursor/JdbcCursorInputSourceIntegrationTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/cursor/JdbcCursorItemReaderIntegrationTests.java
similarity index 52%
rename from spring-batch-infrastructure/src/test/java/org/springframework/batch/io/cursor/JdbcCursorInputSourceIntegrationTests.java
rename to spring-batch-infrastructure/src/test/java/org/springframework/batch/io/cursor/JdbcCursorItemReaderIntegrationTests.java
index 5360a1a43..70bc4bc23 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/cursor/JdbcCursorInputSourceIntegrationTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/cursor/JdbcCursorItemReaderIntegrationTests.java
@@ -1,18 +1,18 @@
package org.springframework.batch.io.cursor;
-import org.springframework.batch.io.InputSource;
import org.springframework.batch.io.driving.FooRowMapper;
-import org.springframework.batch.io.support.AbstractDataSourceInputSourceIntegrationTests;
+import org.springframework.batch.io.support.AbstractDataSourceItemReaderIntegrationTests;
+import org.springframework.batch.item.ItemReader;
/**
- * Tests for {@link JdbcCursorInputSource}
+ * Tests for {@link JdbcCursorItemReader}
*
* @author Robert Kasanicky
*/
-public class JdbcCursorInputSourceIntegrationTests extends AbstractDataSourceInputSourceIntegrationTests {
+public class JdbcCursorItemReaderIntegrationTests extends AbstractDataSourceItemReaderIntegrationTests {
- protected InputSource createInputSource() throws Exception {
- JdbcCursorInputSource result = new JdbcCursorInputSource();
+ protected ItemReader createItemReader() throws Exception {
+ JdbcCursorItemReader result = new JdbcCursorItemReader();
result.setDataSource(super.getJdbcTemplate().getDataSource());
result.setSql("select ID, NAME, VALUE from T_FOOS");
result.setIgnoreWarnings(true);
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/DrivingQueryInputSourceTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/DrivingQueryItemReaderTests.java
similarity index 88%
rename from spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/DrivingQueryInputSourceTests.java
rename to spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/DrivingQueryItemReaderTests.java
index 156e5615d..906cd0529 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/DrivingQueryInputSourceTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/DrivingQueryItemReaderTests.java
@@ -6,8 +6,8 @@ import java.util.Properties;
import junit.framework.TestCase;
-import org.springframework.batch.io.InputSource;
import org.springframework.batch.io.sample.domain.Foo;
+import org.springframework.batch.item.ItemReader;
import org.springframework.batch.restart.GenericRestartData;
import org.springframework.batch.restart.RestartData;
import org.springframework.batch.restart.Restartable;
@@ -17,9 +17,9 @@ import org.springframework.transaction.support.TransactionSynchronizationManager
import org.springframework.transaction.support.TransactionSynchronizationUtils;
import org.springframework.util.Assert;
-public class DrivingQueryInputSourceTests extends TestCase {
+public class DrivingQueryItemReaderTests extends TestCase {
- InputSource source;
+ ItemReader source;
static {
TransactionSynchronizationManager.initSynchronization();
@@ -28,12 +28,12 @@ public class DrivingQueryInputSourceTests extends TestCase {
protected void setUp() throws Exception {
super.setUp();
- source = createInputSource();
+ source = createItemReader();
}
- private InputSource createInputSource() throws Exception{
+ private ItemReader createItemReader() throws Exception{
- DrivingQueryInputSource inputSource = new DrivingQueryInputSource();
+ DrivingQueryItemReader inputSource = new DrivingQueryItemReader();
inputSource.setKeyGenerator(new MockKeyGenerator());
return inputSource;
@@ -79,7 +79,7 @@ public class DrivingQueryInputSourceTests extends TestCase {
RestartData restartData = getAsRestartable(source).getRestartData();
// create new input source
- source = createInputSource();
+ source = createItemReader();
getAsRestartable(source).restoreFrom(restartData);
@@ -101,7 +101,7 @@ public class DrivingQueryInputSourceTests extends TestCase {
RestartData restartData = getAsRestartable(source).getRestartData();
// create new input source
- source = createInputSource();
+ source = createItemReader();
Foo foo = (Foo) source.read();
assertEquals(1, foo.getValue());
@@ -117,8 +117,9 @@ public class DrivingQueryInputSourceTests extends TestCase {
/**
* Empty restart data should be handled gracefully.
+ * @throws Exception
*/
- public void testRestoreFromEmptyData() {
+ public void testRestoreFromEmptyData() throws Exception {
RestartData restartData = new GenericRestartData(new Properties());
getAsRestartable(source).restoreFrom(restartData);
@@ -129,8 +130,9 @@ public class DrivingQueryInputSourceTests extends TestCase {
/**
* Rollback scenario.
+ * @throws Exception
*/
- public void testRollback() {
+ public void testRollback() throws Exception {
Foo foo1 = (Foo) source.read();
commit();
@@ -159,11 +161,11 @@ public class DrivingQueryInputSourceTests extends TestCase {
TransactionSynchronization.STATUS_ROLLED_BACK);
}
- private InitializingBean getAsInitializingBean(InputSource source) {
+ private InitializingBean getAsInitializingBean(ItemReader source) {
return (InitializingBean) source;
}
- private Restartable getAsRestartable(InputSource source) {
+ private Restartable getAsRestartable(ItemReader source) {
return (Restartable) source;
}
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/FooInputSource.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/FooInputSource.java
index 858384abf..8fd1c4d07 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/FooInputSource.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/FooInputSource.java
@@ -1,18 +1,19 @@
package org.springframework.batch.io.driving;
-import org.springframework.batch.io.InputSource;
+import org.springframework.batch.item.ItemReader;
+import org.springframework.batch.item.provider.AbstractItemReader;
import org.springframework.batch.restart.RestartData;
import org.springframework.batch.restart.Restartable;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.jdbc.core.JdbcTemplate;
-class FooInputSource implements InputSource, Restartable, DisposableBean, InitializingBean{
+class FooItemReader extends AbstractItemReader implements ItemReader, Restartable, DisposableBean, InitializingBean{
- DrivingQueryInputSource inputSource;
+ DrivingQueryItemReader inputSource;
FooDao fooDao = new SingleKeyFooDao();
- public FooInputSource(DrivingQueryInputSource inputSource, JdbcTemplate jdbcTemplate) {
+ public FooItemReader(DrivingQueryItemReader inputSource, JdbcTemplate jdbcTemplate) {
this.inputSource = inputSource;
fooDao.setJdbcTemplate(jdbcTemplate);
}
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/IbatisInputSourceIntegrationTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/IbatisItemReaderIntegrationTests.java
similarity index 68%
rename from spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/IbatisInputSourceIntegrationTests.java
rename to spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/IbatisItemReaderIntegrationTests.java
index 2a7e7ef98..f016ee1db 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/IbatisInputSourceIntegrationTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/IbatisItemReaderIntegrationTests.java
@@ -1,21 +1,21 @@
package org.springframework.batch.io.driving;
-import org.springframework.batch.io.InputSource;
import org.springframework.batch.io.driving.support.IbatisKeyGenerator;
-import org.springframework.batch.io.support.AbstractDataSourceInputSourceIntegrationTests;
+import org.springframework.batch.io.support.AbstractDataSourceItemReaderIntegrationTests;
+import org.springframework.batch.item.ItemReader;
import org.springframework.core.io.ClassPathResource;
import org.springframework.orm.ibatis.SqlMapClientFactoryBean;
import com.ibatis.sqlmap.client.SqlMapClient;
/**
- * Tests for {@link IbatisDrivingQueryInputSource}
+ * Tests for {@link IbatisDrivingQueryItemReader}
*
* @author Robert Kasanicky
*/
-public class IbatisInputSourceIntegrationTests extends AbstractDataSourceInputSourceIntegrationTests {
+public class IbatisItemReaderIntegrationTests extends AbstractDataSourceItemReaderIntegrationTests {
- protected InputSource createInputSource() throws Exception {
+ protected ItemReader createItemReader() throws Exception {
SqlMapClientFactoryBean factory = new SqlMapClientFactoryBean();
factory.setConfigLocation(new ClassPathResource("ibatis-config.xml", getClass()));
@@ -23,7 +23,7 @@ public class IbatisInputSourceIntegrationTests extends AbstractDataSourceInputSo
factory.afterPropertiesSet();
SqlMapClient sqlMapClient = (SqlMapClient) factory.getObject();
- IbatisDrivingQueryInputSource inputSource = new IbatisDrivingQueryInputSource();
+ IbatisDrivingQueryItemReader inputSource = new IbatisDrivingQueryItemReader();
IbatisKeyGenerator keyGenerator = new IbatisKeyGenerator();
keyGenerator.setDrivingQueryId("getAllFooIds");
inputSource.setDetailsQueryId("getFooById");
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/MultipleColumnJdbcDrivingQueryInputSourceIntegrationTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/MultipleColumnJdbcDrivingQueryItemReaderIntegrationTests.java
similarity index 77%
rename from spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/MultipleColumnJdbcDrivingQueryInputSourceIntegrationTests.java
rename to spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/MultipleColumnJdbcDrivingQueryItemReaderIntegrationTests.java
index 1f16b3fb4..a15d398e3 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/MultipleColumnJdbcDrivingQueryInputSourceIntegrationTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/MultipleColumnJdbcDrivingQueryItemReaderIntegrationTests.java
@@ -15,29 +15,29 @@
*/
package org.springframework.batch.io.driving;
-import org.springframework.batch.io.InputSource;
import org.springframework.batch.io.driving.support.MultipleColumnJdbcKeyGenerator;
-import org.springframework.batch.io.sql.AbstractJdbcInputSourceIntegrationTests;
+import org.springframework.batch.io.sql.AbstractJdbcItemReaderIntegrationTests;
+import org.springframework.batch.item.ItemReader;
/**
* @author Lucas Ward
*
*/
-public class MultipleColumnJdbcDrivingQueryInputSourceIntegrationTests extends
- AbstractJdbcInputSourceIntegrationTests {
+public class MultipleColumnJdbcDrivingQueryItemReaderIntegrationTests extends
+ AbstractJdbcItemReaderIntegrationTests {
- protected InputSource createInputSource() throws Exception {
+ protected ItemReader createItemReader() throws Exception {
MultipleColumnJdbcKeyGenerator keyGenerator =
new MultipleColumnJdbcKeyGenerator(getJdbcTemplate(),
"SELECT ID, VALUE from T_FOOS order by ID, VALUE");
keyGenerator.setRestartQuery("SELECT ID, VALUE from T_FOOS where ID > ? and VALUE > ? order by ID");
- DrivingQueryInputSource inputSource = new DrivingQueryInputSource();
+ DrivingQueryItemReader inputSource = new DrivingQueryItemReader();
inputSource.setKeyGenerator(keyGenerator);
- FooInputSource fooInputSource = new FooInputSource(inputSource, getJdbcTemplate());
- fooInputSource.setFooDao(new CompositeKeyFooDao(getJdbcTemplate()));
- return fooInputSource;
+ FooItemReader fooItemReader = new FooItemReader(inputSource, getJdbcTemplate());
+ fooItemReader.setFooDao(new CompositeKeyFooDao(getJdbcTemplate()));
+ return fooItemReader;
}
// private static class FooRestartDataConverter implements RestartDataRowMapper{
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/SingleColumnJdbcDrivingQueryInputSourceIntegrationTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/SingleColumnJdbcDrivingQueryInputSourceIntegrationTests.java
deleted file mode 100644
index 65044c36f..000000000
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/SingleColumnJdbcDrivingQueryInputSourceIntegrationTests.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.springframework.batch.io.driving;
-
-import org.springframework.batch.io.InputSource;
-import org.springframework.batch.io.driving.support.SingleColumnJdbcKeyGenerator;
-import org.springframework.batch.io.sql.AbstractJdbcInputSourceIntegrationTests;
-
-public class SingleColumnJdbcDrivingQueryInputSourceIntegrationTests extends AbstractJdbcInputSourceIntegrationTests {
-
- protected InputSource source;
-
-
- /**
- * @return input source with all necessary dependencies set
- */
- protected InputSource createInputSource() throws Exception {
-
- SingleColumnJdbcKeyGenerator keyStrategy = new SingleColumnJdbcKeyGenerator(getJdbcTemplate(),
- "SELECT ID from T_FOOS order by ID");
- keyStrategy.setRestartSql("SELECT ID from T_FOOS where ID > ? order by ID");
- DrivingQueryInputSource inputSource = new DrivingQueryInputSource();
- inputSource.setKeyGenerator(keyStrategy);
-
- return new FooInputSource(inputSource, getJdbcTemplate());
-
- }
-}
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/SingleColumnJdbcDrivingQueryItemReaderIntegrationTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/SingleColumnJdbcDrivingQueryItemReaderIntegrationTests.java
new file mode 100644
index 000000000..5f0d9d3a4
--- /dev/null
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/driving/SingleColumnJdbcDrivingQueryItemReaderIntegrationTests.java
@@ -0,0 +1,26 @@
+package org.springframework.batch.io.driving;
+
+import org.springframework.batch.io.driving.support.SingleColumnJdbcKeyGenerator;
+import org.springframework.batch.io.sql.AbstractJdbcItemReaderIntegrationTests;
+import org.springframework.batch.item.ItemReader;
+
+public class SingleColumnJdbcDrivingQueryItemReaderIntegrationTests extends AbstractJdbcItemReaderIntegrationTests {
+
+ protected ItemReader source;
+
+
+ /**
+ * @return input source with all necessary dependencies set
+ */
+ protected ItemReader createItemReader() throws Exception {
+
+ SingleColumnJdbcKeyGenerator keyStrategy = new SingleColumnJdbcKeyGenerator(getJdbcTemplate(),
+ "SELECT ID from T_FOOS order by ID");
+ keyStrategy.setRestartSql("SELECT ID from T_FOOS where ID > ? order by ID");
+ DrivingQueryItemReader inputSource = new DrivingQueryItemReader();
+ inputSource.setKeyGenerator(keyStrategy);
+
+ return new FooItemReader(inputSource, getJdbcTemplate());
+
+ }
+}
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/file/support/DefaultFlatFileInputSourceTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/file/support/DefaultFlatFileItemReaderTests.java
similarity index 96%
rename from spring-batch-infrastructure/src/test/java/org/springframework/batch/io/file/support/DefaultFlatFileInputSourceTests.java
rename to spring-batch-infrastructure/src/test/java/org/springframework/batch/io/file/support/DefaultFlatFileItemReaderTests.java
index d74acd31c..43bdd7a0e 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/file/support/DefaultFlatFileInputSourceTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/file/support/DefaultFlatFileItemReaderTests.java
@@ -22,7 +22,7 @@ import junit.framework.TestCase;
import org.springframework.batch.io.file.FieldSet;
import org.springframework.batch.io.file.FieldSetMapper;
-import org.springframework.batch.io.file.support.DefaultFlatFileInputSource;
+import org.springframework.batch.io.file.support.DefaultFlatFileItemReader;
import org.springframework.batch.io.file.support.transform.LineTokenizer;
import org.springframework.batch.restart.RestartData;
import org.springframework.core.io.ByteArrayResource;
@@ -30,17 +30,17 @@ import org.springframework.core.io.Resource;
import org.springframework.transaction.support.TransactionSynchronization;
/**
- * Tests for {@link DefaultFlatFileInputSource}
+ * Tests for {@link DefaultFlatFileItemReader}
*
* @author robert.kasanicky
*
* TODO only regular reading is tested currently, add exception cases, restart,
* skip, validation...
*/
-public class DefaultFlatFileInputSourceTests extends TestCase {
+public class DefaultFlatFileItemReaderTests extends TestCase {
// object under test
- private DefaultFlatFileInputSource inputSource = new DefaultFlatFileInputSource();
+ private DefaultFlatFileItemReader inputSource = new DefaultFlatFileItemReader();
// common value used for writing to a file
private String TEST_STRING = "FlatFileInputTemplate-TestData";
@@ -156,7 +156,7 @@ public class DefaultFlatFileInputSourceTests extends TestCase {
}
public void testRestartWithNullReader() throws Exception {
- inputSource = new DefaultFlatFileInputSource();
+ inputSource = new DefaultFlatFileItemReader();
inputSource.setResource(getInputResource(TEST_STRING));
inputSource.setFieldSetMapper(fieldSetMapper);
// do not open the template...
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/file/support/SimpleFlatFileInputSourceTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/file/support/SimpleFlatFileItemReaderTests.java
similarity index 88%
rename from spring-batch-infrastructure/src/test/java/org/springframework/batch/io/file/support/SimpleFlatFileInputSourceTests.java
rename to spring-batch-infrastructure/src/test/java/org/springframework/batch/io/file/support/SimpleFlatFileItemReaderTests.java
index cac08570d..896e9e10b 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/file/support/SimpleFlatFileInputSourceTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/file/support/SimpleFlatFileItemReaderTests.java
@@ -34,15 +34,15 @@ import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource;
/**
- * Tests for {@link SimpleFlatFileInputSourceTests}
+ * Tests for {@link SimpleFlatFileItemReaderTests}
*
* @author Dave Syer
*
*/
-public class SimpleFlatFileInputSourceTests extends TestCase {
+public class SimpleFlatFileItemReaderTests extends TestCase {
// object under test
- private SimpleFlatFileInputSource inputSource = new SimpleFlatFileInputSource();
+ private SimpleFlatFileItemReader inputSource = new SimpleFlatFileItemReader();
// common value used for writing to a file
private String TEST_STRING = "FlatFileInputTemplate-TestData";
@@ -135,14 +135,14 @@ public class SimpleFlatFileInputSourceTests extends TestCase {
}
public void testReadBeforeOpen() throws Exception {
- inputSource = new SimpleFlatFileInputSource();
+ inputSource = new SimpleFlatFileItemReader();
inputSource.setResource(getInputResource(TEST_STRING));
inputSource.setFieldSetMapper(fieldSetMapper);
assertEquals("[FlatFileInputTemplate-TestData]", inputSource.read().toString());
}
public void testCloseBeforeOpen() throws Exception {
- inputSource = new SimpleFlatFileInputSource();
+ inputSource = new SimpleFlatFileItemReader();
inputSource.setResource(getInputResource(TEST_STRING));
inputSource.setFieldSetMapper(fieldSetMapper);
inputSource.close();
@@ -152,7 +152,7 @@ public class SimpleFlatFileInputSourceTests extends TestCase {
public void testCloseOnDestroy() throws Exception {
final List list = new ArrayList();
- inputSource = new SimpleFlatFileInputSource() {
+ inputSource = new SimpleFlatFileItemReader() {
public void close() {
list.add("close");
}
@@ -162,7 +162,7 @@ public class SimpleFlatFileInputSourceTests extends TestCase {
}
public void testInitializationWithNullResource() throws Exception {
- inputSource = new SimpleFlatFileInputSource();
+ inputSource = new SimpleFlatFileItemReader();
try {
inputSource.afterPropertiesSet();
fail("Expected IllegalArgumentException");
@@ -178,7 +178,7 @@ public class SimpleFlatFileInputSourceTests extends TestCase {
}
public void testSetValidEncoding() throws Exception {
- inputSource = new SimpleFlatFileInputSource();
+ inputSource = new SimpleFlatFileItemReader();
inputSource.setEncoding("UTF-8");
inputSource.setResource(getInputResource(TEST_STRING));
inputSource.setFieldSetMapper(fieldSetMapper);
@@ -186,7 +186,7 @@ public class SimpleFlatFileInputSourceTests extends TestCase {
}
public void testSetNullEncoding() throws Exception {
- inputSource = new SimpleFlatFileInputSource();
+ inputSource = new SimpleFlatFileItemReader();
inputSource.setEncoding(null);
inputSource.setResource(getInputResource(TEST_STRING));
try {
@@ -199,7 +199,7 @@ public class SimpleFlatFileInputSourceTests extends TestCase {
}
public void testSetInvalidEncoding() throws Exception {
- inputSource = new SimpleFlatFileInputSource();
+ inputSource = new SimpleFlatFileItemReader();
inputSource.setEncoding("foo");
inputSource.setResource(getInputResource(TEST_STRING));
try {
@@ -229,7 +229,7 @@ public class SimpleFlatFileInputSourceTests extends TestCase {
}
public void testInvalidFile() throws IOException {
- DefaultFlatFileInputSource ffit = new DefaultFlatFileInputSource();
+ DefaultFlatFileItemReader ffit = new DefaultFlatFileItemReader();
FileSystemResource resource = new FileSystemResource("FooDummy.txt");
assertTrue(!resource.exists());
@@ -251,7 +251,7 @@ public class SimpleFlatFileInputSourceTests extends TestCase {
public void testColumnNamesInHeader() throws Exception {
final String INPUT = "name1|name2\nvalue1|value2\nvalue3|value4";
- inputSource = new SimpleFlatFileInputSource();
+ inputSource = new SimpleFlatFileItemReader();
inputSource.setResource(getInputResource(INPUT));
inputSource.setTokenizer(new DelimitedLineTokenizer('|'));
inputSource.setFieldSetMapper(fieldSetMapper);
@@ -274,7 +274,7 @@ public class SimpleFlatFileInputSourceTests extends TestCase {
public void testLinesToSkip() throws Exception {
final String INPUT = "foo bar spam\none two\nthree four";
- inputSource = new SimpleFlatFileInputSource();
+ inputSource = new SimpleFlatFileItemReader();
inputSource.setResource(getInputResource(INPUT));
inputSource.setTokenizer(new DelimitedLineTokenizer(' '));
inputSource.setFieldSetMapper(fieldSetMapper);
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/file/support/StaxEventReaderInputSourceTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/file/support/StaxEventReaderItemReaderTests.java
similarity index 88%
rename from spring-batch-infrastructure/src/test/java/org/springframework/batch/io/file/support/StaxEventReaderInputSourceTests.java
rename to spring-batch-infrastructure/src/test/java/org/springframework/batch/io/file/support/StaxEventReaderItemReaderTests.java
index 002aaf715..2e80a74fa 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/file/support/StaxEventReaderInputSourceTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/file/support/StaxEventReaderItemReaderTests.java
@@ -15,7 +15,7 @@ import javax.xml.stream.events.XMLEvent;
import junit.framework.TestCase;
-import org.springframework.batch.io.file.support.StaxEventReaderInputSource;
+import org.springframework.batch.io.file.support.StaxEventReaderItemReader;
import org.springframework.batch.io.file.support.stax.FragmentDeserializer;
import org.springframework.batch.restart.GenericRestartData;
import org.springframework.batch.restart.RestartData;
@@ -26,14 +26,14 @@ import org.springframework.dao.DataAccessResourceFailureException;
import org.springframework.transaction.support.TransactionSynchronization;
/**
- * Tests for {@link StaxEventReaderInputSource}.
+ * Tests for {@link StaxEventReaderItemReader}.
*
* @author Robert Kasanicky
*/
-public class StaxEventReaderInputSourceTests extends TestCase {
+public class StaxEventReaderItemReaderTests extends TestCase {
// object under test
- private StaxEventReaderInputSource source;
+ private StaxEventReaderItemReader source;
// test xml input
private String xml = " testString ";
@@ -83,7 +83,7 @@ public class StaxEventReaderInputSourceTests extends TestCase {
/**
* Regular usage scenario.
- * InputSource should pass XML fragments to deserializer wrapped with
+ * ItemReader should pass XML fragments to deserializer wrapped with
* StartDocument and EndDocument events.
*/
public void testFragmentWrapping() throws Exception {
@@ -120,7 +120,7 @@ public class StaxEventReaderInputSourceTests extends TestCase {
source.read();
RestartData restartData = source.getRestartData();
assertEquals("1", restartData.getProperties().
- getProperty("StaxEventReaderInputSource.recordcount"));
+ getProperty("StaxEventReaderItemReader.recordcount"));
List expectedAfterRestart = (List) source.read();
source = createNewInputSouce();
@@ -136,7 +136,7 @@ public class StaxEventReaderInputSourceTests extends TestCase {
public void testInvalidRestore() {
Properties props = new Properties() {{
final String MORE_RECORDS_THAN_INPUT_CONTAINS = "100000";
- setProperty("StaxEventReaderInputSource.recordcount", MORE_RECORDS_THAN_INPUT_CONTAINS);
+ setProperty("StaxEventReaderItemReader.recordcount", MORE_RECORDS_THAN_INPUT_CONTAINS);
}};
try {
source.restoreFrom(new GenericRestartData(props));
@@ -219,7 +219,7 @@ public class StaxEventReaderInputSourceTests extends TestCase {
public void testClose() throws Exception{
- MockStaxEventReaderInputSource newSource = new MockStaxEventReaderInputSource();
+ MockStaxEventReaderItemReader newSource = new MockStaxEventReaderItemReader();
Resource resource = new ByteArrayResource(xml.getBytes());
newSource.setResource(resource);
@@ -258,13 +258,13 @@ public class StaxEventReaderInputSourceTests extends TestCase {
private int extractRecordCountFrom(Properties statistics) {
return Integer.valueOf(
- source.getStatistics().getProperty(StaxEventReaderInputSource.READ_COUNT_STATISTICS_NAME)).intValue();
+ source.getStatistics().getProperty(StaxEventReaderItemReader.READ_COUNT_STATISTICS_NAME)).intValue();
}
- private StaxEventReaderInputSource createNewInputSouce() {
+ private StaxEventReaderItemReader createNewInputSouce() {
Resource resource = new ByteArrayResource(xml.getBytes());
- StaxEventReaderInputSource newSource = new StaxEventReaderInputSource();
+ StaxEventReaderItemReader newSource = new StaxEventReaderItemReader();
newSource.setResource(resource);
newSource.setFragmentRootElementName(FRAGMENT_ROOT_ELEMENT);
@@ -282,7 +282,7 @@ public class StaxEventReaderInputSourceTests extends TestCase {
/**
* A simple mapFragment implementation checking the
- * StaxEventReaderInputSource basic read functionality.
+ * StaxEventReaderItemReader basic read functionality.
* @param eventReader
* @return list of the events from fragment body
*/
@@ -349,7 +349,7 @@ public class StaxEventReaderInputSourceTests extends TestCase {
}
- private static class MockStaxEventReaderInputSource extends StaxEventReaderInputSource {
+ private static class MockStaxEventReaderItemReader extends StaxEventReaderItemReader {
private boolean openCalled = false;
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/sql/AbstractJdbcInputSourceIntegrationTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/sql/AbstractJdbcItemReaderIntegrationTests.java
similarity index 80%
rename from spring-batch-infrastructure/src/test/java/org/springframework/batch/io/sql/AbstractJdbcInputSourceIntegrationTests.java
rename to spring-batch-infrastructure/src/test/java/org/springframework/batch/io/sql/AbstractJdbcItemReaderIntegrationTests.java
index f0c2d4fe9..01e65078f 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/sql/AbstractJdbcInputSourceIntegrationTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/sql/AbstractJdbcItemReaderIntegrationTests.java
@@ -2,8 +2,8 @@ package org.springframework.batch.io.sql;
import java.util.Properties;
-import org.springframework.batch.io.InputSource;
import org.springframework.batch.io.sample.domain.Foo;
+import org.springframework.batch.item.ItemReader;
import org.springframework.batch.repeat.synch.BatchTransactionSynchronizationManager;
import org.springframework.batch.restart.GenericRestartData;
import org.springframework.batch.restart.RestartData;
@@ -17,20 +17,20 @@ import org.springframework.transaction.support.TransactionSynchronizationUtils;
import org.springframework.util.Assert;
/**
- * Common scenarios for testing {@link InputSource} implementations which read data from database.
+ * Common scenarios for testing {@link ItemReader} implementations which read data from database.
*
* @author Lucas Ward
* @author Robert Kasanicky
*/
-public abstract class AbstractJdbcInputSourceIntegrationTests extends AbstractTransactionalDataSourceSpringContextTests {
+public abstract class AbstractJdbcItemReaderIntegrationTests extends AbstractTransactionalDataSourceSpringContextTests {
- protected InputSource source;
+ protected ItemReader source;
/**
* @return input source with all necessary dependencies set
*/
- protected abstract InputSource createInputSource() throws Exception;
+ protected abstract ItemReader createItemReader() throws Exception;
protected String[] getConfigLocations(){
return new String[] { "org/springframework/batch/io/sql/data-source-context.xml"};
@@ -39,7 +39,7 @@ public abstract class AbstractJdbcInputSourceIntegrationTests extends AbstractTr
protected void onSetUp()throws Exception{
super.onSetUp();
BatchTransactionSynchronizationManager.clearSynchronizations();
- source = createInputSource();
+ source = createItemReader();
getAsInitializingBean(source).afterPropertiesSet();
}
@@ -88,7 +88,7 @@ public abstract class AbstractJdbcInputSourceIntegrationTests extends AbstractTr
RestartData restartData = getAsRestartable(source).getRestartData();
// create new input source
- source = createInputSource();
+ source = createItemReader();
getAsRestartable(source).restoreFrom(restartData);
@@ -110,7 +110,7 @@ public abstract class AbstractJdbcInputSourceIntegrationTests extends AbstractTr
RestartData restartData = getAsRestartable(source).getRestartData();
// create new input source
- source = createInputSource();
+ source = createItemReader();
Foo foo = (Foo) source.read();
assertEquals(1, foo.getValue());
@@ -126,8 +126,9 @@ public abstract class AbstractJdbcInputSourceIntegrationTests extends AbstractTr
/**
* Empty restart data should be handled gracefully.
+ * @throws Exception
*/
- public void testRestoreFromEmptyData() {
+ public void testRestoreFromEmptyData() throws Exception {
RestartData restartData = new GenericRestartData(new Properties());
getAsRestartable(source).restoreFrom(restartData);
@@ -138,8 +139,9 @@ public abstract class AbstractJdbcInputSourceIntegrationTests extends AbstractTr
/**
* Rollback scenario.
+ * @throws Exception
*/
- public void testRollback() {
+ public void testRollback() throws Exception {
Foo foo1 = (Foo) source.read();
commit();
@@ -168,15 +170,15 @@ public abstract class AbstractJdbcInputSourceIntegrationTests extends AbstractTr
TransactionSynchronization.STATUS_ROLLED_BACK);
}
- private Restartable getAsRestartable(InputSource source) {
+ private Restartable getAsRestartable(ItemReader source) {
return (Restartable) source;
}
- private InitializingBean getAsInitializingBean(InputSource source) {
+ private InitializingBean getAsInitializingBean(ItemReader source) {
return (InitializingBean) source;
}
- private DisposableBean getAsDisposableBean(InputSource source) {
+ private DisposableBean getAsDisposableBean(ItemReader source) {
return (DisposableBean) source;
}
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/support/AbstractDataSourceInputSourceIntegrationTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/support/AbstractDataSourceItemReaderIntegrationTests.java
similarity index 82%
rename from spring-batch-infrastructure/src/test/java/org/springframework/batch/io/support/AbstractDataSourceInputSourceIntegrationTests.java
rename to spring-batch-infrastructure/src/test/java/org/springframework/batch/io/support/AbstractDataSourceItemReaderIntegrationTests.java
index dae774387..b18f83e8a 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/support/AbstractDataSourceInputSourceIntegrationTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/support/AbstractDataSourceItemReaderIntegrationTests.java
@@ -2,9 +2,9 @@ package org.springframework.batch.io.support;
import java.util.Properties;
-import org.springframework.batch.io.InputSource;
import org.springframework.batch.io.Skippable;
import org.springframework.batch.io.sample.domain.Foo;
+import org.springframework.batch.item.ItemReader;
import org.springframework.batch.repeat.synch.BatchTransactionSynchronizationManager;
import org.springframework.batch.restart.GenericRestartData;
import org.springframework.batch.restart.RestartData;
@@ -18,20 +18,20 @@ import org.springframework.transaction.support.TransactionSynchronizationUtils;
import org.springframework.util.Assert;
/**
- * Common scenarios for testing {@link InputSource} implementations which read data from database.
+ * Common scenarios for testing {@link ItemReader} implementations which read data from database.
*
* @author Lucas Ward
* @author Robert Kasanicky
*/
-public abstract class AbstractDataSourceInputSourceIntegrationTests extends AbstractTransactionalDataSourceSpringContextTests {
+public abstract class AbstractDataSourceItemReaderIntegrationTests extends AbstractTransactionalDataSourceSpringContextTests {
- protected InputSource source;
+ protected ItemReader source;
/**
* @return configured input source ready for use
*/
- protected abstract InputSource createInputSource() throws Exception;
+ protected abstract ItemReader createItemReader() throws Exception;
protected String[] getConfigLocations(){
return new String[] { "org/springframework/batch/io/sql/data-source-context.xml"};
@@ -43,7 +43,7 @@ public abstract class AbstractDataSourceInputSourceIntegrationTests extends Abst
protected void onSetUpInTransaction() throws Exception {
super.onSetUpInTransaction();
BatchTransactionSynchronizationManager.clearSynchronizations();
- source = createInputSource();
+ source = createItemReader();
}
/* (non-Javadoc)
@@ -95,7 +95,7 @@ public abstract class AbstractDataSourceInputSourceIntegrationTests extends Abst
RestartData restartData = getAsRestartable(source).getRestartData();
// create new input source
- source = createInputSource();
+ source = createItemReader();
getAsRestartable(source).restoreFrom(restartData);
@@ -117,7 +117,7 @@ public abstract class AbstractDataSourceInputSourceIntegrationTests extends Abst
RestartData restartData = getAsRestartable(source).getRestartData();
// create new input source
- source = createInputSource();
+ source = createItemReader();
Foo foo = (Foo) source.read();
assertEquals(1, foo.getValue());
@@ -133,8 +133,9 @@ public abstract class AbstractDataSourceInputSourceIntegrationTests extends Abst
/**
* Empty restart data should be handled gracefully.
+ * @throws Exception
*/
- public void testRestoreFromEmptyData() {
+ public void testRestoreFromEmptyData() throws Exception {
RestartData restartData = new GenericRestartData(new Properties());
getAsRestartable(source).restoreFrom(restartData);
@@ -145,8 +146,9 @@ public abstract class AbstractDataSourceInputSourceIntegrationTests extends Abst
/**
* Rollback scenario - input source rollbacks to last commit point.
+ * @throws Exception
*/
- public void testRollback() {
+ public void testRollback() throws Exception {
Foo foo1 = (Foo) source.read();
commit();
@@ -164,8 +166,9 @@ public abstract class AbstractDataSourceInputSourceIntegrationTests extends Abst
/**
* Rollback scenario with skip - input source rollbacks to last commit point.
+ * @throws Exception
*/
- public void testRollbackAndSkip() {
+ public void testRollbackAndSkip() throws Exception {
if (!(source instanceof Skippable)) {
return;
@@ -217,7 +220,7 @@ public abstract class AbstractDataSourceInputSourceIntegrationTests extends Abst
RestartData restartData = getAsRestartable(source).getRestartData();
// create new input source
- source = createInputSource();
+ source = createItemReader();
getAsRestartable(source).restoreFrom(restartData);
@@ -238,19 +241,19 @@ public abstract class AbstractDataSourceInputSourceIntegrationTests extends Abst
TransactionSynchronization.STATUS_ROLLED_BACK);
}
- private Skippable getAsSkippable(InputSource source) {
+ private Skippable getAsSkippable(ItemReader source) {
return (Skippable) source;
}
- private Restartable getAsRestartable(InputSource source) {
+ private Restartable getAsRestartable(ItemReader source) {
return (Restartable) source;
}
- private InitializingBean getAsInitializingBean(InputSource source) {
+ private InitializingBean getAsInitializingBean(ItemReader source) {
return (InitializingBean) source;
}
- private DisposableBean getAsDisposableBean(InputSource source) {
+ private DisposableBean getAsDisposableBean(ItemReader source) {
return (DisposableBean) source;
}
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/support/AbstractTransactionalIoSourceTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/support/AbstractTransactionalIoSourceTests.java
index cf8c62767..134558582 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/support/AbstractTransactionalIoSourceTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/support/AbstractTransactionalIoSourceTests.java
@@ -43,7 +43,7 @@ public class AbstractTransactionalIoSourceTests extends TestCase {
TransactionSynchronizationManager.initSynchronization();
}
- //AbstractInputSource should synchronize on first call to read.
+ //AbstractItemReader should synchronize on first call to read.
public void testSynchronizationRegistration(){
source.registerSynchronization();
@@ -97,7 +97,7 @@ public class AbstractTransactionalIoSourceTests extends TestCase {
assertFalse(source.rollbackCalled);
}
- private static class MockIoSource extends AbstractTransactionalIoSource{
+ private static class MockIoSource extends AbstractTransactionalIoSource {
private boolean commitCalled = false;
private boolean rollbackCalled = false;
@@ -110,7 +110,11 @@ public class AbstractTransactionalIoSourceTests extends TestCase {
protected void transactionRolledBack() {
Assert.isTrue(!rollbackCalled, "Rollback aleady called");
rollbackCalled = true;
- }
+ }
+
+ public Object read() throws Exception {
+ return null;
+ }
}
private void commit() {
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/ItemProviderTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/ItemProviderTests.java
index 5ad83f0d1..24f55b8b1 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/ItemProviderTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/ItemProviderTests.java
@@ -18,18 +18,18 @@ package org.springframework.batch.item;
import junit.framework.TestCase;
-import org.springframework.batch.item.provider.AbstractItemProvider;
+import org.springframework.batch.item.provider.AbstractItemReader;
public class ItemProviderTests extends TestCase {
- ItemProvider provider = new AbstractItemProvider() {
- public Object next() {
+ ItemReader provider = new AbstractItemReader() {
+ public Object read() {
return "foo";
}
};
public void testNext() throws Exception {
- assertEquals("foo", provider.next());
+ assertEquals("foo", provider.read());
}
}
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/processor/DelegatingItemProcessorIntegrationTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/processor/DelegatingItemProcessorIntegrationTests.java
index 3ad6d30f1..c2f5eb4b3 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/processor/DelegatingItemProcessorIntegrationTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/processor/DelegatingItemProcessorIntegrationTests.java
@@ -7,13 +7,13 @@ import org.springframework.batch.io.sample.domain.FooService;
import org.springframework.test.AbstractDependencyInjectionSpringContextTests;
/**
- * Tests for {@link DelegatingItemProcessor}.
+ * Tests for {@link ItemProcessorAdapter}.
*
* @author Robert Kasanicky
*/
public class DelegatingItemProcessorIntegrationTests extends AbstractDependencyInjectionSpringContextTests {
- private DelegatingItemProcessor processor;
+ private ItemProcessorAdapter processor;
private FooService fooService;
@@ -44,7 +44,7 @@ public class DelegatingItemProcessorIntegrationTests extends AbstractDependencyI
}
//setter for auto-injection
- public void setProcessor(DelegatingItemProcessor processor) {
+ public void setProcessor(ItemProcessorAdapter processor) {
this.processor = processor;
}
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/AggregateItemProviderTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/AggregateItemReaderTests.java
similarity index 66%
rename from spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/AggregateItemProviderTests.java
rename to spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/AggregateItemReaderTests.java
index 462f14c1d..46d89814b 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/AggregateItemProviderTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/AggregateItemReaderTests.java
@@ -6,27 +6,27 @@ import java.util.Iterator;
import junit.framework.TestCase;
import org.easymock.MockControl;
-import org.springframework.batch.io.InputSource;
import org.springframework.batch.io.file.FieldSetMapper;
+import org.springframework.batch.item.ItemReader;
-public class AggregateItemProviderTests extends TestCase {
+public class AggregateItemReaderTests extends TestCase {
private MockControl inputControl;
- private InputSource input;
- private AggregateItemProvider provider;
+ private ItemReader input;
+ private AggregateItemReader provider;
public void setUp() {
//create mock for input
- inputControl = MockControl.createControl(InputSource.class);
- input = (InputSource) inputControl.getMock();
+ inputControl = MockControl.createControl(ItemReader.class);
+ input = (ItemReader) inputControl.getMock();
//create provider
- provider = new AggregateItemProvider();
- provider.setInputSource(input);
+ provider = new AggregateItemReader();
+ provider.setItemReader(input);
}
- public void testNext() {
+ public void testNext() throws Exception {
//set-up mock input
input.read();
@@ -40,7 +40,7 @@ public class AggregateItemProviderTests extends TestCase {
inputControl.replay();
//read object
- Object result = provider.next();
+ Object result = provider.read();
//it should be collection of 3 strings "line"
assertTrue(result instanceof Collection);
@@ -52,7 +52,7 @@ public class AggregateItemProviderTests extends TestCase {
}
//read object again - it should return null
- assertNull(provider.next());
+ assertNull(provider.read());
//verify method calls
inputControl.verify();
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/DelegatingItemProviderIntegrationTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/DelegatingItemReaderIntegrationTests.java
similarity index 77%
rename from spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/DelegatingItemProviderIntegrationTests.java
rename to spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/DelegatingItemReaderIntegrationTests.java
index f7bf58c01..3881a8ba9 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/DelegatingItemProviderIntegrationTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/DelegatingItemReaderIntegrationTests.java
@@ -7,13 +7,13 @@ import org.springframework.batch.io.sample.domain.FooService;
import org.springframework.test.AbstractDependencyInjectionSpringContextTests;
/**
- * Tests for {@link DelegatingItemProvider}.
+ * Tests for {@link ItemReaderAdapter}.
*
* @author Robert Kasanicky
*/
-public class DelegatingItemProviderIntegrationTests extends AbstractDependencyInjectionSpringContextTests {
+public class DelegatingItemReaderIntegrationTests extends AbstractDependencyInjectionSpringContextTests {
- private DelegatingItemProvider provider;
+ private ItemReaderAdapter provider;
private FooService fooService;
@@ -29,7 +29,7 @@ public class DelegatingItemProviderIntegrationTests extends AbstractDependencyIn
public void testNext() throws Exception {
List returnedItems = new ArrayList();
Object item;
- while ((item = provider.next()) != null) {
+ while ((item = provider.read()) != null) {
returnedItems.add(item);
}
@@ -57,7 +57,7 @@ public class DelegatingItemProviderIntegrationTests extends AbstractDependencyIn
assertFalse(provider.recover(null, null));
}
- public void setProvider(DelegatingItemProvider provider) {
+ public void setProvider(ItemReaderAdapter provider) {
this.provider = provider;
}
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/InputSourceItemProviderTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/DelegatingItemReaderTests.java
similarity index 73%
rename from spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/InputSourceItemProviderTests.java
rename to spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/DelegatingItemReaderTests.java
index c5b084198..27493b345 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/InputSourceItemProviderTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/DelegatingItemReaderTests.java
@@ -20,8 +20,8 @@ import java.util.Properties;
import junit.framework.TestCase;
-import org.springframework.batch.io.InputSource;
import org.springframework.batch.io.Skippable;
+import org.springframework.batch.item.ItemReader;
import org.springframework.batch.restart.GenericRestartData;
import org.springframework.batch.restart.RestartData;
import org.springframework.batch.restart.Restartable;
@@ -29,21 +29,21 @@ import org.springframework.batch.statistics.StatisticsProvider;
import org.springframework.batch.support.PropertiesConverter;
/**
- * Unit test for {@link InputSourceItemProvider}
+ * Unit test for {@link DelegatingItemReader}
*
* @author Robert Kasanicky
*/
-public class InputSourceItemProviderTests extends TestCase {
+public class DelegatingItemReaderTests extends TestCase {
// object under test
- private InputSourceItemProvider itemProvider = new InputSourceItemProvider();
+ private DelegatingItemReader itemProvider = new DelegatingItemReader();
- private InputSource source;
+ private ItemReader source;
// create input template and inject it to data provider
protected void setUp() throws Exception {
- source = new MockInputSource(this);
- itemProvider.setInputSource(source);
+ source = new MockItemReader(this);
+ itemProvider.setItemReader(source);
}
public void testAfterPropertiesSet()throws Exception{
@@ -51,9 +51,9 @@ public class InputSourceItemProviderTests extends TestCase {
itemProvider.afterPropertiesSet();
}
- public void testNullInputSource(){
+ public void testNullItemReader(){
try{
- itemProvider.setInputSource(null);
+ itemProvider.setItemReader(null);
itemProvider.afterPropertiesSet();
fail();
}catch(Exception ex){
@@ -63,9 +63,10 @@ public class InputSourceItemProviderTests extends TestCase {
/**
* Uses input template to provide the domain object.
+ * @throws Exception
*/
- public void testNext() {
- Object result = itemProvider.next();
+ public void testNext() throws Exception {
+ Object result = itemProvider.read();
assertSame("domain object is provided by the input template", this, result);
}
@@ -87,18 +88,19 @@ public class InputSourceItemProviderTests extends TestCase {
/**
* Forwared restart data to input template
+ * @throws Exception
*/
- public void testRestoreFrom() {
+ public void testRestoreFrom() throws Exception {
itemProvider.restoreFrom(new GenericRestartData(PropertiesConverter.stringToProperties("value=bar")));
- assertEquals("bar", itemProvider.next());
+ assertEquals("bar", itemProvider.read());
}
- public void testSkip() {
+ public void testSkip() throws Exception {
itemProvider.skip();
- assertEquals("after skip", itemProvider.next());
+ assertEquals("after skip", itemProvider.read());
}
- private static class MockInputSource implements InputSource, StatisticsProvider, Restartable, Skippable {
+ private static class MockItemReader extends AbstractItemReader implements ItemReader, StatisticsProvider, Restartable, Skippable {
private Object value;
@@ -114,7 +116,7 @@ public class InputSourceItemProviderTests extends TestCase {
value = data.getProperties().getProperty("value");
}
- public MockInputSource(Object value) {
+ public MockItemReader(Object value) {
this.value = value;
}
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/JmsItemProviderTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/JmsItemReaderTests.java
similarity index 95%
rename from spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/JmsItemProviderTests.java
rename to spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/JmsItemReaderTests.java
index 28c50e2ce..f4a937097 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/JmsItemProviderTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/JmsItemReaderTests.java
@@ -27,9 +27,9 @@ import junit.framework.TestCase;
import org.easymock.MockControl;
import org.springframework.jms.core.JmsOperations;
-public class JmsItemProviderTests extends TestCase {
+public class JmsItemReaderTests extends TestCase {
- JmsItemProvider itemProvider = new JmsItemProvider();
+ JmsItemReader itemProvider = new JmsItemReader();
public void testNoItemTypeSunnyDay() {
MockControl templateControl = MockControl.createControl(JmsOperations.class);
@@ -38,7 +38,7 @@ public class JmsItemProviderTests extends TestCase {
templateControl.replay();
itemProvider.setJmsTemplate(jmsTemplate);
- assertEquals("foo", itemProvider.next());
+ assertEquals("foo", itemProvider.read());
templateControl.verify();
}
@@ -50,7 +50,7 @@ public class JmsItemProviderTests extends TestCase {
itemProvider.setJmsTemplate(jmsTemplate);
itemProvider.setItemType(String.class);
- assertEquals("foo", itemProvider.next());
+ assertEquals("foo", itemProvider.read());
templateControl.verify();
}
@@ -64,7 +64,7 @@ public class JmsItemProviderTests extends TestCase {
itemProvider.setJmsTemplate(jmsTemplate);
itemProvider.setItemType(Date.class);
- assertEquals(date, itemProvider.next());
+ assertEquals(date, itemProvider.read());
templateControl.verify();
}
@@ -77,7 +77,7 @@ public class JmsItemProviderTests extends TestCase {
itemProvider.setJmsTemplate(jmsTemplate);
itemProvider.setItemType(Date.class);
try {
- itemProvider.next();
+ itemProvider.read();
fail("Expected IllegalStateException");
}
catch (IllegalStateException e) {
@@ -97,7 +97,7 @@ public class JmsItemProviderTests extends TestCase {
itemProvider.setJmsTemplate(jmsTemplate);
itemProvider.setItemType(Message.class);
- assertEquals(message, itemProvider.next());
+ assertEquals(message, itemProvider.read());
templateControl.verify();
}
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/ListItemProviderTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/ListItemReaderTests.java
similarity index 70%
rename from spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/ListItemProviderTests.java
rename to spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/ListItemReaderTests.java
index 871aec2e6..4ec61ddc7 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/ListItemProviderTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/ListItemReaderTests.java
@@ -22,23 +22,23 @@ import java.util.List;
import junit.framework.TestCase;
-public class ListItemProviderTests extends TestCase {
+public class ListItemReaderTests extends TestCase {
- ListItemProvider provider = new ListItemProvider(Arrays.asList(new String[] { "a", "b", "c" }));
+ ListItemReader provider = new ListItemReader(Arrays.asList(new String[] { "a", "b", "c" }));
public void testNext() throws Exception {
- assertEquals("a", provider.next());
- assertEquals("b", provider.next());
- assertEquals("c", provider.next());
- assertEquals(null, provider.next());
+ assertEquals("a", provider.read());
+ assertEquals("b", provider.read());
+ assertEquals("c", provider.read());
+ assertEquals(null, provider.read());
}
public void testChangeList() throws Exception {
List list = new ArrayList(Arrays.asList(new String[] { "a", "b", "c" }));
- provider = new ListItemProvider(list);
- assertEquals("a", provider.next());
+ provider = new ListItemReader(list);
+ assertEquals("a", provider.read());
list.clear();
assertEquals(0, list.size());
- assertEquals("b", provider.next());
+ assertEquals("b", provider.read());
}
}
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/TransactionAwareListItemProviderTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/TransactionAwareListItemReaderTests.java
similarity index 85%
rename from spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/TransactionAwareListItemProviderTests.java
rename to spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/TransactionAwareListItemReaderTests.java
index 4e492dbc7..ff773390f 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/TransactionAwareListItemProviderTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/TransactionAwareListItemReaderTests.java
@@ -29,25 +29,25 @@ import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.TransactionCallback;
import org.springframework.transaction.support.TransactionTemplate;
-public class TransactionAwareListItemProviderTests extends TestCase {
+public class TransactionAwareListItemReaderTests extends TestCase {
// TransactionAwareListItemProvider provider = new
// TransactionAwareListItemProvider(Arrays.asList(new String[] { "a",
// "b", "c" }));
- ListItemProvider provider;
+ ListItemReader provider;
protected void setUp() throws Exception {
super.setUp();
TransactionAwareProxyFactory factory = new TransactionAwareProxyFactory(Arrays.asList(new String[] { "a", "b",
"c" }));
- provider = new ListItemProvider((List) factory.createInstance());
+ provider = new ListItemReader((List) factory.createInstance());
}
public void testNext() throws Exception {
- assertEquals("a", provider.next());
- assertEquals("b", provider.next());
- assertEquals("c", provider.next());
- assertEquals(null, provider.next());
+ assertEquals("a", provider.read());
+ assertEquals("b", provider.read());
+ assertEquals("c", provider.read());
+ assertEquals(null, provider.read());
}
public void testCommit() throws Exception {
@@ -56,7 +56,7 @@ public class TransactionAwareListItemProviderTests extends TestCase {
try {
new TransactionTemplate(transactionManager).execute(new TransactionCallback() {
public Object doInTransaction(TransactionStatus status) {
- taken.add(provider.next());
+ taken.add(provider.read());
return null;
}
});
@@ -68,10 +68,10 @@ public class TransactionAwareListItemProviderTests extends TestCase {
assertEquals(1, taken.size());
assertEquals("a", taken.get(0));
taken.clear();
- Object next = provider.next();
+ Object next = provider.read();
while (next != null) {
taken.add(next);
- next = provider.next();
+ next = provider.read();
}
// System.err.println(taken);
assertFalse(taken.contains("a"));
@@ -82,10 +82,10 @@ public class TransactionAwareListItemProviderTests extends TestCase {
final List taken = new ArrayList();
new TransactionTemplate(transactionManager).execute(new TransactionCallback() {
public Object doInTransaction(TransactionStatus status) {
- Object next = provider.next();
+ Object next = provider.read();
while (next != null) {
taken.add(next);
- next = provider.next();
+ next = provider.read();
}
return null;
}
@@ -100,7 +100,7 @@ public class TransactionAwareListItemProviderTests extends TestCase {
try {
new TransactionTemplate(transactionManager).execute(new TransactionCallback() {
public Object doInTransaction(TransactionStatus status) {
- taken.add(provider.next());
+ taken.add(provider.read());
throw new RuntimeException("Rollback!");
}
});
@@ -112,10 +112,10 @@ public class TransactionAwareListItemProviderTests extends TestCase {
assertEquals(1, taken.size());
assertEquals("a", taken.get(0));
taken.clear();
- Object next = provider.next();
+ Object next = provider.read();
while (next != null) {
taken.add(next);
- next = provider.next();
+ next = provider.read();
}
System.err.println(taken);
assertTrue(taken.contains("a"));
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/ValidatingItemProviderTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/ValidatingItemReaderTests.java
similarity index 69%
rename from spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/ValidatingItemProviderTests.java
rename to spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/ValidatingItemReaderTests.java
index a57dbeada..ed968e516 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/ValidatingItemProviderTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/provider/ValidatingItemReaderTests.java
@@ -18,18 +18,18 @@ package org.springframework.batch.item.provider;
import junit.framework.TestCase;
import org.easymock.MockControl;
-import org.springframework.batch.io.InputSource;
import org.springframework.batch.io.exception.ValidationException;
+import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.validator.Validator;
/**
* @author Lucas Ward
*
*/
-public class ValidatingItemProviderTests extends TestCase {
+public class ValidatingItemReaderTests extends TestCase {
- InputSource inputSource;
- ValidatingItemProvider itemProvider;
+ ItemReader inputSource;
+ ValidatingItemReader itemProvider;
Validator validator;
MockControl validatorControl = MockControl.createControl(Validator.class);
@@ -39,20 +39,20 @@ public class ValidatingItemProviderTests extends TestCase {
protected void setUp() throws Exception {
super.setUp();
- inputSource = new MockInputSource(this);
+ inputSource = new MockItemReader(this);
validator = (Validator)validatorControl.getMock();
- itemProvider = new ValidatingItemProvider();
- itemProvider.setInputSource(inputSource);
+ itemProvider = new ValidatingItemReader();
+ itemProvider.setItemReader(inputSource);
itemProvider.setValidator(validator);
}
/*
* Super class' afterPropertieSet should be called to
- * ensure InputSource is set.
+ * ensure ItemReader is set.
*/
- public void testInputSourcePropertiesSet(){
+ public void testItemReaderPropertiesSet(){
try{
- itemProvider.setInputSource(null);
+ itemProvider.setItemReader(null);
itemProvider.afterPropertiesSet();
fail();
}catch(Exception ex){
@@ -70,40 +70,40 @@ public class ValidatingItemProviderTests extends TestCase {
}
}
- public void testValidation(){
+ public void testValidation() throws Exception{
validator.validate(this);
validatorControl.replay();
- assertEquals(itemProvider.next(), this);
+ assertEquals(itemProvider.read(), this);
validatorControl.verify();
}
- public void testValidationException(){
+ public void testValidationException() throws Exception{
validator.validate(this);
validatorControl.setThrowable(new ValidationException(""));
validatorControl.replay();
try{
- itemProvider.next();
+ itemProvider.read();
fail();
}catch(ValidationException ex){
//expected
}
}
- public void testNullInput(){
+ public void testNullInput() throws Exception{
validatorControl.replay();
- itemProvider.setInputSource(new MockInputSource(null));
- assertNull(itemProvider.next());
+ itemProvider.setItemReader(new MockItemReader(null));
+ assertNull(itemProvider.read());
//assert validator wasn't called.
validatorControl.verify();
}
- private static class MockInputSource implements InputSource{
+ private static class MockItemReader extends AbstractItemReader {
Object value;
- public MockInputSource(Object value){
+ public MockItemReader(Object value){
this.value = value;
}
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/callback/ItemProviderRepeatCallbackTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/callback/ItemReaderRepeatCallbackTests.java
similarity index 72%
rename from spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/callback/ItemProviderRepeatCallbackTests.java
rename to spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/callback/ItemReaderRepeatCallbackTests.java
index 9302fdd09..055376890 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/callback/ItemProviderRepeatCallbackTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/callback/ItemReaderRepeatCallbackTests.java
@@ -23,16 +23,16 @@ import java.util.List;
import junit.framework.TestCase;
import org.springframework.batch.item.ItemProcessor;
-import org.springframework.batch.item.provider.ListItemProvider;
+import org.springframework.batch.item.provider.ListItemReader;
-public class ItemProviderRepeatCallbackTests extends TestCase {
+public class ItemReaderRepeatCallbackTests extends TestCase {
- ItemProviderRepeatCallback callback;
+ ItemReaderRepeatCallback callback;
List list = new ArrayList();
public void testDoWithRepeat() throws Exception {
- callback = new ItemProviderRepeatCallback(new ListItemProvider(Arrays.asList(new String[] { "foo", "bar" })),
+ callback = new ItemReaderRepeatCallback(new ListItemReader(Arrays.asList(new String[] { "foo", "bar" })),
new ItemProcessor() {
public void process(Object data) {
list.add(data);
@@ -44,11 +44,11 @@ public class ItemProviderRepeatCallbackTests extends TestCase {
}
public void testDoWithRepeatNullProcessor() throws Exception {
- ListItemProvider provider = new ListItemProvider(Arrays.asList(new String[] { "foo", "bar" }));
- callback = new ItemProviderRepeatCallback(provider);
+ ListItemReader provider = new ListItemReader(Arrays.asList(new String[] { "foo", "bar" }));
+ callback = new ItemReaderRepeatCallback(provider);
callback.doInIteration(null);
assertEquals(0, list.size());
- assertEquals("bar", provider.next());
+ assertEquals("bar", provider.read());
}
}
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/support/AbstractTradeBatchTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/support/AbstractTradeBatchTests.java
index cae0434e2..a0ee5eacd 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/support/AbstractTradeBatchTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/support/AbstractTradeBatchTests.java
@@ -20,9 +20,9 @@ import junit.framework.TestCase;
import org.springframework.batch.io.file.FieldSet;
import org.springframework.batch.io.file.FieldSetMapper;
-import org.springframework.batch.io.file.support.SimpleFlatFileInputSource;
+import org.springframework.batch.io.file.support.SimpleFlatFileItemReader;
import org.springframework.batch.item.ItemProcessor;
-import org.springframework.batch.item.provider.InputSourceItemProvider;
+import org.springframework.batch.item.provider.DelegatingItemReader;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
@@ -40,26 +40,26 @@ public abstract class AbstractTradeBatchTests extends TestCase {
protected TradeProcessor processor = new TradeProcessor();
- protected TradeItemProvider provider;
+ protected TradeItemReader provider;
protected void setUp() throws Exception {
super.setUp();
- provider = new TradeItemProvider(resource);
+ provider = new TradeItemReader(resource);
}
- protected static class TradeItemProvider extends InputSourceItemProvider {
+ protected static class TradeItemReader extends DelegatingItemReader {
- protected TradeItemProvider(Resource resource) throws Exception {
+ protected TradeItemReader(Resource resource) throws Exception {
super();
- SimpleFlatFileInputSource inputSource = new SimpleFlatFileInputSource();
+ SimpleFlatFileItemReader inputSource = new SimpleFlatFileItemReader();
inputSource.setResource(resource);
inputSource.setFieldSetMapper(new TradeMapper());
inputSource.afterPropertiesSet();
- setInputSource(inputSource);
+ setItemReader(inputSource);
}
- public synchronized Object next() {
- return super.next();
+ public synchronized Object read() throws Exception {
+ return super.read();
}
}
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/support/AsynchronousRepeatTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/support/AsynchronousRepeatTests.java
index 92af4fdbb..3d136984c 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/support/AsynchronousRepeatTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/support/AsynchronousRepeatTests.java
@@ -22,7 +22,7 @@ import java.util.Set;
import org.springframework.batch.repeat.RepeatCallback;
import org.springframework.batch.repeat.RepeatContext;
import org.springframework.batch.repeat.ExitStatus;
-import org.springframework.batch.repeat.callback.ItemProviderRepeatCallback;
+import org.springframework.batch.repeat.callback.ItemReaderRepeatCallback;
import org.springframework.core.task.SimpleAsyncTaskExecutor;
public class AsynchronousRepeatTests extends AbstractTradeBatchTests {
@@ -41,7 +41,7 @@ public class AsynchronousRepeatTests extends AbstractTradeBatchTests {
final String threadName = Thread.currentThread().getName();
final Set threadNames = new HashSet();
- final RepeatCallback callback = new ItemProviderRepeatCallback(provider, processor) {
+ final RepeatCallback callback = new ItemReaderRepeatCallback(provider, processor) {
public ExitStatus doInIteration(RepeatContext context) throws Exception {
assertNotSame(threadName, Thread.currentThread().getName());
threadNames.add(Thread.currentThread().getName());
@@ -72,7 +72,7 @@ public class AsynchronousRepeatTests extends AbstractTradeBatchTests {
final String threadName = Thread.currentThread().getName();
final Set threadNames = new HashSet();
- final RepeatCallback stepCallback = new ItemProviderRepeatCallback(provider, processor) {
+ final RepeatCallback stepCallback = new ItemReaderRepeatCallback(provider, processor) {
public ExitStatus doInIteration(RepeatContext context) throws Exception {
assertNotSame(threadName, Thread.currentThread().getName());
threadNames.add(Thread.currentThread().getName());
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/support/ChunkedRepeatTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/support/ChunkedRepeatTests.java
index 6e99d0aa2..3219d2bda 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/support/ChunkedRepeatTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/support/ChunkedRepeatTests.java
@@ -16,12 +16,12 @@
package org.springframework.batch.repeat.support;
-import org.springframework.batch.item.ItemProvider;
-import org.springframework.batch.item.provider.AbstractItemProvider;
+import org.springframework.batch.item.ItemReader;
+import org.springframework.batch.item.provider.AbstractItemReader;
import org.springframework.batch.repeat.RepeatCallback;
import org.springframework.batch.repeat.RepeatContext;
import org.springframework.batch.repeat.ExitStatus;
-import org.springframework.batch.repeat.callback.ItemProviderRepeatCallback;
+import org.springframework.batch.repeat.callback.ItemReaderRepeatCallback;
import org.springframework.batch.repeat.callback.NestedRepeatCallback;
import org.springframework.batch.repeat.policy.SimpleCompletionPolicy;
import org.springframework.core.task.SimpleAsyncTaskExecutor;
@@ -46,7 +46,7 @@ public class ChunkedRepeatTests extends AbstractTradeBatchTests {
public void testChunkedBatchWithTerminationPolicy() throws Exception {
RepeatTemplate repeatTemplate = new RepeatTemplate();
- final RepeatCallback callback = new ItemProviderRepeatCallback(provider, processor);
+ final RepeatCallback callback = new ItemReaderRepeatCallback(provider, processor);
final RepeatTemplate chunkTemplate = new RepeatTemplate();
// The policy is resettable so we only have to resolve this dependency
@@ -80,7 +80,7 @@ public class ChunkedRepeatTests extends AbstractTradeBatchTests {
public void testAsynchronousChunkedBatchWithCompletionPolicy() throws Exception {
RepeatTemplate repeatTemplate = new RepeatTemplate();
- final RepeatCallback callback = new ItemProviderRepeatCallback(provider, processor);
+ final RepeatCallback callback = new ItemReaderRepeatCallback(provider, processor);
final TaskExecutorRepeatTemplate chunkTemplate = new TaskExecutorRepeatTemplate();
// The policy is resettable so we only have to resolve this dependency
@@ -148,17 +148,17 @@ public class ChunkedRepeatTests extends AbstractTradeBatchTests {
while (!chunker.ready()) {
- ItemProvider truncated = new AbstractItemProvider() {
+ ItemReader truncated = new AbstractItemReader() {
int count = 0;
- public Object next() throws Exception {
+ public Object read() throws Exception {
if (count++ < 2)
- return provider.next();
+ return provider.read();
return null;
}
};
chunker.reset();
- template.iterate(new ItemProviderRepeatCallback(truncated, processor) {
+ template.iterate(new ItemReaderRepeatCallback(truncated, processor) {
public ExitStatus doInIteration(RepeatContext context) throws Exception {
ExitStatus result = super.doInIteration(context);
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/support/SimpleRepeatTemplateTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/support/SimpleRepeatTemplateTests.java
index 7b8044caf..7633d7a45 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/support/SimpleRepeatTemplateTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/support/SimpleRepeatTemplateTests.java
@@ -22,7 +22,7 @@ import java.util.List;
import org.springframework.batch.repeat.RepeatCallback;
import org.springframework.batch.repeat.RepeatContext;
import org.springframework.batch.repeat.ExitStatus;
-import org.springframework.batch.repeat.callback.ItemProviderRepeatCallback;
+import org.springframework.batch.repeat.callback.ItemReaderRepeatCallback;
import org.springframework.batch.repeat.callback.NestedRepeatCallback;
import org.springframework.batch.repeat.context.RepeatContextSupport;
import org.springframework.batch.repeat.exception.handler.ExceptionHandler;
@@ -44,7 +44,7 @@ public class SimpleRepeatTemplateTests extends AbstractTradeBatchTests {
}
public void testExecute() throws Exception {
- template.iterate(new ItemProviderRepeatCallback(provider, processor));
+ template.iterate(new ItemReaderRepeatCallback(provider, processor));
assertEquals(NUMBER_OF_ITEMS, processor.count);
}
@@ -57,7 +57,7 @@ public class SimpleRepeatTemplateTests extends AbstractTradeBatchTests {
template.setCompletionPolicy(new SimpleCompletionPolicy(2));
- template.iterate(new ItemProviderRepeatCallback(provider, processor));
+ template.iterate(new ItemReaderRepeatCallback(provider, processor));
assertEquals(2, processor.count);
@@ -197,7 +197,7 @@ public class SimpleRepeatTemplateTests extends AbstractTradeBatchTests {
*/
public void testEarlyCompletionWithContext() throws Exception {
- ExitStatus result = template.iterate(new ItemProviderRepeatCallback(provider, processor) {
+ ExitStatus result = template.iterate(new ItemReaderRepeatCallback(provider, processor) {
public ExitStatus doInIteration(RepeatContext context) throws Exception {
ExitStatus result = super.doInIteration(context);
@@ -225,7 +225,7 @@ public class SimpleRepeatTemplateTests extends AbstractTradeBatchTests {
*/
public void testEarlyCompletionWithContextTerminated() throws Exception {
- ExitStatus result = template.iterate(new ItemProviderRepeatCallback(provider, processor) {
+ ExitStatus result = template.iterate(new ItemReaderRepeatCallback(provider, processor) {
public ExitStatus doInIteration(RepeatContext context) throws Exception {
ExitStatus result = super.doInIteration(context);
@@ -321,7 +321,7 @@ public class SimpleRepeatTemplateTests extends AbstractTradeBatchTests {
* @throws Exception
*/
public void testResult() throws Exception {
- ExitStatus result = template.iterate(new ItemProviderRepeatCallback(provider, processor));
+ ExitStatus result = template.iterate(new ItemReaderRepeatCallback(provider, processor));
assertEquals(NUMBER_OF_ITEMS, processor.count);
// We are complete - do not expect to be called again
assertFalse(result.isContinuable());
@@ -360,7 +360,7 @@ public class SimpleRepeatTemplateTests extends AbstractTradeBatchTests {
ExitStatus result = ExitStatus.FINISHED;
try {
- result = template.iterate(new ItemProviderRepeatCallback(provider, processor) {
+ result = template.iterate(new ItemReaderRepeatCallback(provider, processor) {
public ExitStatus doInIteration(RepeatContext context) throws Exception {
ExitStatus result = super.doInIteration(context);
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/retry/ListItemProviderRecoverer.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/retry/ListItemReaderRecoverer.java
similarity index 76%
rename from spring-batch-infrastructure/src/test/java/org/springframework/batch/retry/ListItemProviderRecoverer.java
rename to spring-batch-infrastructure/src/test/java/org/springframework/batch/retry/ListItemReaderRecoverer.java
index e917ee990..e0209f3cf 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/retry/ListItemProviderRecoverer.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/retry/ListItemReaderRecoverer.java
@@ -18,23 +18,23 @@ package org.springframework.batch.retry;
import java.util.List;
-import org.springframework.batch.item.ItemProvider;
+import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.ItemRecoverer;
-import org.springframework.batch.item.provider.ListItemProvider;
+import org.springframework.batch.item.provider.ListItemReader;
-public class ListItemProviderRecoverer extends ListItemProvider implements ItemProvider, ItemRecoverer {
+public class ListItemReaderRecoverer extends ListItemReader implements ItemReader, ItemRecoverer {
/**
* Delegate to super class constructor.
* @param list
*/
- public ListItemProviderRecoverer(List list) {
+ public ListItemReaderRecoverer(List list) {
super(list);
}
/**
* Do nothing. Subclassses should override to implement recovery behaviour.
*
- * @see org.springframework.batch.item.ItemProvider#recover(java.lang.Object,
+ * @see org.springframework.batch.item.ItemReader#recover(java.lang.Object,
* Throwable)
*
* @return false if nothing can be done (the default), or true if the item
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/retry/callback/ItemProviderRetryCallbackTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/retry/callback/ItemReaderRetryCallbackTests.java
similarity index 86%
rename from spring-batch-infrastructure/src/test/java/org/springframework/batch/retry/callback/ItemProviderRetryCallbackTests.java
rename to spring-batch-infrastructure/src/test/java/org/springframework/batch/retry/callback/ItemReaderRetryCallbackTests.java
index a6701b84f..23a1f2325 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/retry/callback/ItemProviderRetryCallbackTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/retry/callback/ItemReaderRetryCallbackTests.java
@@ -23,8 +23,8 @@ import java.util.List;
import junit.framework.TestCase;
import org.springframework.batch.item.ItemProcessor;
-import org.springframework.batch.item.provider.ListItemProvider;
-import org.springframework.batch.retry.ListItemProviderRecoverer;
+import org.springframework.batch.item.provider.ListItemReader;
+import org.springframework.batch.retry.ListItemReaderRecoverer;
import org.springframework.batch.retry.RetryContext;
import org.springframework.batch.retry.context.RetryContextSupport;
import org.springframework.batch.retry.exception.RetryException;
@@ -32,7 +32,7 @@ import org.springframework.batch.retry.exception.TerminatedRetryException;
import org.springframework.batch.retry.policy.NeverRetryPolicy;
import org.springframework.batch.retry.support.RetryTemplate;
-public class ItemProviderRetryCallbackTests extends TestCase {
+public class ItemReaderRetryCallbackTests extends TestCase {
List calls = new ArrayList();
@@ -40,14 +40,14 @@ public class ItemProviderRetryCallbackTests extends TestCase {
RetryTemplate template;
- ListItemProvider provider;
+ ListItemReader provider;
- ItemProviderRetryCallback callback;
+ ItemReaderRetryCallback callback;
protected void setUp() throws Exception {
super.setUp();
template = new RetryTemplate();
- provider = new ListItemProviderRecoverer(Arrays.asList(new String[] { "foo", "bar" })) {
+ provider = new ListItemReaderRecoverer(Arrays.asList(new String[] { "foo", "bar" })) {
public boolean recover(Object data, Throwable cause) {
count++;
calls.add(data);
@@ -57,7 +57,7 @@ public class ItemProviderRetryCallbackTests extends TestCase {
return "key" + (count++);
}
};
- callback = new ItemProviderRetryCallback(provider, new ItemProcessor() {
+ callback = new ItemReaderRetryCallback(provider, new ItemProcessor() {
public void process(Object data) {
count++;
if (data.equals("bar")) {
@@ -73,8 +73,8 @@ public class ItemProviderRetryCallbackTests extends TestCase {
}
public void testDataExhausted() throws Exception {
- provider.next();
- provider.next(); // line up a null data item...
+ provider.read();
+ provider.read(); // line up a null data item...
try {
template.execute(callback);
@@ -90,12 +90,12 @@ public class ItemProviderRetryCallbackTests extends TestCase {
public void testContextInitializedWithItemAndCanRetry() throws Exception {
// We can use the policy to intercept the context and do something with
// the item...
- provider.next(); // line up an unsuccessful call...
+ provider.read(); // line up an unsuccessful call...
assertEquals(0, calls.size());
template.setRetryPolicy(new NeverRetryPolicy() {
public boolean canRetry(RetryContext context) {
// ...register the failed item
- calls.add("item(" + count + ")=" + context.getAttribute(ItemProviderRetryCallback.ITEM));
+ calls.add("item(" + count + ")=" + context.getAttribute(ItemReaderRetryCallback.ITEM));
// Do not call the base class method - the attempt counts as
// successful now
if (count < 2) // only retry once
@@ -121,12 +121,12 @@ public class ItemProviderRetryCallbackTests extends TestCase {
public void testContextInitializedWithItemAndRegisterThrowable() throws Exception {
// We can use the policy to intercept the context and do something with
// the item...
- provider.next(); // line up an unsuccessful call...
+ provider.read(); // line up an unsuccessful call...
assertEquals(0, calls.size());
template.setRetryPolicy(new NeverRetryPolicy() {
public void registerThrowable(RetryContext context, Throwable throwable) throws TerminatedRetryException {
// ...register the failed item
- calls.add("item=" + context.getAttribute(ItemProviderRetryCallback.ITEM));
+ calls.add("item=" + context.getAttribute(ItemReaderRetryCallback.ITEM));
// Call the base class method so that the next attempt is a
// failure.
super.registerThrowable(context, throwable);
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/retry/policy/ItemProviderRetryPolicyTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/retry/policy/ItemReaderRetryPolicyTests.java
similarity index 79%
rename from spring-batch-infrastructure/src/test/java/org/springframework/batch/retry/policy/ItemProviderRetryPolicyTests.java
rename to spring-batch-infrastructure/src/test/java/org/springframework/batch/retry/policy/ItemReaderRetryPolicyTests.java
index 459d03464..4eea2feff 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/retry/policy/ItemProviderRetryPolicyTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/retry/policy/ItemReaderRetryPolicyTests.java
@@ -25,23 +25,23 @@ import junit.framework.TestCase;
import org.springframework.batch.item.FailedItemIdentifier;
import org.springframework.batch.item.ItemProcessor;
-import org.springframework.batch.item.ItemProvider;
-import org.springframework.batch.item.provider.ListItemProvider;
+import org.springframework.batch.item.ItemReader;
+import org.springframework.batch.item.provider.ListItemReader;
import org.springframework.batch.repeat.RepeatContext;
import org.springframework.batch.repeat.context.RepeatContextSupport;
import org.springframework.batch.repeat.synch.RepeatSynchronizationManager;
-import org.springframework.batch.retry.ListItemProviderRecoverer;
+import org.springframework.batch.retry.ListItemReaderRecoverer;
import org.springframework.batch.retry.RetryCallback;
import org.springframework.batch.retry.RetryContext;
-import org.springframework.batch.retry.callback.ItemProviderRetryCallback;
+import org.springframework.batch.retry.callback.ItemReaderRetryCallback;
import org.springframework.batch.retry.context.RetryContextSupport;
import org.springframework.batch.retry.support.RetryTemplate;
-public class ItemProviderRetryPolicyTests extends TestCase {
+public class ItemReaderRetryPolicyTests extends TestCase {
- private ItemProviderRetryPolicy policy = new ItemProviderRetryPolicy();
+ private ItemReaderRetryPolicy policy = new ItemReaderRetryPolicy();
- private ItemProvider provider;
+ private ItemReader provider;
private int count = 0;
@@ -51,7 +51,7 @@ public class ItemProviderRetryPolicyTests extends TestCase {
super.setUp();
// The list simulates a failed delivery, redelivery of the same message,
// then a new message...
- provider = new ListItemProviderRecoverer(Arrays.asList(new String[] { "foo", "foo", "bar" })) {
+ provider = new ListItemReaderRecoverer(Arrays.asList(new String[] { "foo", "foo", "bar" })) {
public boolean recover(Object data, Throwable cause) {
count++;
list.add(data);
@@ -61,7 +61,7 @@ public class ItemProviderRetryPolicyTests extends TestCase {
}
public void testOpenSunnyDay() throws Exception {
- RetryContext context = policy.open(new ItemProviderRetryCallback(provider, new ItemProcessor() {
+ RetryContext context = policy.open(new ItemReaderRetryCallback(provider, new ItemProcessor() {
public void process(Object data) {
count++;
list.add(data);
@@ -71,8 +71,8 @@ public class ItemProviderRetryPolicyTests extends TestCase {
// we haven't called the processor yet...
assertEquals(0, count);
// but the provider has been accessed:
- assertEquals("foo", provider.next());
- assertEquals("bar", provider.next());
+ assertEquals("foo", provider.read());
+ assertEquals("bar", provider.read());
}
public void testOpenWithWrongCallbackType() {
@@ -92,7 +92,7 @@ public class ItemProviderRetryPolicyTests extends TestCase {
public void testCanRetry() {
policy.setDelegate(new AlwaysRetryPolicy());
- RetryContext context = policy.open(new ItemProviderRetryCallback(provider, new ItemProcessor() {
+ RetryContext context = policy.open(new ItemReaderRetryCallback(provider, new ItemProcessor() {
public void process(Object data) {
count++;
}
@@ -105,7 +105,7 @@ public class ItemProviderRetryPolicyTests extends TestCase {
public void testRegisterThrowable() {
policy.setDelegate(new NeverRetryPolicy());
- RetryContext context = policy.open(new ItemProviderRetryCallback(provider, new ItemProcessor() {
+ RetryContext context = policy.open(new ItemReaderRetryCallback(provider, new ItemProcessor() {
public void process(Object data) {
count++;
list.add(data);
@@ -118,7 +118,7 @@ public class ItemProviderRetryPolicyTests extends TestCase {
public void testClose() throws Exception {
policy.setDelegate(new NeverRetryPolicy());
- RetryContext context = policy.open(new ItemProviderRetryCallback(provider, new ItemProcessor() {
+ RetryContext context = policy.open(new ItemReaderRetryCallback(provider, new ItemProcessor() {
public void process(Object data) {
count++;
list.add(data);
@@ -132,12 +132,12 @@ public class ItemProviderRetryPolicyTests extends TestCase {
// (not that this would happen in practice)...
assertFalse(policy.canRetry(context));
// The provider has been accessed only once:
- assertEquals("foo", provider.next());
- assertEquals("bar", provider.next());
+ assertEquals("foo", provider.read());
+ assertEquals("bar", provider.read());
}
public void testOpenTwice() throws Exception {
- ItemProviderRetryCallback callback = new ItemProviderRetryCallback(provider, new ItemProcessor() {
+ ItemReaderRetryCallback callback = new ItemReaderRetryCallback(provider, new ItemProcessor() {
public void process(Object data) {
count++;
list.add(data);
@@ -162,13 +162,13 @@ public class ItemProviderRetryPolicyTests extends TestCase {
// The provider has been accessed twice, so this
// mimics a message receive by repeating the value of the first
// message...
- assertEquals("bar", provider.next());
+ assertEquals("bar", provider.read());
}
public void testRecover() throws Exception {
- policy = new ItemProviderRetryPolicy();
+ policy = new ItemReaderRetryPolicy();
policy.setDelegate(new SimpleRetryPolicy(1));
- ItemProviderRetryCallback callback = new ItemProviderRetryCallback(provider, new ItemProcessor() {
+ ItemReaderRetryCallback callback = new ItemReaderRetryCallback(provider, new ItemProcessor() {
public void process(Object data) {
}
});
@@ -196,18 +196,18 @@ public class ItemProviderRetryPolicyTests extends TestCase {
}
public void testFailedItemIdentifier() throws Exception {
- policy = new ItemProviderRetryPolicy();
+ policy = new ItemReaderRetryPolicy();
policy.setDelegate(new SimpleRetryPolicy(1));
MockFailedItemProvider provider = new MockFailedItemProvider(Collections.EMPTY_LIST);
- ItemProviderRetryCallback callback = new ItemProviderRetryCallback(provider, null);
+ ItemReaderRetryCallback callback = new ItemReaderRetryCallback(provider, null);
policy.open(callback);
assertEquals(1, provider.hasFailedCount);
}
public void testRecoverWithTemplate() throws Exception {
- policy = new ItemProviderRetryPolicy();
+ policy = new ItemReaderRetryPolicy();
policy.setDelegate(new SimpleRetryPolicy(1));
- ItemProviderRetryCallback callback = new ItemProviderRetryCallback(provider, new ItemProcessor() {
+ ItemReaderRetryCallback callback = new ItemReaderRetryCallback(provider, new ItemProcessor() {
public void process(Object data) {
throw new RuntimeException("Barf!");
}
@@ -230,7 +230,7 @@ public class ItemProviderRetryPolicyTests extends TestCase {
}
public void testExhaustedClearsHistoryAfterLastAttempt() throws Exception {
- ItemProviderRetryCallback callback = new ItemProviderRetryCallback(provider, new ItemProcessor() {
+ ItemReaderRetryCallback callback = new ItemReaderRetryCallback(provider, new ItemProcessor() {
public void process(Object data) {
count++;
list.add(data);
@@ -256,9 +256,9 @@ public class ItemProviderRetryPolicyTests extends TestCase {
}
public void testRetryCount() throws Exception {
- policy = new ItemProviderRetryPolicy();
+ policy = new ItemReaderRetryPolicy();
policy.setDelegate(new SimpleRetryPolicy(1));
- RetryContext context = policy.open(new ItemProviderRetryCallback(provider, new ItemProcessor() {
+ RetryContext context = policy.open(new ItemReaderRetryCallback(provider, new ItemProcessor() {
public void process(Object data) {
count++;
list.add(data);
@@ -273,14 +273,14 @@ public class ItemProviderRetryPolicyTests extends TestCase {
}
public void testRetryCountPreservedBetweenRetries() throws Exception {
- ItemProviderRetryCallback callback = new ItemProviderRetryCallback(provider, new ItemProcessor() {
+ ItemReaderRetryCallback callback = new ItemReaderRetryCallback(provider, new ItemProcessor() {
public void process(Object data) {
count++;
list.add(data);
}
});
- policy = new ItemProviderRetryPolicy();
+ policy = new ItemReaderRetryPolicy();
policy.setDelegate(new SimpleRetryPolicy(1));
RetryContext context = policy.open(callback);
assertNotNull(context);
@@ -299,7 +299,7 @@ public class ItemProviderRetryPolicyTests extends TestCase {
assertTrue(policy.hasFailed(provider, "foo"));
}
- private static class MockFailedItemProvider extends ListItemProvider implements FailedItemIdentifier {
+ private static class MockFailedItemProvider extends ListItemReader implements FailedItemIdentifier {
private int hasFailedCount = 0;
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/support/AbstractDelegatorTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/support/AbstractDelegatorTests.java
index b52e4bce2..cff7032d9 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/support/AbstractDelegatorTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/support/AbstractDelegatorTests.java
@@ -8,16 +8,16 @@ import org.springframework.batch.io.sample.domain.FooService;
import org.springframework.util.Assert;
/**
- * Tests for {@link AbstractDelegator}
+ * Tests for {@link AbstractMethodInvokingDelegator}
*
* @author Robert Kasanicky
*/
public class AbstractDelegatorTests extends TestCase {
- private static class ConcreteDelegator extends AbstractDelegator {
+ private static class ConcreteDelegator extends AbstractMethodInvokingDelegator {
}
- private AbstractDelegator delegator = new ConcreteDelegator();
+ private AbstractMethodInvokingDelegator delegator = new ConcreteDelegator();
private Foo foo = new Foo(0, "foo", 1);
diff --git a/spring-batch-infrastructure/src/test/resources/org/springframework/batch/item/processor/delegating-item-processor.xml b/spring-batch-infrastructure/src/test/resources/org/springframework/batch/item/processor/delegating-item-processor.xml
index a29cc09c3..9aaab0e0a 100644
--- a/spring-batch-infrastructure/src/test/resources/org/springframework/batch/item/processor/delegating-item-processor.xml
+++ b/spring-batch-infrastructure/src/test/resources/org/springframework/batch/item/processor/delegating-item-processor.xml
@@ -2,7 +2,7 @@
-
+
diff --git a/spring-batch-infrastructure/src/test/resources/org/springframework/batch/item/provider/delegating-item-provider.xml b/spring-batch-infrastructure/src/test/resources/org/springframework/batch/item/provider/delegating-item-provider.xml
index 741704896..7d0057b9f 100644
--- a/spring-batch-infrastructure/src/test/resources/org/springframework/batch/item/provider/delegating-item-provider.xml
+++ b/spring-batch-infrastructure/src/test/resources/org/springframework/batch/item/provider/delegating-item-provider.xml
@@ -2,7 +2,7 @@
-
+
diff --git a/spring-batch-integration/src/test/java/org/springframework/batch/io/oxm/AbstractStaxEventReaderInputSourceTests.java b/spring-batch-integration/src/test/java/org/springframework/batch/io/oxm/AbstractStaxEventReaderItemReaderTests.java
similarity index 90%
rename from spring-batch-integration/src/test/java/org/springframework/batch/io/oxm/AbstractStaxEventReaderInputSourceTests.java
rename to spring-batch-integration/src/test/java/org/springframework/batch/io/oxm/AbstractStaxEventReaderItemReaderTests.java
index 5db2e9d4f..3e98dc376 100644
--- a/spring-batch-integration/src/test/java/org/springframework/batch/io/oxm/AbstractStaxEventReaderInputSourceTests.java
+++ b/spring-batch-integration/src/test/java/org/springframework/batch/io/oxm/AbstractStaxEventReaderItemReaderTests.java
@@ -6,16 +6,16 @@ import java.util.List;
import junit.framework.TestCase;
-import org.springframework.batch.io.file.support.StaxEventReaderInputSource;
+import org.springframework.batch.io.file.support.StaxEventReaderItemReader;
import org.springframework.batch.io.file.support.oxm.UnmarshallingFragmentDeserializer;
import org.springframework.batch.io.oxm.domain.Trade;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.oxm.Unmarshaller;
-public abstract class AbstractStaxEventReaderInputSourceTests extends TestCase {
+public abstract class AbstractStaxEventReaderItemReaderTests extends TestCase {
- private StaxEventReaderInputSource source = new StaxEventReaderInputSource();
+ private StaxEventReaderItemReader source = new StaxEventReaderItemReader();
protected Resource resource = new ClassPathResource(
"org/springframework/batch/io/oxm/input.xml");
diff --git a/spring-batch-integration/src/test/java/org/springframework/batch/io/oxm/CastorUnmarshallingTests.java b/spring-batch-integration/src/test/java/org/springframework/batch/io/oxm/CastorUnmarshallingTests.java
index 25ba7efee..30892f8c5 100644
--- a/spring-batch-integration/src/test/java/org/springframework/batch/io/oxm/CastorUnmarshallingTests.java
+++ b/spring-batch-integration/src/test/java/org/springframework/batch/io/oxm/CastorUnmarshallingTests.java
@@ -4,7 +4,7 @@ import org.springframework.core.io.ClassPathResource;
import org.springframework.oxm.Unmarshaller;
import org.springframework.oxm.castor.CastorMarshaller;
-public class CastorUnmarshallingTests extends AbstractStaxEventReaderInputSourceTests {
+public class CastorUnmarshallingTests extends AbstractStaxEventReaderItemReaderTests {
protected Unmarshaller getUnmarshaller() throws Exception {
CastorMarshaller unmarshaller = new CastorMarshaller();
diff --git a/spring-batch-integration/src/test/java/org/springframework/batch/io/oxm/XStreamUnmarshallingTests.java b/spring-batch-integration/src/test/java/org/springframework/batch/io/oxm/XStreamUnmarshallingTests.java
index 89eeba3c1..ee3b498f2 100644
--- a/spring-batch-integration/src/test/java/org/springframework/batch/io/oxm/XStreamUnmarshallingTests.java
+++ b/spring-batch-integration/src/test/java/org/springframework/batch/io/oxm/XStreamUnmarshallingTests.java
@@ -6,7 +6,7 @@ import org.springframework.batch.io.oxm.domain.Trade;
import org.springframework.oxm.Unmarshaller;
import org.springframework.oxm.xstream.XStreamMarshaller;
-public class XStreamUnmarshallingTests extends AbstractStaxEventReaderInputSourceTests {
+public class XStreamUnmarshallingTests extends AbstractStaxEventReaderItemReaderTests {
protected Unmarshaller getUnmarshaller() throws Exception {
XStreamMarshaller unmarshaller = new XStreamMarshaller();
diff --git a/spring-batch-integration/src/test/java/org/springframework/batch/jms/ExternalRetryInBatchTests.java b/spring-batch-integration/src/test/java/org/springframework/batch/jms/ExternalRetryInBatchTests.java
index 519eff2ec..29168dca0 100644
--- a/spring-batch-integration/src/test/java/org/springframework/batch/jms/ExternalRetryInBatchTests.java
+++ b/spring-batch-integration/src/test/java/org/springframework/batch/jms/ExternalRetryInBatchTests.java
@@ -21,16 +21,16 @@ import java.util.List;
import javax.sql.DataSource;
+import org.springframework.batch.item.AbstractItemReaderRecoverer;
import org.springframework.batch.item.ItemProcessor;
-import org.springframework.batch.item.ItemProvider;
-import org.springframework.batch.item.provider.AbstractItemProvider;
+import org.springframework.batch.item.ItemReader;
+import org.springframework.batch.repeat.ExitStatus;
import org.springframework.batch.repeat.RepeatCallback;
import org.springframework.batch.repeat.RepeatContext;
-import org.springframework.batch.repeat.ExitStatus;
import org.springframework.batch.repeat.policy.SimpleCompletionPolicy;
import org.springframework.batch.repeat.support.RepeatTemplate;
-import org.springframework.batch.retry.callback.ItemProviderRetryCallback;
-import org.springframework.batch.retry.policy.ItemProviderRetryPolicy;
+import org.springframework.batch.retry.callback.ItemReaderRetryCallback;
+import org.springframework.batch.retry.policy.ItemReaderRetryPolicy;
import org.springframework.batch.retry.policy.SimpleRetryPolicy;
import org.springframework.batch.retry.support.RetryTemplate;
import org.springframework.jdbc.core.JdbcTemplate;
@@ -48,7 +48,7 @@ public class ExternalRetryInBatchTests extends AbstractDependencyInjectionSpring
private RepeatTemplate repeatTemplate;
- private ItemProvider provider;
+ private ItemReader provider;
private JdbcTemplate jdbcTemplate;
@@ -80,8 +80,8 @@ public class ExternalRetryInBatchTests extends AbstractDependencyInjectionSpring
jdbcTemplate.execute("delete from T_FOOS");
jmsTemplate.convertAndSend("queue", "foo");
jmsTemplate.convertAndSend("queue", "bar");
- provider = new AbstractItemProvider() {
- public Object next() {
+ provider = new AbstractItemReaderRecoverer() {
+ public Object read() {
String text = (String) jmsTemplate.receiveAndConvert("queue");
list.add(text);
return text;
@@ -112,9 +112,9 @@ public class ExternalRetryInBatchTests extends AbstractDependencyInjectionSpring
public void testExternalRetryRecoveryInBatch() throws Exception {
assertInitialState();
- retryTemplate.setRetryPolicy(new ItemProviderRetryPolicy(new SimpleRetryPolicy(1)));
+ retryTemplate.setRetryPolicy(new ItemReaderRetryPolicy(new SimpleRetryPolicy(1)));
- final ItemProviderRetryCallback callback = new ItemProviderRetryCallback(provider, new ItemProcessor() {
+ final ItemReaderRetryCallback callback = new ItemReaderRetryCallback(provider, new ItemProcessor() {
public void process(final Object text) {
// No need for transaction here: the whole batch will roll
// back. When it comes back for recovery this code is not
diff --git a/spring-batch-integration/src/test/java/org/springframework/batch/retry/jms/ExternalRetryTests.java b/spring-batch-integration/src/test/java/org/springframework/batch/retry/jms/ExternalRetryTests.java
index 820d7896c..1d014ae52 100644
--- a/spring-batch-integration/src/test/java/org/springframework/batch/retry/jms/ExternalRetryTests.java
+++ b/spring-batch-integration/src/test/java/org/springframework/batch/retry/jms/ExternalRetryTests.java
@@ -21,11 +21,11 @@ import java.util.List;
import javax.sql.DataSource;
+import org.springframework.batch.item.AbstractItemReaderRecoverer;
import org.springframework.batch.item.ItemProcessor;
-import org.springframework.batch.item.ItemProvider;
-import org.springframework.batch.item.provider.AbstractItemProvider;
-import org.springframework.batch.retry.callback.ItemProviderRetryCallback;
-import org.springframework.batch.retry.policy.ItemProviderRetryPolicy;
+import org.springframework.batch.item.ItemReader;
+import org.springframework.batch.retry.callback.ItemReaderRetryCallback;
+import org.springframework.batch.retry.policy.ItemReaderRetryPolicy;
import org.springframework.batch.retry.support.RetryTemplate;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jms.core.JmsTemplate;
@@ -41,7 +41,7 @@ public class ExternalRetryTests extends AbstractDependencyInjectionSpringContext
private RetryTemplate retryTemplate;
- private ItemProvider provider;
+ private ItemReader provider;
private JdbcTemplate jdbcTemplate;
@@ -68,8 +68,8 @@ public class ExternalRetryTests extends AbstractDependencyInjectionSpringContext
getMessages(); // drain queue
jdbcTemplate.execute("delete from T_FOOS");
jmsTemplate.convertAndSend("queue", "foo");
- provider = new AbstractItemProvider() {
- public Object next() {
+ provider = new AbstractItemReaderRecoverer() {
+ public Object read() {
String text = (String) jmsTemplate.receiveAndConvert("queue");
list.add(text);
return text;
@@ -102,9 +102,9 @@ public class ExternalRetryTests extends AbstractDependencyInjectionSpringContext
assertInitialState();
- retryTemplate.setRetryPolicy(new ItemProviderRetryPolicy());
+ retryTemplate.setRetryPolicy(new ItemReaderRetryPolicy());
- final ItemProviderRetryCallback callback = new ItemProviderRetryCallback(provider, new ItemProcessor() {
+ final ItemReaderRetryCallback callback = new ItemReaderRetryCallback(provider, new ItemProcessor() {
public void process(final Object text) {
jdbcTemplate.update("INSERT into T_FOOS (id,name,foo_date) values (?,?,null)", new Object[] {
Integer.valueOf(list.size()), text });
@@ -167,9 +167,9 @@ public class ExternalRetryTests extends AbstractDependencyInjectionSpringContext
assertInitialState();
- retryTemplate.setRetryPolicy(new ItemProviderRetryPolicy());
+ retryTemplate.setRetryPolicy(new ItemReaderRetryPolicy());
- final ItemProviderRetryCallback callback = new ItemProviderRetryCallback(provider, new ItemProcessor() {
+ final ItemReaderRetryCallback callback = new ItemReaderRetryCallback(provider, new ItemProcessor() {
public void process(final Object text) {
jdbcTemplate.update("INSERT into T_FOOS (id,name,foo_date) values (?,?,null)", new Object[] {
Integer.valueOf(list.size()), text });
diff --git a/spring-batch-integration/src/test/java/org/springframework/batch/retry/jms/SynchronousTests.java b/spring-batch-integration/src/test/java/org/springframework/batch/retry/jms/SynchronousTests.java
index fabfcef20..14045554e 100644
--- a/spring-batch-integration/src/test/java/org/springframework/batch/retry/jms/SynchronousTests.java
+++ b/spring-batch-integration/src/test/java/org/springframework/batch/retry/jms/SynchronousTests.java
@@ -20,10 +20,10 @@ import java.util.ArrayList;
import java.util.List;
import org.springframework.batch.item.ItemProcessor;
-import org.springframework.batch.item.provider.JmsItemProvider;
+import org.springframework.batch.item.provider.JmsItemReader;
import org.springframework.batch.retry.RetryCallback;
import org.springframework.batch.retry.RetryContext;
-import org.springframework.batch.retry.callback.ItemProviderRetryCallback;
+import org.springframework.batch.retry.callback.ItemReaderRetryCallback;
import org.springframework.batch.retry.support.RetryTemplate;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.test.AbstractTransactionalDataSourceSpringContextTests;
@@ -142,12 +142,12 @@ public class SynchronousTests extends AbstractTransactionalDataSourceSpringConte
assertInitialState();
- JmsItemProvider provider = new JmsItemProvider();
+ JmsItemReader provider = new JmsItemReader();
// provider.setItemType(Message.class);
provider.setJmsTemplate(jmsTemplate);
jmsTemplate.setDefaultDestinationName("queue");
- retryTemplate.execute(new ItemProviderRetryCallback(provider, new ItemProcessor() {
+ retryTemplate.execute(new ItemReaderRetryCallback(provider, new ItemProcessor() {
public void process(final Object text) {
TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager);
diff --git a/spring-batch-integration/src/test/java/org/springframework/retry/jms/SynchronousTests.java b/spring-batch-integration/src/test/java/org/springframework/retry/jms/SynchronousTests.java
index 0e33ff376..5b34ec4ae 100644
--- a/spring-batch-integration/src/test/java/org/springframework/retry/jms/SynchronousTests.java
+++ b/spring-batch-integration/src/test/java/org/springframework/retry/jms/SynchronousTests.java
@@ -20,10 +20,10 @@ import java.util.ArrayList;
import java.util.List;
import org.springframework.batch.item.ItemProcessor;
-import org.springframework.batch.item.provider.JmsItemProvider;
+import org.springframework.batch.item.provider.JmsItemReader;
import org.springframework.batch.retry.RetryCallback;
import org.springframework.batch.retry.RetryContext;
-import org.springframework.batch.retry.callback.ItemProviderRetryCallback;
+import org.springframework.batch.retry.callback.ItemReaderRetryCallback;
import org.springframework.batch.retry.support.RetryTemplate;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.test.AbstractTransactionalDataSourceSpringContextTests;
@@ -138,12 +138,12 @@ public class SynchronousTests extends AbstractTransactionalDataSourceSpringConte
assertInitialState();
- JmsItemProvider provider = new JmsItemProvider();
+ JmsItemReader provider = new JmsItemReader();
// provider.setItemType(Message.class);
provider.setJmsTemplate(jmsTemplate);
jmsTemplate.setDefaultDestinationName("queue");
- retryTemplate.execute(new ItemProviderRetryCallback(provider, new ItemProcessor() {
+ retryTemplate.execute(new ItemReaderRetryCallback(provider, new ItemProcessor() {
public void process(final Object text) {
TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager);
diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/PersonService.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/PersonService.java
index df8da60ee..cf0b97c18 100644
--- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/PersonService.java
+++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/PersonService.java
@@ -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} (getData()) and
+ * be contained in {@link ItemReader} (getData()) and
* {@link ItemProcessor} (processData(..)).
*
* @author tomas.slanina
diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/provider/OrderItemProvider.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/provider/OrderItemReader.java
similarity index 92%
rename from spring-batch-samples/src/main/java/org/springframework/batch/sample/item/provider/OrderItemProvider.java
rename to spring-batch-samples/src/main/java/org/springframework/batch/sample/item/provider/OrderItemReader.java
index 65bb1ee67..d8881a460 100644
--- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/provider/OrderItemProvider.java
+++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/provider/OrderItemReader.java
@@ -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;
}
diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/provider/StagingItemProvider.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/provider/StagingItemReader.java
similarity index 87%
rename from spring-batch-samples/src/main/java/org/springframework/batch/sample/item/provider/StagingItemProvider.java
rename to spring-batch-samples/src/main/java/org/springframework/batch/sample/item/provider/StagingItemReader.java
index 1a101f655..41f7ca7b1 100644
--- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/provider/StagingItemProvider.java
+++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/provider/StagingItemReader.java
@@ -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();
}
diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/tasklet/ExceptionRestartableTasklet.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/tasklet/ExceptionRestartableTasklet.java
index 819245e02..bb5cf3dc7 100644
--- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/tasklet/ExceptionRestartableTasklet.java
+++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/tasklet/ExceptionRestartableTasklet.java
@@ -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;
diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/tasklet/SimpleTradeTasklet.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/tasklet/SimpleTradeTasklet.java
index 4156fdc1b..c2d49fe2c 100644
--- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/tasklet/SimpleTradeTasklet.java
+++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/tasklet/SimpleTradeTasklet.java
@@ -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;
}
diff --git a/spring-batch-samples/src/main/resources/jobs/beanWrapperMapperSampleJob.xml b/spring-batch-samples/src/main/resources/jobs/beanWrapperMapperSampleJob.xml
index 7939d7082..55f51621f 100644
--- a/spring-batch-samples/src/main/resources/jobs/beanWrapperMapperSampleJob.xml
+++ b/spring-batch-samples/src/main/resources/jobs/beanWrapperMapperSampleJob.xml
@@ -16,11 +16,11 @@
+ class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
-
+ class="org.springframework.batch.item.provider.ValidatingItemReader">
+
@@ -35,11 +35,11 @@
+ class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
-
+ class="org.springframework.batch.item.provider.DelegatingItemReader">
+
@@ -55,7 +55,7 @@
-
@@ -63,7 +63,7 @@
-
diff --git a/spring-batch-samples/src/main/resources/jobs/compositeProcessorSampleJob.xml b/spring-batch-samples/src/main/resources/jobs/compositeProcessorSampleJob.xml
index 2421f8e05..333f5d837 100644
--- a/spring-batch-samples/src/main/resources/jobs/compositeProcessorSampleJob.xml
+++ b/spring-batch-samples/src/main/resources/jobs/compositeProcessorSampleJob.xml
@@ -15,11 +15,11 @@
+ class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
-
+ class="org.springframework.batch.item.provider.ValidatingItemReader">
+
@@ -46,7 +46,7 @@
-
diff --git a/spring-batch-samples/src/main/resources/jobs/delegatingJob.xml b/spring-batch-samples/src/main/resources/jobs/delegatingJob.xml
index 9a1cb2c60..7631e768a 100644
--- a/spring-batch-samples/src/main/resources/jobs/delegatingJob.xml
+++ b/spring-batch-samples/src/main/resources/jobs/delegatingJob.xml
@@ -22,9 +22,9 @@
+ class="org.springframework.batch.execution.tasklet.ItemOrientedTasklet">
-
+
diff --git a/spring-batch-samples/src/main/resources/jobs/fixedLengthImportJob.xml b/spring-batch-samples/src/main/resources/jobs/fixedLengthImportJob.xml
index a166f806a..339342d35 100644
--- a/spring-batch-samples/src/main/resources/jobs/fixedLengthImportJob.xml
+++ b/spring-batch-samples/src/main/resources/jobs/fixedLengthImportJob.xml
@@ -15,11 +15,11 @@
+ class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
-
+ class="org.springframework.batch.item.provider.ValidatingItemReader">
+
@@ -37,7 +37,7 @@
-
+
diff --git a/spring-batch-samples/src/main/resources/jobs/footballJob.xml b/spring-batch-samples/src/main/resources/jobs/footballJob.xml
index 4243177df..ba4302609 100644
--- a/spring-batch-samples/src/main/resources/jobs/footballJob.xml
+++ b/spring-batch-samples/src/main/resources/jobs/footballJob.xml
@@ -26,12 +26,12 @@
+ class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
-
+ class="org.springframework.batch.item.provider.DelegatingItemReader">
+
@@ -56,12 +56,12 @@
+ class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
-
+ class="org.springframework.batch.item.provider.DelegatingItemReader">
+
@@ -86,11 +86,11 @@
+ class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
-
+
@@ -113,8 +113,8 @@
-
+
@@ -130,8 +130,8 @@
-
+
@@ -148,7 +148,7 @@
+ class="org.springframework.batch.io.cursor.JdbcCursorItemReader" scope="step">
diff --git a/spring-batch-samples/src/main/resources/jobs/hibernateJob.xml b/spring-batch-samples/src/main/resources/jobs/hibernateJob.xml
index 3f5bc90cd..c77a50680 100644
--- a/spring-batch-samples/src/main/resources/jobs/hibernateJob.xml
+++ b/spring-batch-samples/src/main/resources/jobs/hibernateJob.xml
@@ -20,12 +20,12 @@
class="org.springframework.batch.execution.step.RepeatOperationsStepConfiguration">
+ class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
-
+ class="org.springframework.batch.item.provider.DelegatingItemReader">
+
@@ -76,8 +76,8 @@
-
diff --git a/spring-batch-samples/src/main/resources/jobs/ibatisJob.xml b/spring-batch-samples/src/main/resources/jobs/ibatisJob.xml
index 1be1d4c27..3c2231fe8 100644
--- a/spring-batch-samples/src/main/resources/jobs/ibatisJob.xml
+++ b/spring-batch-samples/src/main/resources/jobs/ibatisJob.xml
@@ -19,10 +19,10 @@
+ class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
-
-
+
+
@@ -43,7 +43,7 @@
-
diff --git a/spring-batch-samples/src/main/resources/jobs/multilineJob.xml b/spring-batch-samples/src/main/resources/jobs/multilineJob.xml
index 115234332..4ed756a3a 100644
--- a/spring-batch-samples/src/main/resources/jobs/multilineJob.xml
+++ b/spring-batch-samples/src/main/resources/jobs/multilineJob.xml
@@ -15,12 +15,12 @@
+ class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
-
+ class="org.springframework.batch.item.provider.AggregateItemReader">
+
@@ -43,8 +43,8 @@
-
-
diff --git a/spring-batch-samples/src/main/resources/jobs/multilineOrderJob.xml b/spring-batch-samples/src/main/resources/jobs/multilineOrderJob.xml
index 2b1ab1ce1..0f1cba672 100644
--- a/spring-batch-samples/src/main/resources/jobs/multilineOrderJob.xml
+++ b/spring-batch-samples/src/main/resources/jobs/multilineOrderJob.xml
@@ -18,10 +18,10 @@
+ class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
-
-
+
+
diff --git a/spring-batch-samples/src/main/resources/jobs/parallelJob.xml b/spring-batch-samples/src/main/resources/jobs/parallelJob.xml
index 19c6dd49b..a3accb12a 100644
--- a/spring-batch-samples/src/main/resources/jobs/parallelJob.xml
+++ b/spring-batch-samples/src/main/resources/jobs/parallelJob.xml
@@ -21,12 +21,12 @@
+ class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
-
+ class="org.springframework.batch.item.provider.DelegatingItemReader">
+
@@ -56,10 +56,10 @@
class="org.springframework.batch.execution.step.RepeatOperationsStepConfiguration">
+ class="org.springframework.batch.execution.tasklet.ItemOrientedTasklet">
+ class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
-
+ class="org.springframework.batch.item.provider.DelegatingItemReader">
+
@@ -139,11 +139,11 @@
+ class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
-
+
@@ -166,8 +166,8 @@
-
-
diff --git a/spring-batch-samples/src/main/resources/jobs/restartSample.xml b/spring-batch-samples/src/main/resources/jobs/restartSample.xml
index f5f532312..c00657657 100644
--- a/spring-batch-samples/src/main/resources/jobs/restartSample.xml
+++ b/spring-batch-samples/src/main/resources/jobs/restartSample.xml
@@ -18,8 +18,8 @@
-
+ class="org.springframework.batch.item.provider.ValidatingItemReader">
+
@@ -38,7 +38,7 @@
-
diff --git a/spring-batch-samples/src/main/resources/jobs/rollbackJob.xml b/spring-batch-samples/src/main/resources/jobs/rollbackJob.xml
index f921f0189..e4a407860 100644
--- a/spring-batch-samples/src/main/resources/jobs/rollbackJob.xml
+++ b/spring-batch-samples/src/main/resources/jobs/rollbackJob.xml
@@ -43,11 +43,11 @@
+ class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
-
+
@@ -64,11 +64,11 @@
+ class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
+ class="org.springframework.batch.item.provider.DelegatingItemReader"
+ p:item-reader-ref="tradeSqlItemReader" />
-
@@ -94,8 +94,8 @@
-
diff --git a/spring-batch-samples/src/main/resources/jobs/simpleTaskletJob.xml b/spring-batch-samples/src/main/resources/jobs/simpleTaskletJob.xml
index e9cc97f6e..a119137d8 100644
--- a/spring-batch-samples/src/main/resources/jobs/simpleTaskletJob.xml
+++ b/spring-batch-samples/src/main/resources/jobs/simpleTaskletJob.xml
@@ -17,8 +17,8 @@
-
+
@@ -39,13 +39,13 @@
-
+
-
diff --git a/spring-batch-samples/src/main/resources/jobs/tradeJob.xml b/spring-batch-samples/src/main/resources/jobs/tradeJob.xml
index 1aee2415d..1b76e6d8a 100644
--- a/spring-batch-samples/src/main/resources/jobs/tradeJob.xml
+++ b/spring-batch-samples/src/main/resources/jobs/tradeJob.xml
@@ -19,11 +19,11 @@
+ class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
-
+
@@ -40,12 +40,12 @@
+ class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
-
+ class="org.springframework.batch.item.provider.DelegatingItemReader">
+
@@ -59,11 +59,11 @@
+ class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
-
+ class="org.springframework.batch.item.provider.DelegatingItemReader">
+
@@ -78,8 +78,8 @@
-
@@ -92,7 +92,7 @@
-
diff --git a/spring-batch-samples/src/main/resources/jobs/tradeJobIo.xml b/spring-batch-samples/src/main/resources/jobs/tradeJobIo.xml
index df86ead6f..baf0e447e 100644
--- a/spring-batch-samples/src/main/resources/jobs/tradeJobIo.xml
+++ b/spring-batch-samples/src/main/resources/jobs/tradeJobIo.xml
@@ -36,7 +36,7 @@
diff --git a/spring-batch-samples/src/main/resources/jobs/xmlStaxJob.xml b/spring-batch-samples/src/main/resources/jobs/xmlStaxJob.xml
index 9b91a1f82..071fd14c0 100644
--- a/spring-batch-samples/src/main/resources/jobs/xmlStaxJob.xml
+++ b/spring-batch-samples/src/main/resources/jobs/xmlStaxJob.xml
@@ -17,11 +17,11 @@
+ class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
-
-
-
+
+
+
diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/FixedLengthImportJobFunctionalTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/FixedLengthImportJobFunctionalTests.java
index 217c4f75d..fce1b0f7d 100644
--- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/FixedLengthImportJobFunctionalTests.java
+++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/FixedLengthImportJobFunctionalTests.java
@@ -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;
}
}
diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/item/provider/OrderItemProviderTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/item/provider/OrderItemReaderTests.java
similarity index 88%
rename from spring-batch-samples/src/test/java/org/springframework/batch/sample/item/provider/OrderItemProviderTests.java
rename to spring-batch-samples/src/test/java/org/springframework/batch/sample/item/provider/OrderItemReaderTests.java
index 1b42bc187..813dee49a 100644
--- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/item/provider/OrderItemProviderTests.java
+++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/item/provider/OrderItemReaderTests.java
@@ -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();
diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/item/provider/StagingItemProviderTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/item/provider/StagingItemReaderTests.java
similarity index 90%
rename from spring-batch-samples/src/test/java/org/springframework/batch/sample/item/provider/StagingItemProviderTests.java
rename to spring-batch-samples/src/test/java/org/springframework/batch/sample/item/provider/StagingItemReaderTests.java
index f1b4ab64a..066c31c76 100644
--- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/item/provider/StagingItemProviderTests.java
+++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/item/provider/StagingItemReaderTests.java
@@ -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);
}
}
diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/tasklet/ExceptionRestartableTaskletTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/tasklet/ExceptionRestartableTaskletTests.java
index 196e18e60..9b99f8c25 100644
--- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/tasklet/ExceptionRestartableTaskletTests.java
+++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/tasklet/ExceptionRestartableTaskletTests.java
@@ -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");
diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/tasklet/SimpleTradeTaskletTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/tasklet/SimpleTradeTaskletTests.java
index ed7ffea3a..efb2f23f6 100644
--- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/tasklet/SimpleTradeTaskletTests.java
+++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/tasklet/SimpleTradeTaskletTests.java
@@ -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
diff --git a/spring-batch-samples/src/test/resources/org/springframework/batch/sample/item/processor/staging-test-context.xml b/spring-batch-samples/src/test/resources/org/springframework/batch/sample/item/processor/staging-test-context.xml
index 32792fa62..ea9ad0a49 100644
--- a/spring-batch-samples/src/test/resources/org/springframework/batch/sample/item/processor/staging-test-context.xml
+++ b/spring-batch-samples/src/test/resources/org/springframework/batch/sample/item/processor/staging-test-context.xml
@@ -24,7 +24,7 @@