RESOLVED - issue BATCH-1109: Generalise PrefixMatching* to PatternMatching*

This commit is contained in:
dsyer
2009-03-03 17:11:49 +00:00
parent 7fd99c2344
commit f2f7a12eaa
7 changed files with 105 additions and 121 deletions

View File

@@ -25,17 +25,17 @@
</bean>
<bean id="prefixMatchingLineMapper"
class="org.springframework.batch.item.file.mapping.PrefixMatchingCompositeLineMapper">
class="org.springframework.batch.item.file.mapping.PatternMatchingCompositeLineMapper">
<property name="tokenizers">
<map>
<entry key="TRAD" value-ref="tradeLineTokenizer" />
<entry key="CUST" value-ref="customerLineTokenizer" />
<entry key="TRAD*" value-ref="tradeLineTokenizer" />
<entry key="CUST*" value-ref="customerLineTokenizer" />
</map>
</property>
<property name="fieldSetMappers">
<map>
<entry key="TRAD" value-ref="tradeFieldSetMapper" />
<entry key="CUST" value-ref="customerFieldSetMapper" />
<entry key="TRAD*" value-ref="tradeFieldSetMapper" />
<entry key="CUST*" value-ref="customerFieldSetMapper" />
</map>
</property>
</bean>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/batch"
xmlns:beans="http://www.springframework.org/schema/beans"
<beans xmlns:batch="http://www.springframework.org/schema/batch"
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
@@ -10,71 +10,71 @@
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
<job id="multilineJob">
<step id="step1">
<tasklet reader="reader" writer="writer" commit-interval="1">
<streams>
<stream ref="fileItemReader"/>
</streams>
</tasklet>
</step>
</job>
<batch:job id="multilineJob">
<batch:step id="step1">
<batch:tasklet reader="reader" writer="writer" commit-interval="1">
<batch:streams>
<batch:stream ref="fileItemReader"/>
</batch:streams>
</batch:tasklet>
</batch:step>
</batch:job>
<beans:bean id="reader" class="org.springframework.batch.sample.domain.multiline.AggregateItemReader">
<beans:property name="itemReader" ref="fileItemReader" />
</beans:bean>
<bean id="reader" class="org.springframework.batch.sample.domain.multiline.AggregateItemReader">
<property name="itemReader" ref="fileItemReader" />
</bean>
<beans:bean id="writer" class="org.springframework.batch.item.file.FlatFileItemWriter">
<beans:property name="resource" value="file:target/test-outputs/20070122.testStream.multilineStep.txt" />
<beans:property name="lineAggregator">
<beans:bean class="org.springframework.batch.item.file.transform.PassThroughLineAggregator"/>
</beans:property>
</beans:bean>
<bean id="writer" class="org.springframework.batch.item.file.FlatFileItemWriter">
<property name="resource" value="file:target/test-outputs/20070122.testStream.multilineStep.txt" />
<property name="lineAggregator">
<bean class="org.springframework.batch.item.file.transform.PassThroughLineAggregator"/>
</property>
</bean>
<beans:bean id="fileItemReader"
<bean id="fileItemReader"
class="org.springframework.batch.item.file.FlatFileItemReader">
<beans:property name="resource"
<property name="resource"
value="classpath:data/multilineJob/input/20070122.teststream.multilineStep.txt" />
<beans:property name="lineMapper">
<beans:bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<beans:property name="lineTokenizer" ref="fixedFileDescriptor" />
<beans:property name="fieldSetMapper">
<beans:bean class="org.springframework.batch.sample.domain.multiline.AggregateItemFieldSetMapper">
<beans:property name="delegate" ref="tradeLineMapper" />
</beans:bean>
</beans:property>
</beans:bean>
</beans:property>
</beans:bean>
<property name="lineMapper">
<bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<property name="lineTokenizer" ref="fixedFileDescriptor" />
<property name="fieldSetMapper">
<bean class="org.springframework.batch.sample.domain.multiline.AggregateItemFieldSetMapper">
<property name="delegate" ref="tradeLineMapper" />
</bean>
</property>
</bean>
</property>
</bean>
<beans:bean id="tradeLineMapper"
<bean id="tradeLineMapper"
class="org.springframework.batch.sample.domain.trade.internal.TradeFieldSetMapper" />
<beans:bean id="fixedFileDescriptor"
class="org.springframework.batch.item.file.transform.PrefixMatchingCompositeLineTokenizer">
<beans:property name="tokenizers">
<beans:map>
<beans:entry key="BEGIN" value-ref="beginRecordTokenizer" />
<beans:entry key="END" value-ref="endRecordTokenizer" />
<beans:entry key="" value-ref="tradeRecordTokenizer" />
</beans:map>
</beans:property>
</beans:bean>
<bean id="fixedFileDescriptor"
class="org.springframework.batch.item.file.transform.PatternMatchingCompositeLineTokenizer">
<property name="tokenizers">
<map>
<entry key="BEGIN*" value-ref="beginRecordTokenizer" />
<entry key="END*" value-ref="endRecordTokenizer" />
<entry key="*" value-ref="tradeRecordTokenizer" />
</map>
</property>
</bean>
<beans:bean id="beginRecordTokenizer"
<bean id="beginRecordTokenizer"
class="org.springframework.batch.item.file.transform.FixedLengthTokenizer">
<beans:property name="columns" value="1-5" />
</beans:bean>
<property name="columns" value="1-5" />
</bean>
<beans:bean id="endRecordTokenizer"
<bean id="endRecordTokenizer"
class="org.springframework.batch.item.file.transform.FixedLengthTokenizer">
<beans:property name="columns" value="1-3" />
</beans:bean>
<property name="columns" value="1-3" />
</bean>
<beans:bean id="tradeRecordTokenizer"
<bean id="tradeRecordTokenizer"
class="org.springframework.batch.item.file.transform.FixedLengthTokenizer">
<beans:property name="names" value="ISIN,Quantity,Price,Customer" />
<beans:property name="columns" value="1-12, 13-15, 16-20, 21-29" />
</beans:bean>
<property name="names" value="ISIN,Quantity,Price,Customer" />
<property name="columns" value="1-12, 13-15, 16-20, 21-29" />
</bean>
</beans:beans>
</beans>

