BATCH-1095, BATCH-1174: Late binding of jobParameters does not work if late binding expression is not preceded or trailed by string
This commit is contained in:
@@ -12,6 +12,7 @@ batch.jndi.name=
|
||||
batch.naming.factory.initial=
|
||||
batch.naming.provider.url=
|
||||
batch.schema.script=schema-hsqldb.sql
|
||||
batch.drop.script=schema-drop-hsqldb.sql
|
||||
batch.business.schema.script=business-schema-hsqldb.sql
|
||||
batch.database.incrementer.class=org.springframework.jdbc.support.incrementer.HsqlMaxValueIncrementer
|
||||
batch.lob.handler.class=org.springframework.jdbc.support.lob.DefaultLobHandler
|
||||
|
||||
@@ -1,9 +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"
|
||||
xmlns:aop="http://www.springframework.org/schema/aop"
|
||||
xmlns:tx="http://www.springframework.org/schema/tx"
|
||||
xmlns:p="http://www.springframework.org/schema/p"
|
||||
<beans:beans xmlns="http://www.springframework.org/schema/batch" xmlns:beans="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"
|
||||
xsi:schemaLocation="
|
||||
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
|
||||
@@ -15,7 +12,7 @@
|
||||
<step id="step1">
|
||||
<tasklet reader="itemReader" processor="processor" writer="tradeWriter" commit-interval="2">
|
||||
<streams>
|
||||
<stream ref="fileItemReader"/>
|
||||
<stream ref="fileItemReader" />
|
||||
</streams>
|
||||
</tasklet>
|
||||
</step>
|
||||
@@ -31,15 +28,12 @@
|
||||
<beans:property name="dao" ref="tradeDao" />
|
||||
</beans:bean>
|
||||
|
||||
<beans:bean id="itemReader"
|
||||
class="org.springframework.batch.sample.support.ExceptionThrowingItemReaderProxy">
|
||||
<beans:bean id="itemReader" class="org.springframework.batch.sample.support.ExceptionThrowingItemReaderProxy">
|
||||
<beans:property name="delegate" ref="fileItemReader" />
|
||||
</beans:bean>
|
||||
|
||||
<beans:bean id="fileItemReader"
|
||||
class="org.springframework.batch.item.file.FlatFileItemReader">
|
||||
<beans:property name="resource"
|
||||
value="classpath:data/fixedLengthImportJob/input/20070122.teststream.ImportTradeDataStep.txt" />
|
||||
<beans:bean id="fileItemReader" class="org.springframework.batch.item.file.FlatFileItemReader" scope="step">
|
||||
<beans:property name="resource" value="#{jobParameters['input.file']}" />
|
||||
<beans:property name="lineMapper">
|
||||
<beans:bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
|
||||
<beans:property name="lineTokenizer" ref="fixedFileTokenizer" />
|
||||
@@ -49,17 +43,14 @@
|
||||
<beans:property name="saveState" value="true" />
|
||||
</beans:bean>
|
||||
|
||||
<beans:bean id="fixedFileTokenizer"
|
||||
class="org.springframework.batch.item.file.transform.FixedLengthTokenizer">
|
||||
<beans:bean id="fixedFileTokenizer" 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>
|
||||
|
||||
<beans:bean id="fixedValidator"
|
||||
class="org.springframework.batch.item.validator.SpringValidator">
|
||||
<beans:bean id="fixedValidator" class="org.springframework.batch.item.validator.SpringValidator">
|
||||
<beans:property name="validator">
|
||||
<beans:bean id="tradeValidator"
|
||||
class="org.springmodules.validation.valang.ValangValidator">
|
||||
<beans:bean id="tradeValidator" class="org.springmodules.validation.valang.ValangValidator">
|
||||
<beans:property name="valang">
|
||||
<beans:value>
|
||||
<![CDATA[
|
||||
@@ -71,8 +62,7 @@
|
||||
</beans:property>
|
||||
</beans:bean>
|
||||
|
||||
<beans:bean id="tradeDao"
|
||||
class="org.springframework.batch.sample.domain.trade.internal.JdbcTradeDao">
|
||||
<beans:bean id="tradeDao" class="org.springframework.batch.sample.domain.trade.internal.JdbcTradeDao">
|
||||
<beans:property name="dataSource" ref="dataSource" />
|
||||
<beans:property name="incrementer">
|
||||
<beans:bean parent="incrementerParent">
|
||||
@@ -82,7 +72,6 @@
|
||||
</beans:property>
|
||||
</beans:bean>
|
||||
|
||||
<beans:bean id="fieldSetMapper"
|
||||
class="org.springframework.batch.sample.domain.trade.internal.TradeFieldSetMapper" />
|
||||
<beans:bean id="fieldSetMapper" class="org.springframework.batch.sample.domain.trade.internal.TradeFieldSetMapper" />
|
||||
|
||||
</beans:beans>
|
||||
@@ -17,7 +17,6 @@
|
||||
package org.springframework.batch.sample;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
@@ -62,10 +61,10 @@ public class RestartFunctionalTests extends AbstractBatchLauncherTests {
|
||||
* finish successfully, because it continues execution where the previous
|
||||
* run stopped (module throws exception after fixed number of processed
|
||||
* records).
|
||||
* @throws Exception the exception thrown
|
||||
* @throws Throwable
|
||||
*/
|
||||
@Test
|
||||
public void testRestart() throws Exception {
|
||||
public void testRestart() throws Throwable {
|
||||
|
||||
int before = simpleJdbcTemplate.queryForInt("SELECT COUNT(*) FROM TRADE");
|
||||
|
||||
@@ -73,8 +72,10 @@ public class RestartFunctionalTests extends AbstractBatchLauncherTests {
|
||||
assertEquals(BatchStatus.FAILED, jobExecution.getStatus());
|
||||
|
||||
Throwable expected = jobExecution.getAllFailureExceptions().get(0);
|
||||
assertTrue("Not planned exception: " + expected.getMessage(), expected.getMessage().toLowerCase().indexOf(
|
||||
"planned") >= 0);
|
||||
if(expected.getMessage().toLowerCase().indexOf(
|
||||
"planned") < 0) {
|
||||
throw expected;
|
||||
}
|
||||
|
||||
int medium = simpleJdbcTemplate.queryForInt("SELECT COUNT(*) FROM TRADE");
|
||||
// assert based on commit interval = 2
|
||||
@@ -91,7 +92,7 @@ public class RestartFunctionalTests extends AbstractBatchLauncherTests {
|
||||
// load the application context and launch the job
|
||||
private JobExecution runJobForRestartTest() throws Exception {
|
||||
return getLauncher().run(getJob(), new DefaultJobParametersConverter().getJobParameters(PropertiesConverter
|
||||
.stringToProperties("parameter=true")));
|
||||
.stringToProperties("run.id(long)=1,parameter=true,run.date=20070122,input.file=classpath:data/fixedLengthImportJob/input/20070122.teststream.ImportTradeDataStep.txt")));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user