Purge ItemProcessor

This commit is contained in:
dsyer
2008-01-29 09:13:47 +00:00
parent 0e27ea6660
commit 63594415ca
63 changed files with 196 additions and 216 deletions

View File

@@ -16,9 +16,9 @@
package org.springframework.batch.sample.dao;
import org.springframework.batch.io.file.transform.Converter;
import org.springframework.batch.item.processor.DelegatingItemWriter;
import org.springframework.batch.sample.item.processor.OrderWriter;
import org.springframework.batch.item.writer.DelegatingItemWriter;
import org.springframework.batch.item.writer.ItemTransformer;
import org.springframework.batch.sample.item.writer.OrderWriter;
/**
@@ -33,22 +33,22 @@ public class FlatFileOrderWriter extends DelegatingItemWriter {
/**
* Converter for order
*/
private Converter converter = new OrderConverter();
private ItemTransformer transformer = new OrderTransformer();
/**
* Public setter for the converter.
*
* @param converter the converter to set
* @param transformer the converter to set
*/
public void setConverter(Converter converter) {
this.converter = converter;
public void setTransformer(ItemTransformer transformer) {
this.transformer = transformer;
}
/* (non-Javadoc)
* @see org.springframework.batch.item.processor.DelegatingItemWriter#doProcess(java.lang.Object)
*/
protected Object doProcess(Object item) throws Exception {
return converter.convert(item);
return transformer.transform(item);
}
}

View File

