diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/JobParameters.java b/spring-batch-core/src/main/java/org/springframework/batch/core/JobParameters.java index 487383f45..bc1cdc381 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/JobParameters.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/JobParameters.java @@ -35,6 +35,7 @@ import java.util.Map; * @author Lucas Ward * @since 1.0 */ +@SuppressWarnings("serial") public class JobParameters implements Serializable { private final Map parameters; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/JobParametersBuilder.java b/spring-batch-core/src/main/java/org/springframework/batch/core/JobParametersBuilder.java index 4b22e6092..8654b1a45 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/JobParametersBuilder.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/JobParametersBuilder.java @@ -110,9 +110,22 @@ public class JobParametersBuilder { * Conversion method that takes the current state of this builder and * returns it as a JobruntimeParameters object. * - * @return a valid JobParameters object. + * @return a valid {@link JobParameters} object. */ public JobParameters toJobParameters() { return new JobParameters(parameterMap); } + + /** + * Add a new {@link JobParameter} for the given key. + * + * @param key - parameter accessor + * @param jobParameter - runtime parameter + * @return a reference to this object. + */ + public JobParametersBuilder addParameter(String key, JobParameter jobParameter) { + Assert.notNull(jobParameter, "JobParameter must not be null"); + parameterMap.put(key, jobParameter); + return this; + } } diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/JobParametersBuilderTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/JobParametersBuilderTests.java index 1c2022d4c..8284be0ae 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/JobParametersBuilderTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/JobParametersBuilderTests.java @@ -5,6 +5,7 @@ package org.springframework.batch.core; import java.util.Date; import java.util.Iterator; +import java.util.Map; import junit.framework.TestCase; @@ -54,4 +55,12 @@ public class JobParametersBuilderTests extends TestCase { assertEquals("bar", parameters.next()); assertEquals("spam", parameters.next()); } + + public void testAddJobParameter(){ + JobParameter jobParameter = new JobParameter("bar"); + parametersBuilder.addParameter("foo", jobParameter); + Map parameters = parametersBuilder.toJobParameters().getParameters(); + assertEquals(1, parameters.size()); + assertEquals("bar", parameters.get("foo").getValue()); + } }