OPEN - issue BATCH-770: Make ItemTransformer a first class citizen and rename as ItemProcessor
Done first pass. Some tests needed.
This commit is contained in:
@@ -21,8 +21,8 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.batch.item.ItemProcessor;
|
||||
import org.springframework.batch.item.file.transform.LineAggregator;
|
||||
import org.springframework.batch.item.transform.ItemTransformer;
|
||||
import org.springframework.batch.sample.domain.order.Address;
|
||||
import org.springframework.batch.sample.domain.order.BillingInfo;
|
||||
import org.springframework.batch.sample.domain.order.Customer;
|
||||
@@ -30,10 +30,11 @@ import org.springframework.batch.sample.domain.order.LineItem;
|
||||
import org.springframework.batch.sample.domain.order.Order;
|
||||
|
||||
/**
|
||||
* Converts <code>Order</code> object to a String.
|
||||
* Converts <code>Order</code> object to a list of strings.
|
||||
*
|
||||
* @author Dave Syer
|
||||
*/
|
||||
public class OrderTransformer implements ItemTransformer<Order, List<String>> {
|
||||
public class OrderProcessor implements ItemProcessor<Order, List<String>> {
|
||||
|
||||
/**
|
||||
* Aggregators for all types of lines in the output file
|
||||
@@ -44,7 +45,7 @@ public class OrderTransformer implements ItemTransformer<Order, List<String>> {
|
||||
* Converts information from an Order object to a collection of Strings for
|
||||
* output.
|
||||
*/
|
||||
public List<String> transform(Order order) {
|
||||
public List<String> process(Order order) {
|
||||
|
||||
List<String> result = new ArrayList<String>();
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:aop="http://www.springframework.org/schema/aop"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
|
||||
@@ -21,48 +20,32 @@
|
||||
</list>
|
||||
</property>
|
||||
<property name="itemReader">
|
||||
<bean
|
||||
class="org.springframework.batch.item.validator.ValidatingItemReader">
|
||||
<bean class="org.springframework.batch.item.validator.ValidatingItemReader">
|
||||
<property name="itemReader">
|
||||
<bean
|
||||
class="org.springframework.batch.sample.domain.order.internal.OrderItemReader">
|
||||
<property name="fieldSetReader"
|
||||
ref="fileItemReader" />
|
||||
<property name="headerMapper"
|
||||
ref="headerFieldSetMapper" />
|
||||
<property name="customerMapper"
|
||||
ref="customerFieldSetMapper" />
|
||||
<property name="addressMapper"
|
||||
ref="addressFieldSetMapper" />
|
||||
<property name="billingMapper"
|
||||
ref="billingFieldSetMapper" />
|
||||
<property name="itemMapper"
|
||||
ref="orderItemFieldSetMapper" />
|
||||
<property name="shippingMapper"
|
||||
ref="shippingFieldSetMapper" />
|
||||
<bean class="org.springframework.batch.sample.domain.order.internal.OrderItemReader">
|
||||
<property name="fieldSetReader" ref="fileItemReader" />
|
||||
<property name="headerMapper" ref="headerFieldSetMapper" />
|
||||
<property name="customerMapper" ref="customerFieldSetMapper" />
|
||||
<property name="addressMapper" ref="addressFieldSetMapper" />
|
||||
<property name="billingMapper" ref="billingFieldSetMapper" />
|
||||
<property name="itemMapper" ref="orderItemFieldSetMapper" />
|
||||
<property name="shippingMapper" ref="shippingFieldSetMapper" />
|
||||
</bean>
|
||||
</property>
|
||||
<property name="validator" ref="validator" />
|
||||
</bean>
|
||||
</property>
|
||||
<property name="itemWriter" ref="orderWriter" />
|
||||
<property name="itemWriter" ref="fileItemWriter" />
|
||||
<property name="itemProcessor">
|
||||
<bean class="org.springframework.batch.sample.domain.order.internal.OrderProcessor">
|
||||
<property name="aggregators" ref="outputAggregators" />
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="orderWriter"
|
||||
class="org.springframework.batch.item.transform.ItemTransformerItemWriter">
|
||||
<property name="delegate" ref="fileItemWriter" />
|
||||
<property name="itemTransformer">
|
||||
<bean
|
||||
class="org.springframework.batch.sample.domain.order.internal.OrderTransformer">
|
||||
<property name="aggregators" ref="outputAggregators" />
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="headerFieldSetMapper"
|
||||
class="org.springframework.batch.sample.domain.order.internal.HeaderFieldSetMapper" />
|
||||
<bean id="headerFieldSetMapper" class="org.springframework.batch.sample.domain.order.internal.HeaderFieldSetMapper" />
|
||||
<bean id="customerFieldSetMapper"
|
||||
class="org.springframework.batch.sample.domain.order.internal.CustomerFieldSetMapper" />
|
||||
<bean id="addressFieldSetMapper"
|
||||
@@ -74,11 +57,9 @@
|
||||
<bean id="shippingFieldSetMapper"
|
||||
class="org.springframework.batch.sample.domain.order.internal.ShippingFieldSetMapper" />
|
||||
|
||||
<bean id="validator"
|
||||
class="org.springframework.batch.item.validator.SpringValidator">
|
||||
<bean id="validator" class="org.springframework.batch.item.validator.SpringValidator">
|
||||
<property name="validator">
|
||||
<bean id="orderValidator"
|
||||
class="org.springmodules.validation.valang.ValangValidator">
|
||||
<bean id="orderValidator" class="org.springmodules.validation.valang.ValangValidator">
|
||||
<property name="valang">
|
||||
<value>
|
||||
<![CDATA[
|
||||
@@ -155,14 +136,12 @@
|
||||
</bean>
|
||||
<!-- "{" <key> : <rule> : <message> : [ <error_code> [ : <error_parameters> ] ] "}" -->
|
||||
|
||||
<bean id="fileInputLocator"
|
||||
class="org.springframework.core.io.ClassPathResource">
|
||||
<bean id="fileInputLocator" class="org.springframework.core.io.ClassPathResource">
|
||||
<constructor-arg type="java.lang.String"
|
||||
value="data/multilineOrderJob/input/20070122.teststream.multilineOrderStep.txt" />
|
||||
</bean>
|
||||
|
||||
<bean id="fileOutputLocator"
|
||||
class="org.springframework.core.io.FileSystemResource">
|
||||
<bean id="fileOutputLocator" class="org.springframework.core.io.FileSystemResource">
|
||||
<constructor-arg type="java.lang.String"
|
||||
value="target/test-outputs/20070122.teststream.multilineOrderStep.TEMP.txt" />
|
||||
</bean>
|
||||
|
||||
@@ -27,7 +27,7 @@ import java.util.Map;
|
||||
import org.junit.Test;
|
||||
import org.springframework.batch.item.file.transform.DelimitedLineAggregator;
|
||||
import org.springframework.batch.item.file.transform.LineAggregator;
|
||||
import org.springframework.batch.sample.domain.order.internal.OrderTransformer;
|
||||
import org.springframework.batch.sample.domain.order.internal.OrderProcessor;
|
||||
|
||||
public class FlatFileOrderAggregatorTests {
|
||||
|
||||
@@ -55,7 +55,7 @@ public class FlatFileOrderAggregatorTests {
|
||||
// create map of aggregators and set it to writer
|
||||
Map<String, LineAggregator<Object[]>> aggregators = new HashMap<String, LineAggregator<Object[]>>();
|
||||
|
||||
OrderTransformer converter = new OrderTransformer();
|
||||
OrderProcessor converter = new OrderProcessor();
|
||||
aggregators.put("header", aggregator);
|
||||
aggregators.put("customer", aggregator);
|
||||
aggregators.put("address", aggregator);
|
||||
@@ -65,7 +65,7 @@ public class FlatFileOrderAggregatorTests {
|
||||
converter.setAggregators(aggregators);
|
||||
|
||||
// call tested method
|
||||
List<String> list = converter.transform(order);
|
||||
List<String> list = converter.process(order);
|
||||
|
||||
// verify method calls
|
||||
assertEquals(7, list.size());
|
||||
|
||||
Reference in New Issue
Block a user