@@ -21,8 +21,8 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.springframework.batch.io.file.transform.Converter;
import org.springframework.batch.io.file.transform.LineAggregator;
import org.springframework.batch.item.writer.ItemTransformer;
import org.springframework.batch.sample.domain.Address;
import org.springframework.batch.sample.domain.BillingInfo;
import org.springframework.batch.sample.domain.Customer;
@@ -34,7 +34,7 @@ import org.springframework.batch.sample.domain.Order;
* Converts <code>Order</code> object to a String.
* @author Dave Syer
*/
public class OrderConverter implements Converter {
public class OrderTransformer implements ItemTransformer {
/**
* Aggregators for all types of lines in the output file
@@ -44,7 +44,7 @@ public class OrderConverter implements Converter {
/**
* Converts information from an Order object to a collection of Strings for output.
*/
public Object convert(Object data) {
public Object transform(Object data) {
Order order = (Order) data;
List result = new ArrayList();

View File

@@ -19,48 +19,48 @@ package org.springframework.batch.sample.domain;
import java.util.ArrayList;
import java.util.List;
import org.springframework.batch.item.ItemProcessor;
import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.ItemWriter;
/**
* Custom class that contains logic that would normally be
* be contained in {@link ItemReader} (<code>getData()</code>) and
* {@link ItemProcessor} (<code>processData(..)</code>).
* Custom class that contains logic that would normally be be contained in
* {@link ItemReader} and {@link ItemWriter}.
*
* @author tomas.slanina
* @author Robert Kasanicky
*/
public class PersonService {
private static final int GENERATION_LIMIT = 10;
private int generatedCounter = 0;
private int processedCounter = 0;
public Person getData() {
if (generatedCounter >= GENERATION_LIMIT) return null;
if (generatedCounter >= GENERATION_LIMIT)
return null;
Person person = new Person();
Address address = new Address();
Child child = new Child();
List children = new ArrayList(1);
children.add(child);
person.setFirstName("John" + generatedCounter);
person.setAge(20 + generatedCounter);
address.setCity("Johnsville" + generatedCounter);
child.setName("Little Johny" + generatedCounter);
person.setAddress(address);
person.setChildren(children);
generatedCounter++;
return person;
}
/**
* Badly designed method signature which accepts multiple implicitly related
* arguments instead of a single Person argument.
@@ -68,11 +68,11 @@ public class PersonService {
public void processPerson(String name, String city) {
processedCounter++;
}
public int getReturnedCount() {
return generatedCounter;
}
public int getReceivedCount() {
return processedCounter;
}

View File

@@ -14,7 +14,7 @@ import org.springframework.batch.execution.scope.StepContextAware;
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.StagingItemWriter;
import org.springframework.batch.sample.item.writer.StagingItemWriter;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.dao.OptimisticLockingFailureException;
import org.springframework.jdbc.core.RowMapper;

View File

@@ -1,4 +1,4 @@
package org.springframework.batch.sample.item.processor;
package org.springframework.batch.sample.item.writer;
import java.math.BigDecimal;

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.batch.sample.item.processor;
package org.springframework.batch.sample.item.writer;
import org.springframework.batch.item.ItemWriter;
import org.springframework.batch.sample.dao.CustomerCreditDao;

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.batch.sample.item.processor;
package org.springframework.batch.sample.item.writer;
import org.springframework.batch.item.ItemWriter;
import org.springframework.batch.sample.dao.JdbcCustomerDebitWriter;

View File

@@ -14,10 +14,10 @@
* limitations under the License.
*/
package org.springframework.batch.sample.item.processor;
package org.springframework.batch.sample.item.writer;
import org.springframework.batch.io.exception.BatchCriticalException;
import org.springframework.batch.item.processor.DelegatingItemWriter;
import org.springframework.batch.item.writer.DelegatingItemWriter;
import org.springframework.batch.sample.domain.Order;

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.batch.sample.item.processor;
package org.springframework.batch.sample.item.writer;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

View File

@@ -1,4 +1,4 @@
package org.springframework.batch.sample.item.processor;
package org.springframework.batch.sample.item.writer;
import org.springframework.batch.item.ItemWriter;
import org.springframework.batch.sample.dao.PlayerDao;

View File

@@ -1,4 +1,4 @@
package org.springframework.batch.sample.item.processor;
package org.springframework.batch.sample.item.writer;
import java.io.Serializable;
import java.sql.Types;
@@ -60,7 +60,7 @@ public class StagingItemWriter extends JdbcDaoSupport implements
/**
* Serialize the item to the staging table, and add a NEW processed flag.
*
* @see org.springframework.batch.item.ItemProcessor#process(java.lang.Object)
* @see ItemWriter#write(java.lang.Object)
*/
public void write(Object data) {
Long id = new Long(incrementer.nextLongValue());

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.batch.sample.item.processor;
package org.springframework.batch.sample.item.writer;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

View File

@@ -25,7 +25,7 @@
</bean>
</property>
<property name="itemWriter">
<bean class="org.springframework.batch.sample.item.processor.TradeWriter">
<bean class="org.springframework.batch.sample.item.writer.TradeWriter">
<property name="dao" ref="tradeDao" />
</bean>
</property>
@@ -38,7 +38,7 @@
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
<property name="itemReader" ref="fileInputTemplate2" />
<property name="itemWriter">
<bean class="org.springframework.batch.sample.item.processor.PersonWriter" />
<bean class="org.springframework.batch.sample.item.writer.PersonWriter" />
</property>
</bean>
</property>

View File

@@ -24,14 +24,14 @@
</bean>
</property>
<property name="itemWriter">
<bean class="org.springframework.batch.item.processor.CompositeItemWriter" >
<bean class="org.springframework.batch.item.writer.CompositeItemWriter" >
<property name="itemWriters" >
<list>
<bean class="org.springframework.batch.sample.item.processor.TradeWriter">
<bean class="org.springframework.batch.sample.item.writer.TradeWriter">
<property name="dao" ref="tradeDao" />
</bean>
<bean class="org.springframework.batch.item.processor.DelegatingItemWriter">
<bean class="org.springframework.batch.item.writer.DelegatingItemWriter">
<property name="delegate" ref="flatFileOutputSource" />
</bean>
</list>

View File

@@ -30,7 +30,7 @@
</bean>
</property>
<property name="itemWriter">
<bean class="org.springframework.batch.item.processor.PropertyExtractingDelegatingItemWriter">
<bean class="org.springframework.batch.item.writer.PropertyExtractingDelegatingItemWriter">
<property name="targetObject" ref="delegatingObject" />
<property name="targetMethod" value="processPerson" />
<property name="fieldsUsedAsTargetMethodArguments">

View File

@@ -24,7 +24,7 @@
</bean>
</property>
<property name="itemWriter">
<bean class="org.springframework.batch.sample.item.processor.TradeWriter">
<bean class="org.springframework.batch.sample.item.writer.TradeWriter">
<property name="dao" ref="tradeDao" />
</bean>
</property>

View File

@@ -31,7 +31,7 @@
ref="playerFileItemReader" />
<property name="itemWriter">
<bean
class="org.springframework.batch.sample.item.processor.PlayerItemWriter">
class="org.springframework.batch.sample.item.writer.PlayerItemWriter">
<property name="playerDao">
<bean
class="org.springframework.batch.sample.dao.JdbcPlayerDao">
@@ -151,7 +151,7 @@
<aop:aspect id="moduleLogging" ref="itemProcessorLogAdvice">
<aop:after
pointcut="execution( * org.springframework.batch.item.ItemProcessor+.process(Object)) and args(item)"
pointcut="execution( * org.springframework.batch.item.ItemWriter+.write(Object)) and args(item)"
method="doStronglyTypedLogging" />
</aop:aspect>

View File

@@ -64,7 +64,7 @@
</bean>
<bean id="hibernateCreditWriter"
class="org.springframework.batch.sample.item.processor.CustomerCreditIncreaseWriter">
class="org.springframework.batch.sample.item.writer.CustomerCreditIncreaseWriter">
<property name="customerCreditDao" ref="customerCreditDao"/>
</bean>

View File

@@ -22,7 +22,7 @@
class="org.springframework.batch.execution.tasklet.RestartableItemOrientedTasklet">
<property name="itemReader" ref="ibatisItemReader" />
<property name="itemWriter">
<bean class="org.springframework.batch.sample.item.processor.CustomerCreditIncreaseWriter">
<bean class="org.springframework.batch.sample.item.writer.CustomerCreditIncreaseWriter">
<property name="customerCreditDao">
<bean class="org.springframework.batch.sample.dao.IbatisCustomerCreditWriter"
scope="step">

View File

@@ -32,12 +32,12 @@
</bean>
</property>
<property name="itemWriter">
<bean class="org.springframework.batch.sample.item.processor.OrderWriter">
<bean class="org.springframework.batch.sample.item.writer.OrderWriter">
<property name="delegate">
<bean class="org.springframework.batch.sample.dao.FlatFileOrderWriter">
<property name="delegate" ref="flatFileOutputSource" />
<property name="converter">
<bean class="org.springframework.batch.sample.dao.OrderConverter">
<property name="transformer">
<bean class="org.springframework.batch.sample.dao.OrderTransformer">
<property name="aggregators" ref="outputDescriptors" />
</bean>
</property>

View File

@@ -30,7 +30,7 @@
</property>
<property name="itemWriter">
<bean
class="org.springframework.batch.sample.item.processor.StagingItemWriter"
class="org.springframework.batch.sample.item.writer.StagingItemWriter"
scope="step">
<aop:scoped-proxy />
<property name="dataSource"
@@ -67,7 +67,7 @@
</property>
<property name="itemWriter">
<bean
class="org.springframework.batch.sample.item.processor.TradeWriter">
class="org.springframework.batch.sample.item.writer.TradeWriter">
<property name="dao"
ref="tradeDao" />
</bean>
@@ -163,7 +163,7 @@
<aop:aspect id="moduleLogging" ref="itemProcessorLogAdvice">
<aop:after
pointcut="execution( * org.springframework.batch.item.ItemProcessor+.process(Object)) and args(item)"
pointcut="execution( * org.springframework.batch.item.ItemWriter+.write(Object)) and args(item)"
method="doStronglyTypedLogging" />
</aop:aspect>

View File

@@ -24,7 +24,7 @@
</bean>
</property>
<property name="itemWriter">
<bean class="org.springframework.batch.sample.item.processor.TradeWriter">
<bean class="org.springframework.batch.sample.item.writer.TradeWriter">
<property name="dao" ref="tradeDao" />
</bean>
</property>

View File

@@ -55,7 +55,7 @@
</property>
<property name="itemWriter">
<bean
class="org.springframework.batch.sample.item.processor.TradeWriter"
class="org.springframework.batch.sample.item.writer.TradeWriter"
p:dao-ref="tradeDao" p:failure="3"/>
</property>
</bean>

View File

@@ -31,7 +31,7 @@
</property>
<property name="itemWriter">
<bean
class="org.springframework.batch.sample.item.processor.TradeWriter"
class="org.springframework.batch.sample.item.writer.TradeWriter"
p:dao-ref="tradeDao" />
</property>
</bean>
@@ -44,7 +44,7 @@
<property name="itemReader" ref="tradeSqlItemReader" />
<property name="itemWriter">
<bean
class="org.springframework.batch.sample.item.processor.CustomerUpdateWriter"
class="org.springframework.batch.sample.item.writer.CustomerUpdateWriter"
p:dao-ref="customerDao" />
</property>
</bean>
@@ -57,7 +57,7 @@
<property name="itemReader" ref="customerSqlItemReader" />
<property name="itemWriter">
<bean
class="org.springframework.batch.sample.item.processor.CustomerCreditUpdateWriter"
class="org.springframework.batch.sample.item.writer.CustomerCreditUpdateWriter"
p:writer-ref="customerReportOutputSource" />
</property>
</bean>

View File

@@ -29,6 +29,6 @@ log4j.logger.org.springframework.batch.sample=debug
#log4j.logger.org.springframework.orm=debug
### debug your specific package or classes with the following example
log4j.logger.org.springframework.batch.io=debug
log4j.logger.org.springframework.batch=debug
log4j.logger.org.springframework.batch.sample.module.OrderDataProvider=debug
log4j.logger.org.springframework.batch.container.common.module.process.support.DefaultXmlDataProvider=debug

View File

@@ -151,7 +151,7 @@
<aop:aspect id="moduleLogging" ref="itemProcessorLogAdvice">
<aop:after
pointcut="execution( * org.springframework.batch.item.ItemProcessor+.process(Object)) and args(item)"
pointcut="execution( * org.springframework.batch.item.ItemWriter+.write(Object)) and args(item)"
method="doStronglyTypedLogging" />
</aop:aspect>

View File

@@ -6,7 +6,7 @@ import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.springframework.batch.sample.item.processor.CustomerCreditIncreaseWriter;
import org.springframework.batch.sample.item.writer.CustomerCreditIncreaseWriter;
import org.springframework.jdbc.core.JdbcOperations;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.transaction.PlatformTransactionManager;

View File

@@ -2,7 +2,7 @@ package org.springframework.batch.sample;
import javax.sql.DataSource;
import org.springframework.batch.sample.item.processor.StagingItemWriter;
import org.springframework.batch.sample.item.writer.StagingItemWriter;
import org.springframework.jdbc.core.JdbcOperations;
import org.springframework.jdbc.core.JdbcTemplate;

View File

@@ -60,7 +60,7 @@ public class FlatFileOrderWriterTests extends TestCase {
//create map of aggregators and set it to writer
Map aggregators = new HashMap();
OrderConverter converter = new OrderConverter();
OrderTransformer converter = new OrderTransformer();
aggregators.put("header", aggregator);
aggregators.put("customer", aggregator);
aggregators.put("address", aggregator);
@@ -68,7 +68,7 @@ public class FlatFileOrderWriterTests extends TestCase {
aggregators.put("item", aggregator);
aggregators.put("footer", aggregator);
converter.setAggregators(aggregators);
writer.setConverter(converter);
writer.setTransformer(converter);
//call tested method
writer.write(order);

View File

@@ -33,9 +33,9 @@ import org.springframework.batch.sample.domain.Order;
* @author Dave Syer
*
*/
public class OrderConverterTests extends TestCase {
public class OrderTransformerTests extends TestCase {
private OrderConverter converter = new OrderConverter();
private OrderTransformer converter = new OrderTransformer();
public void testConvert() throws Exception {
converter.setAggregators(new HashMap() {
@@ -55,7 +55,7 @@ public class OrderConverterTests extends TestCase {
order.setBilling(new BillingInfo());
order.setLineItems(Collections.EMPTY_LIST);
order.setTotalPrice(BigDecimal.TEN);
Object result = converter.convert(order);
Object result = converter.transform(order);
assertTrue(result instanceof Collection);
}

View File

@@ -7,6 +7,7 @@ import junit.framework.TestCase;
import org.easymock.MockControl;
import org.springframework.batch.sample.dao.CustomerCreditDao;
import org.springframework.batch.sample.domain.CustomerCredit;
import org.springframework.batch.sample.item.writer.CustomerCreditIncreaseWriter;
/**
* Tests for {@link CustomerCreditIncreaseWriter}.

View File

@@ -7,7 +7,7 @@ import junit.framework.TestCase;
import org.easymock.MockControl;
import org.springframework.batch.sample.dao.CustomerCreditDao;
import org.springframework.batch.sample.domain.CustomerCredit;
import org.springframework.batch.sample.item.processor.CustomerCreditUpdateWriter;
import org.springframework.batch.sample.item.writer.CustomerCreditUpdateWriter;
public class CustomerCreditUpdateProcessorTests extends TestCase {

View File

@@ -7,7 +7,7 @@ import junit.framework.TestCase;
import org.springframework.batch.sample.dao.JdbcCustomerDebitWriter;
import org.springframework.batch.sample.domain.CustomerDebit;
import org.springframework.batch.sample.domain.Trade;
import org.springframework.batch.sample.item.processor.CustomerUpdateWriter;
import org.springframework.batch.sample.item.writer.CustomerUpdateWriter;
public class CustomerUpdateProcessorTests extends TestCase {

View File

@@ -6,6 +6,7 @@ import org.easymock.MockControl;
import org.springframework.batch.io.exception.BatchCriticalException;
import org.springframework.batch.item.ItemWriter;
import org.springframework.batch.sample.domain.Order;
import org.springframework.batch.sample.item.writer.OrderWriter;
public class OrderWriterTests extends TestCase {

View File

@@ -8,6 +8,7 @@ import org.springframework.batch.core.domain.StepExecution;
import org.springframework.batch.core.domain.StepInstance;
import org.springframework.batch.execution.scope.SimpleStepContext;
import org.springframework.batch.execution.scope.StepSynchronizationManager;
import org.springframework.batch.sample.item.writer.StagingItemWriter;
import org.springframework.test.AbstractTransactionalDataSourceSpringContextTests;
import org.springframework.util.ClassUtils;

View File

@@ -5,6 +5,7 @@ import junit.framework.TestCase;
import org.easymock.MockControl;
import org.springframework.batch.sample.dao.TradeDao;
import org.springframework.batch.sample.domain.Trade;
import org.springframework.batch.sample.item.writer.TradeWriter;
public class TradeProcessorTests extends TestCase {

View File

@@ -11,7 +11,7 @@ import org.springframework.batch.execution.scope.StepSynchronizationManager;
import org.springframework.batch.repeat.context.RepeatContextSupport;
import org.springframework.batch.repeat.synch.BatchTransactionSynchronizationManager;
import org.springframework.batch.repeat.synch.RepeatSynchronizationManager;
import org.springframework.batch.sample.item.processor.StagingItemWriter;
import org.springframework.batch.sample.item.writer.StagingItemWriter;
import org.springframework.test.AbstractTransactionalDataSourceSpringContextTests;
import org.springframework.util.ClassUtils;

View File

@@ -12,7 +12,7 @@
class="org.springframework.batch.execution.scope.StepScope" />
<bean id="processor"
class="org.springframework.batch.sample.item.processor.StagingItemWriter"
class="org.springframework.batch.sample.item.writer.StagingItemWriter"
scope="step">
<property name="incrementer">
<bean id="jobIncrementer" parent="incrementerParent">