IN PROGRESS - issue BATCH-212: Merge InputSource with ItemProvider
http://opensource.atlassian.com/projects/spring/browse/BATCH-212 Remove unnecessary uses of Delegating ItemReader from samples.
This commit is contained in:
@@ -145,14 +145,14 @@ public class ItemReaderRetryPolicy extends AbstractStatefulRetryPolicy {
|
||||
// The delegate context...
|
||||
private RetryContext delegateContext;
|
||||
|
||||
private ItemReader provider;
|
||||
private ItemReader reader;
|
||||
|
||||
private ItemRecoverer recoverer;
|
||||
|
||||
public ItemProviderRetryContext(ItemReaderRetryCallback callback) {
|
||||
super(RetrySynchronizationManager.getContext());
|
||||
item = callback.next(this);
|
||||
this.provider = callback.getReader();
|
||||
this.reader = callback.getReader();
|
||||
this.recoverer = callback.getRecoverer();
|
||||
}
|
||||
|
||||
@@ -165,8 +165,8 @@ public class ItemReaderRetryPolicy extends AbstractStatefulRetryPolicy {
|
||||
}
|
||||
|
||||
public RetryContext open(RetryCallback callback) {
|
||||
if (hasFailed(provider, item)) {
|
||||
this.delegateContext = retryContextCache.get(provider
|
||||
if (hasFailed(reader, item)) {
|
||||
this.delegateContext = retryContextCache.get(reader
|
||||
.getKey(item));
|
||||
}
|
||||
if (this.delegateContext == null) {
|
||||
@@ -180,7 +180,7 @@ public class ItemReaderRetryPolicy extends AbstractStatefulRetryPolicy {
|
||||
|
||||
public void registerThrowable(RetryContext context, Throwable throwable)
|
||||
throws TerminatedRetryException {
|
||||
retryContextCache.put(provider.getKey(item), this.delegateContext);
|
||||
retryContextCache.put(reader.getKey(item), this.delegateContext);
|
||||
delegate.registerThrowable(this.delegateContext, throwable);
|
||||
}
|
||||
|
||||
@@ -199,7 +199,7 @@ public class ItemReaderRetryPolicy extends AbstractStatefulRetryPolicy {
|
||||
public Object handleRetryExhausted(RetryContext context)
|
||||
throws Exception {
|
||||
// If there is no going back, then we can remove the history
|
||||
retryContextCache.remove(provider.getKey(item));
|
||||
retryContextCache.remove(reader.getKey(item));
|
||||
RepeatSynchronizationManager.setCompleteOnly();
|
||||
if (recoverer != null) {
|
||||
boolean success = recoverer.recover(item, context
|
||||
|
||||
@@ -36,12 +36,7 @@
|
||||
<property name="tasklet">
|
||||
<bean
|
||||
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
|
||||
<property name="itemReader">
|
||||
<bean
|
||||
class="org.springframework.batch.item.provider.DelegatingItemReader">
|
||||
<property name="itemReader" ref="fileInputTemplate2" />
|
||||
</bean>
|
||||
</property>
|
||||
<property name="itemReader" ref="fileInputTemplate2" />
|
||||
<property name="itemProcessor">
|
||||
<bean class="org.springframework.batch.sample.item.processor.PersonProcessor" />
|
||||
</property>
|
||||
|
||||
@@ -27,13 +27,7 @@
|
||||
<property name="tasklet">
|
||||
<bean
|
||||
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
|
||||
<property name="itemReader">
|
||||
<bean
|
||||
class="org.springframework.batch.item.provider.DelegatingItemReader">
|
||||
<property name="itemReader"
|
||||
ref="playerFileItemReader" />
|
||||
</bean>
|
||||
</property>
|
||||
<property name="itemReader" ref="playerFileItemReader" />
|
||||
<property name="itemProcessor">
|
||||
<bean
|
||||
class="org.springframework.batch.sample.item.processor.PlayerItemProcessor">
|
||||
@@ -57,13 +51,7 @@
|
||||
<property name="tasklet">
|
||||
<bean
|
||||
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
|
||||
<property name="itemReader">
|
||||
<bean
|
||||
class="org.springframework.batch.item.provider.DelegatingItemReader">
|
||||
<property name="itemReader"
|
||||
ref="gameFileItemReader" />
|
||||
</bean>
|
||||
</property>
|
||||
<property name="itemReader" ref="gameFileItemReader" />
|
||||
<property name="itemProcessor">
|
||||
<bean
|
||||
class="org.springframework.batch.item.processor.ItemWriterItemProcessor">
|
||||
@@ -87,13 +75,7 @@
|
||||
<property name="tasklet">
|
||||
<bean
|
||||
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
|
||||
<property name="itemReader">
|
||||
<bean
|
||||
class="org.springframework.batch.item.provider.DelegatingItemReader">
|
||||
<property name="itemReader"
|
||||
ref="playerSummarizationSource" />
|
||||
</bean>
|
||||
</property>
|
||||
<property name="itemReader" ref="playerSummarizationSource" />
|
||||
<property name="itemProcessor">
|
||||
<bean
|
||||
class="org.springframework.batch.item.processor.ItemWriterItemProcessor">
|
||||
|
||||
@@ -21,13 +21,7 @@
|
||||
<property name="tasklet">
|
||||
<bean
|
||||
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
|
||||
<property name="itemReader">
|
||||
<bean
|
||||
class="org.springframework.batch.item.provider.DelegatingItemReader">
|
||||
<property name="itemReader"
|
||||
ref="hibernateItemReader" />
|
||||
</bean>
|
||||
</property>
|
||||
<property name="itemReader" ref="hibernateItemReader" />
|
||||
<property name="itemProcessor">
|
||||
<bean
|
||||
class="org.springframework.batch.sample.item.processor.CustomerCreditIncreaseProcessor">
|
||||
|
||||
@@ -20,11 +20,7 @@
|
||||
<property name="tasklet">
|
||||
<bean
|
||||
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
|
||||
<property name="itemReader">
|
||||
<bean class="org.springframework.batch.item.provider.DelegatingItemReader">
|
||||
<property name="itemReader" ref="ibatisItemReader" />
|
||||
</bean>
|
||||
</property>
|
||||
<property name="itemReader" ref="ibatisItemReader" />
|
||||
<property name="itemProcessor">
|
||||
<bean class="org.springframework.batch.sample.item.processor.CustomerCreditIncreaseProcessor">
|
||||
<property name="outputSource">
|
||||
|
||||
@@ -22,13 +22,7 @@
|
||||
<property name="tasklet">
|
||||
<bean
|
||||
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
|
||||
<property name="itemReader">
|
||||
<bean
|
||||
class="org.springframework.batch.item.provider.DelegatingItemReader">
|
||||
<property name="itemReader"
|
||||
ref="playerFileItemReader" />
|
||||
</bean>
|
||||
</property>
|
||||
<property name="itemReader" ref="playerFileItemReader" />
|
||||
<property name="itemProcessor">
|
||||
<bean
|
||||
class="org.springframework.batch.sample.item.processor.StagingItemProcessor"
|
||||
@@ -110,13 +104,7 @@
|
||||
<property name="tasklet">
|
||||
<bean
|
||||
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
|
||||
<property name="itemReader">
|
||||
<bean
|
||||
class="org.springframework.batch.item.provider.DelegatingItemReader">
|
||||
<property name="itemReader"
|
||||
ref="gameFileItemReader" />
|
||||
</bean>
|
||||
</property>
|
||||
<property name="itemReader" ref="gameFileItemReader" />
|
||||
<property name="itemProcessor">
|
||||
<bean
|
||||
class="org.springframework.batch.item.processor.ItemWriterItemProcessor">
|
||||
@@ -140,13 +128,7 @@
|
||||
<property name="tasklet">
|
||||
<bean
|
||||
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
|
||||
<property name="itemReader">
|
||||
<bean
|
||||
class="org.springframework.batch.item.provider.DelegatingItemReader">
|
||||
<property name="itemReader"
|
||||
ref="playerSummarizationSource" />
|
||||
</bean>
|
||||
</property>
|
||||
<property name="itemReader" ref="playerSummarizationSource" />
|
||||
<property name="itemProcessor">
|
||||
<bean
|
||||
class="org.springframework.batch.item.processor.ItemWriterItemProcessor">
|
||||
|
||||
@@ -65,11 +65,7 @@
|
||||
<property name="tasklet">
|
||||
<bean
|
||||
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
|
||||
<property name="itemReader">
|
||||
<bean
|
||||
class="org.springframework.batch.item.provider.DelegatingItemReader"
|
||||
p:item-reader-ref="tradeSqlItemReader" />
|
||||
</property>
|
||||
<property name="itemReader" ref="tradeSqlItemReader" />
|
||||
<property name="itemProcessor">
|
||||
<bean
|
||||
class="org.springframework.batch.sample.item.processor.DummyProcessor" />
|
||||
|
||||
@@ -41,13 +41,7 @@
|
||||
<property name="tasklet">
|
||||
<bean
|
||||
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
|
||||
<property name="itemReader">
|
||||
<bean
|
||||
class="org.springframework.batch.item.provider.DelegatingItemReader">
|
||||
<property name="itemReader"
|
||||
ref="tradeSqlItemReader" />
|
||||
</bean>
|
||||
</property>
|
||||
<property name="itemReader" ref="tradeSqlItemReader" />
|
||||
<property name="itemProcessor">
|
||||
<bean
|
||||
class="org.springframework.batch.sample.item.processor.CustomerUpdateProcessor"
|
||||
@@ -60,12 +54,7 @@
|
||||
<property name="tasklet">
|
||||
<bean
|
||||
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
|
||||
<property name="itemReader">
|
||||
<bean
|
||||
class="org.springframework.batch.item.provider.DelegatingItemReader">
|
||||
<property name="itemReader" ref="customerSqlItemReader" />
|
||||
</bean>
|
||||
</property>
|
||||
<property name="itemReader" ref="customerSqlItemReader" />
|
||||
<property name="itemProcessor">
|
||||
<bean
|
||||
class="org.springframework.batch.sample.item.processor.CustomerCreditUpdateProcessor"
|
||||
|
||||
@@ -1,78 +1,91 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop"
|
||||
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:util="http://www.springframework.org/schema/util"
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:aop="http://www.springframework.org/schema/aop"
|
||||
xmlns:tx="http://www.springframework.org/schema/tx"
|
||||
xmlns:p="http://www.springframework.org/schema/p"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:util="http://www.springframework.org/schema/util"
|
||||
xsi:schemaLocation="
|
||||
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
|
||||
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
|
||||
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
|
||||
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd">
|
||||
|
||||
<bean parent="stepScope"/>
|
||||
<bean parent="jobConfigurationRegistryBeanPostProcessor"/>
|
||||
<bean parent="stepScope" />
|
||||
<bean parent="jobConfigurationRegistryBeanPostProcessor" />
|
||||
|
||||
<bean id="xmlStaxJob" parent="simpleJob">
|
||||
<property name="steps">
|
||||
<bean id="step1" parent="simpleStep">
|
||||
<property name="tasklet">
|
||||
<bean
|
||||
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
|
||||
<property name="itemReader">
|
||||
<bean class="org.springframework.batch.item.provider.DelegatingItemReader">
|
||||
<property name="itemReader">
|
||||
<bean class="org.springframework.batch.io.file.support.StaxEventReaderItemReader" scope="step">
|
||||
<aop:scoped-proxy/>
|
||||
<property name="fragmentRootElementName" value="trade" />
|
||||
<property name="resource" value="data/staxJob/input/20070918.testStream.xmlFileStep.xml" />
|
||||
<property name="fragmentDeserializer">
|
||||
<bean class="org.springframework.batch.io.file.support.oxm.UnmarshallingFragmentDeserializer">
|
||||
<constructor-arg>
|
||||
<bean class="org.springframework.oxm.xstream.XStreamMarshaller">
|
||||
<property name="aliases" ref="aliases" />
|
||||
</bean>
|
||||
</constructor-arg>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
|
||||
<property name="itemProcessor">
|
||||
<bean class="org.springframework.batch.item.processor.ItemWriterItemProcessor"
|
||||
p:itemWriter-ref="tradeStaxWriter" />
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean class="org.springframework.batch.io.file.support.StaxEventWriterItemWriter" id="tradeStaxWriter">
|
||||
<property name="resource" value="file:target/test-outputs/20070918.testStream.xmlFileStep.output.xml" />
|
||||
<property name="serializer" ref="tradeMarshallingSerializer" />
|
||||
<property name="rootTagName" value="trades" />
|
||||
<property name="overwriteOutput" value="true" />
|
||||
</bean>
|
||||
|
||||
<bean class="org.springframework.batch.io.file.support.oxm.MarshallingObjectToXmlSerializer" id="tradeMarshallingSerializer">
|
||||
<constructor-arg>
|
||||
<bean class="org.springframework.oxm.xstream.XStreamMarshaller">
|
||||
<property name="aliases" ref="aliases" />
|
||||
</bean>
|
||||
</constructor-arg>
|
||||
</bean>
|
||||
|
||||
<util:map id="aliases">
|
||||
<entry key="trade" value="org.springframework.batch.sample.domain.Trade" />
|
||||
<entry key="isin" value="java.lang.String" />
|
||||
<entry key="quantity" value="long" />
|
||||
<entry key="price" value="java.math.BigDecimal" />
|
||||
<entry key="customer" value="java.lang.String" />
|
||||
</util:map>
|
||||
|
||||
<!-- register the step scope with the application context -->
|
||||
<bean class="org.springframework.batch.execution.scope.StepScope" />
|
||||
|
||||
</beans>
|
||||
<bean
|
||||
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
|
||||
<property name="itemReader">
|
||||
<bean
|
||||
class="org.springframework.batch.io.file.support.StaxEventReaderItemReader"
|
||||
scope="step">
|
||||
<aop:scoped-proxy />
|
||||
<property name="fragmentRootElementName"
|
||||
value="trade" />
|
||||
<property name="resource"
|
||||
value="data/staxJob/input/20070918.testStream.xmlFileStep.xml" />
|
||||
<property name="fragmentDeserializer">
|
||||
<bean
|
||||
class="org.springframework.batch.io.file.support.oxm.UnmarshallingFragmentDeserializer">
|
||||
<constructor-arg>
|
||||
<bean
|
||||
class="org.springframework.oxm.xstream.XStreamMarshaller">
|
||||
<property name="aliases"
|
||||
ref="aliases" />
|
||||
</bean>
|
||||
</constructor-arg>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
|
||||
<property name="itemProcessor">
|
||||
<bean
|
||||
class="org.springframework.batch.item.processor.ItemWriterItemProcessor"
|
||||
p:itemWriter-ref="tradeStaxWriter" />
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean
|
||||
class="org.springframework.batch.io.file.support.StaxEventWriterItemWriter"
|
||||
id="tradeStaxWriter">
|
||||
<property name="resource"
|
||||
value="file:target/test-outputs/20070918.testStream.xmlFileStep.output.xml" />
|
||||
<property name="serializer" ref="tradeMarshallingSerializer" />
|
||||
<property name="rootTagName" value="trades" />
|
||||
<property name="overwriteOutput" value="true" />
|
||||
</bean>
|
||||
|
||||
<bean
|
||||
class="org.springframework.batch.io.file.support.oxm.MarshallingObjectToXmlSerializer"
|
||||
id="tradeMarshallingSerializer">
|
||||
<constructor-arg>
|
||||
<bean
|
||||
class="org.springframework.oxm.xstream.XStreamMarshaller">
|
||||
<property name="aliases" ref="aliases" />
|
||||
</bean>
|
||||
</constructor-arg>
|
||||
</bean>
|
||||
|
||||
<util:map id="aliases">
|
||||
<entry key="trade"
|
||||
value="org.springframework.batch.sample.domain.Trade" />
|
||||
<entry key="isin" value="java.lang.String" />
|
||||
<entry key="quantity" value="long" />
|
||||
<entry key="price" value="java.math.BigDecimal" />
|
||||
<entry key="customer" value="java.lang.String" />
|
||||
</util:map>
|
||||
|
||||
<!-- register the step scope with the application context -->
|
||||
<bean class="org.springframework.batch.execution.scope.StepScope" />
|
||||
|
||||
</beans>
|
||||
|
||||
Reference in New Issue
Block a user