View File

@@ -4,19 +4,19 @@
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="orderFileTokenizer"
class="org.springframework.batch.item.file.transform.PrefixMatchingCompositeLineTokenizer">
class="org.springframework.batch.item.file.transform.PatternMatchingCompositeLineTokenizer">
<property name="tokenizers">
<map>
<entry key="HEA" value-ref="headerRecordTokenizer" />
<entry key="FOT" value-ref="footerRecordTokenizer" />
<entry key="BCU" value-ref="businessCustomerLineTokenizer" />
<entry key="NCU" value-ref="customerLineTokenizer" />
<entry key="BAD" value-ref="billingAddressLineTokenizer" />
<entry key="SAD" value-ref="shippingAddressLineTokenizer" />
<entry key="BIN" value-ref="billingLineTokenizer" />
<entry key="SIN" value-ref="shippingLineTokenizer" />
<entry key="LIT" value-ref="itemLineTokenizer" />
<entry key="" value-ref="defaultLineTokenizer" />
<entry key="HEA*" value-ref="headerRecordTokenizer" />
<entry key="FOT*" value-ref="footerRecordTokenizer" />
<entry key="BCU*" value-ref="businessCustomerLineTokenizer" />
<entry key="NCU*" value-ref="customerLineTokenizer" />
<entry key="BAD*" value-ref="billingAddressLineTokenizer" />
<entry key="SAD*" value-ref="shippingAddressLineTokenizer" />
<entry key="BIN*" value-ref="billingLineTokenizer" />
<entry key="SIN*" value-ref="shippingLineTokenizer" />
<entry key="LIT*" value-ref="itemLineTokenizer" />
<entry key="*" value-ref="defaultLineTokenizer" />
</map>
</property>
</bean>