BATCH-2007: Refactored to use JobParametersConverter instead of new interface

This commit is contained in:
Michael Minella
2013-08-03 08:23:39 -05:00
parent ce16ad2b03
commit dbc829273b
12 changed files with 59 additions and 101 deletions

View File

@@ -1,4 +1,4 @@
package org.springframework.batch.core.jsr;
package org.springframework.batch.core.converter;
import java.util.Map;
import java.util.Properties;
@@ -7,16 +7,15 @@ import org.springframework.batch.core.JobParameter;
import org.springframework.batch.core.JobParameters;
import org.springframework.batch.core.JobParametersBuilder;
public class ParametersConverterSupport implements ParametersConverter {
public class JobParametersConverterSupport implements JobParametersConverter {
@Override
public JobParameters convert(Properties parameters) {
public JobParameters getJobParameters(Properties properties) {
JobParametersBuilder builder = new JobParametersBuilder();
if(parameters != null) {
for (Map.Entry<Object, Object> curParameter : parameters.entrySet()) {
if(properties != null) {
for (Map.Entry<Object, Object> curParameter : properties.entrySet()) {
if(curParameter.getValue() != null) {
builder.addString(curParameter.getKey().toString(), curParameter.getValue().toString(), false);
}
}
@@ -25,12 +24,15 @@ public class ParametersConverterSupport implements ParametersConverter {
return builder.toJobParameters();
}
/* (non-Javadoc)
* @see org.springframework.batch.core.converter.JobParametersConverter#getProperties(org.springframework.batch.core.JobParameters)
*/
@Override
public Properties convert(JobParameters parameters) {
public Properties getProperties(JobParameters params) {
Properties properties = new Properties();
if(properties != null) {
for(Map.Entry<String, JobParameter> curParameter: parameters.getParameters().entrySet()) {
if(params != null) {
for(Map.Entry<String, JobParameter> curParameter: params.getParameters().entrySet()) {
properties.setProperty(curParameter.getKey(), curParameter.getValue().getValue().toString());
}
}

View File

@@ -16,6 +16,7 @@ import org.springframework.batch.core.JobExecution;
import org.springframework.batch.core.JobInstance;
import org.springframework.batch.core.JobParameters;
import org.springframework.batch.core.JobParametersBuilder;
import org.springframework.batch.core.converter.JobParametersConverter;
public class JobContextTests {
@@ -25,7 +26,7 @@ public class JobContextTests {
@Mock
private JobInstance instance;
@Mock
private ParametersConverter converter;
private JobParametersConverter converter;
@Before
public void setUp() throws Exception {
@@ -75,7 +76,7 @@ public class JobContextTests {
results.put("key1", "value1");
when(execution.getJobParameters()).thenReturn(params);
when(converter.convert(params)).thenReturn(results);
when(converter.getProperties(params)).thenReturn(results);
Properties props = context.getProperties();

View File

@@ -12,6 +12,7 @@ import org.springframework.batch.core.ExitStatus;
import org.springframework.batch.core.JobInstance;
import org.springframework.batch.core.JobParameters;
import org.springframework.batch.core.JobParametersBuilder;
import org.springframework.batch.core.converter.JobParametersConverterSupport;
public class JobExecutionTests {
@@ -34,12 +35,12 @@ public class JobExecutionTests {
execution.setStatus(BatchStatus.FAILED);
execution.setVersion(21);
adapter = new JobExecution(execution, new ParametersConverterSupport());
adapter = new JobExecution(execution, new JobParametersConverterSupport());
}
@Test(expected=IllegalArgumentException.class)
public void testCreateWithNull() {
adapter = new JobExecution(null, new ParametersConverterSupport());
adapter = new JobExecution(null, new JobParametersConverterSupport());
}
@Test

View File

@@ -38,7 +38,7 @@ public class JsrJobParametersConverterTests {
@Test
public void testNullJobParameters() {
Properties props = converter.convert((JobParameters) null);
Properties props = converter.getProperties((JobParameters) null);
assertNotNull(props);
Set<Entry<Object, Object>> properties = props.entrySet();
assertEquals(1, properties.size());
@@ -48,7 +48,7 @@ public class JsrJobParametersConverterTests {
@Test
public void testStringJobParameters() {
JobParameters parameters = new JobParametersBuilder().addString("key", "value", false).toJobParameters();
Properties props = converter.convert(parameters);
Properties props = converter.getProperties(parameters);
assertNotNull(props);
Set<Entry<Object, Object>> properties = props.entrySet();
assertEquals(2, properties.size());
@@ -59,7 +59,7 @@ public class JsrJobParametersConverterTests {
@Test
public void testNonStringJobParameters() {
JobParameters parameters = new JobParametersBuilder().addLong("key", 5l, false).toJobParameters();
Properties props = converter.convert(parameters);
Properties props = converter.getProperties(parameters);
assertNotNull(props);
Set<Entry<Object, Object>> properties = props.entrySet();
assertEquals(2, properties.size());
@@ -70,7 +70,7 @@ public class JsrJobParametersConverterTests {
@Test
public void testJobParametersWithRunId() {
JobParameters parameters = new JobParametersBuilder().addLong("key", 5l, false).addLong(JsrJobParametersConverter.JOB_RUN_ID, 2l).toJobParameters();
Properties props = converter.convert(parameters);
Properties props = converter.getProperties(parameters);
assertNotNull(props);
Set<Entry<Object, Object>> properties = props.entrySet();
assertEquals(2, properties.size());
@@ -80,7 +80,7 @@ public class JsrJobParametersConverterTests {
@Test
public void testNullProperties() {
JobParameters parameters = converter.convert((Properties)null);
JobParameters parameters = converter.getJobParameters((Properties)null);
assertNotNull(parameters);
assertEquals(1, parameters.getParameters().size());
assertTrue(parameters.getParameters().containsKey(JsrJobParametersConverter.JOB_RUN_ID));
@@ -90,7 +90,7 @@ public class JsrJobParametersConverterTests {
public void testProperties() {
Properties properties = new Properties();
properties.put("key", "value");
JobParameters parameters = converter.convert(properties);
JobParameters parameters = converter.getJobParameters(properties);
assertEquals(2, parameters.getParameters().size());
assertEquals("value", parameters.getString("key"));
assertTrue(parameters.getParameters().containsKey(JsrJobParametersConverter.JOB_RUN_ID));
@@ -101,7 +101,7 @@ public class JsrJobParametersConverterTests {
Properties properties = new Properties();
properties.put("key", "value");
properties.put(JsrJobParametersConverter.JOB_RUN_ID, "3");
JobParameters parameters = converter.convert(properties);
JobParameters parameters = converter.getJobParameters(properties);
assertEquals(2, parameters.getParameters().size());
assertEquals("value", parameters.getString("key"));
assertEquals(Long.valueOf(3l), parameters.getLong(JsrJobParametersConverter.JOB_RUN_ID));

View File

@@ -14,6 +14,7 @@ import org.springframework.batch.core.ExitStatus;
import org.springframework.batch.core.JobExecution;
import org.springframework.batch.core.JobParametersBuilder;
import org.springframework.batch.core.StepExecution;
import org.springframework.batch.core.converter.JobParametersConverterSupport;
public class StepContextTests {
@@ -37,7 +38,7 @@ public class StepContextTests {
stepExecution.setWriteCount(7);
stepExecution.setWriteSkipCount(8);
stepContext = new StepContext(stepExecution, new ParametersConverterSupport());
stepContext = new StepContext(stepExecution, new JobParametersConverterSupport());
stepContext.setTransientUserData("This is my transient data");
}

View File

@@ -29,10 +29,10 @@ import org.springframework.batch.core.JobExecution;
import org.springframework.batch.core.JobInstance;
import org.springframework.batch.core.JobParametersBuilder;
import org.springframework.batch.core.StepExecution;
import org.springframework.batch.core.converter.JobParametersConverter;
import org.springframework.batch.core.converter.JobParametersConverterSupport;
import org.springframework.batch.core.explore.JobExplorer;
import org.springframework.batch.core.explore.support.SimpleJobExplorer;
import org.springframework.batch.core.jsr.ParametersConverter;
import org.springframework.batch.core.jsr.ParametersConverterSupport;
import org.springframework.batch.core.launch.support.SimpleJobOperator;
import org.springframework.batch.core.repository.JobExecutionAlreadyRunningException;
import org.springframework.batch.core.repository.JobRepository;
@@ -47,12 +47,12 @@ public class JsrJobOperatorTests {
private JobExplorer jobExplorer;
@Mock
private JobRepository jobRepository;
private ParametersConverter parameterConverter;
private JobParametersConverter parameterConverter;
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
parameterConverter = new ParametersConverterSupport();
parameterConverter = new JobParametersConverterSupport();
jsrJobOperator = new JsrJobOperator(jobExplorer, jobRepository, jobOperator, parameterConverter);
}