Update to allow restart parameters to override previous parameters in JsrJobOperator and add test case

This commit is contained in:
Chris Schaefer
2013-09-05 14:46:02 -04:00
committed by Michael Minella
parent a21df75ce9
commit 8580756857
2 changed files with 26 additions and 4 deletions

View File

@@ -493,10 +493,6 @@ public class JsrJobOperator implements JobOperator {
protected Properties getJobRestartProperties(Properties params, org.springframework.batch.core.JobExecution previousJobExecution) {
Properties jobRestartProperties = new Properties();
if (params != null && !params.isEmpty()) {
jobRestartProperties.putAll(params);
}
if (previousJobExecution != null) {
JobParameters previousJobParameters = previousJobExecution.getJobParameters();
@@ -505,6 +501,10 @@ public class JsrJobOperator implements JobOperator {
}
}
if (params != null && !params.isEmpty()) {
jobRestartProperties.putAll(params);
}
return jobRestartProperties;
}

View File

@@ -411,4 +411,26 @@ public class JsrJobOperatorTests {
assertTrue(properties.getProperty("prevKey1").equals("prevVal1"));
assertTrue(properties.getProperty("userKey1").equals("userVal1"));
}
@Test
public void testNewJobParametersOverridePreviousRestartParameters() {
JsrJobOperator jobOperator = (JsrJobOperator) jsrJobOperator;
JobExecution jobExecution = new JobExecution(1L,
new JobParametersBuilder()
.addString("prevKey1", "prevVal1")
.addString("overrideTest", "jobExecution")
.toJobParameters());
Properties userProperties = new Properties();
userProperties.put("userKey1", "userVal1");
userProperties.put("overrideTest", "userProperties");
Properties properties = jobOperator.getJobRestartProperties(userProperties, jobExecution);
assertTrue(properties.size() == 3);
assertTrue(properties.getProperty("prevKey1").equals("prevVal1"));
assertTrue(properties.getProperty("userKey1").equals("userVal1"));
assertTrue(properties.getProperty("overrideTest").equals("userProperties"));
}
}