From 1d386ee0d227aa55f75a5e77ab6465eed0973dc1 Mon Sep 17 00:00:00 2001 From: robokaso Date: Fri, 16 May 2008 08:26:40 +0000 Subject: [PATCH] RESOLVED - BATCH-629: CommandLineJobRunner should allow injection of JobParametersConverter --- .../launch/support/CommandLineJobRunner.java | 10 +++++++ .../support/CommandLineJobRunnerTests.java | 26 +++++++++++++++-- .../core/launch/support/test-environment.xml | 28 +++++++++++-------- 3 files changed, 51 insertions(+), 13 deletions(-) diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/launch/support/CommandLineJobRunner.java b/spring-batch-core/src/main/java/org/springframework/batch/core/launch/support/CommandLineJobRunner.java index a433e00b9..35c869618 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/launch/support/CommandLineJobRunner.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/launch/support/CommandLineJobRunner.java @@ -157,6 +157,15 @@ public class CommandLineJobRunner { public void setSystemExiter(SystemExiter systemExitor) { this.systemExiter = systemExitor; } + + /** + * Injection setter for {@link JobParametersConverter}. + * + * @param jobParametersConverter + */ + public void setJobParametersConverter(JobParametersConverter jobParametersConverter) { + this.jobParametersConverter = jobParametersConverter; + } /** * Delegate to the exiter to (possibly) exit the VM gracefully. @@ -170,6 +179,7 @@ public class CommandLineJobRunner { public void setJobLocator(JobLocator jobLocator) { this.jobLocator = jobLocator; } + /* * Start a job by obtaining a combined classpath using the job launcher and diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/launch/support/CommandLineJobRunnerTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/launch/support/CommandLineJobRunnerTests.java index 8b2d4b368..731bca4e2 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/launch/support/CommandLineJobRunnerTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/launch/support/CommandLineJobRunnerTests.java @@ -15,11 +15,15 @@ */ package org.springframework.batch.core.launch.support; +import java.util.Properties; + import junit.framework.TestCase; import org.springframework.batch.core.Job; import org.springframework.batch.core.JobExecution; import org.springframework.batch.core.JobParameters; +import org.springframework.batch.core.converter.DefaultJobParametersConverter; +import org.springframework.batch.core.converter.JobParametersConverter; import org.springframework.batch.core.launch.JobLauncher; import org.springframework.batch.core.repository.JobExecutionAlreadyRunningException; import org.springframework.batch.repeat.ExitStatus; @@ -62,6 +66,7 @@ public class CommandLineJobRunnerTests extends TestCase { public void testMain() { CommandLineJobRunner.main(args); + assertTrue("injected JobParametersConverter used instead of default", StubJobParametersConverter.called); assertEquals(0, StubSystemExiter.getStatus()); } @@ -130,9 +135,9 @@ public class CommandLineJobRunnerTests extends TestCase { return jobExecution; } - + public void destroy() { - destroyed = true; + destroyed = true; } public static void tearDown() { @@ -143,4 +148,21 @@ public class CommandLineJobRunnerTests extends TestCase { } } + private static class StubJobParametersConverter implements JobParametersConverter { + + JobParametersConverter delegate = new DefaultJobParametersConverter(); + + static boolean called = false; + + public JobParameters getJobParameters(Properties properties) { + called = true; + return delegate.getJobParameters(properties); + } + + public Properties getProperties(JobParameters params) { + throw new UnsupportedOperationException(); + } + + } + } diff --git a/spring-batch-core/src/test/resources/org/springframework/batch/core/launch/support/test-environment.xml b/spring-batch-core/src/test/resources/org/springframework/batch/core/launch/support/test-environment.xml index d6ec3e0a5..15e44a16b 100644 --- a/spring-batch-core/src/test/resources/org/springframework/batch/core/launch/support/test-environment.xml +++ b/spring-batch-core/src/test/resources/org/springframework/batch/core/launch/support/test-environment.xml @@ -1,19 +1,25 @@ - - + - - - - + + + + - + + +