From 60bbc0052a93a1fc3072bae3a05375ea05380f38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E1=84=8B=E1=85=B5=E1=84=83=E1=85=A9=E1=86=BC=E1=84=8B?= =?UTF-8?q?=E1=85=AE=E1=86=A8?= Date: Sun, 6 Oct 2019 21:05:14 +0900 Subject: [PATCH] Add getUniqueJobParametersBuilder() method in JobLauncherTestUtils Issue #767 --- .../batch/sample/iosample/AbstractIoSampleTests.java | 5 +++++ .../batch/sample/iosample/DelimitedFunctionalTests.java | 4 ++-- .../sample/iosample/FixedLengthFunctionalTests.java | 4 ++-- .../batch/sample/iosample/JdbcPagingFunctionalTests.java | 4 ++-- .../sample/iosample/MultiResourceFunctionalTests.java | 4 ++-- .../batch/sample/iosample/RepositoryFunctionalTests.java | 4 ++-- .../springframework/batch/test/JobLauncherTestUtils.java | 9 +++++++++ 7 files changed, 24 insertions(+), 10 deletions(-) diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/AbstractIoSampleTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/AbstractIoSampleTests.java index 1db3050b0..1cf7fcb31 100644 --- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/AbstractIoSampleTests.java +++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/AbstractIoSampleTests.java @@ -25,6 +25,7 @@ import org.junit.Test; import org.springframework.batch.core.BatchStatus; import org.springframework.batch.core.JobExecution; import org.springframework.batch.core.JobParameters; +import org.springframework.batch.core.JobParametersBuilder; import org.springframework.batch.core.StepExecution; import org.springframework.batch.item.ExecutionContext; import org.springframework.batch.item.ItemReader; @@ -91,6 +92,10 @@ public abstract class AbstractIoSampleTests { return jobLauncherTestUtils.getUniqueJobParameters(); } + protected JobParametersBuilder getUniqueJobParametersBuilder() { + return jobLauncherTestUtils.getUniqueJobParametersBuilder(); + } + /** * Configure the reader to read outputs (if necessary). Required for * file-to-file jobs jobs, usually no-op for database jobs where inputs are diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/DelimitedFunctionalTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/DelimitedFunctionalTests.java index 072e88881..d1404a3cf 100644 --- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/DelimitedFunctionalTests.java +++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/DelimitedFunctionalTests.java @@ -38,7 +38,7 @@ public class DelimitedFunctionalTests extends AbstractIoSampleTests { @Override protected void pointReaderToOutput(ItemReader reader) { - JobParameters jobParameters = new JobParametersBuilder(super.getUniqueJobParameters()).addString("inputFile", + JobParameters jobParameters = super.getUniqueJobParametersBuilder().addString("inputFile", "file:./build/test-outputs/delimitedOutput.csv").toJobParameters(); StepExecution stepExecution = MetaDataInstanceFactory.createStepExecution(jobParameters); StepSynchronizationManager.close(); @@ -47,7 +47,7 @@ public class DelimitedFunctionalTests extends AbstractIoSampleTests { @Override protected JobParameters getUniqueJobParameters() { - return new JobParametersBuilder(super.getUniqueJobParameters()).addString("inputFile", + return super.getUniqueJobParametersBuilder().addString("inputFile", "data/iosample/input/delimited.csv").addString("outputFile", "file:./build/test-outputs/delimitedOutput.csv").toJobParameters(); } diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/FixedLengthFunctionalTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/FixedLengthFunctionalTests.java index 30b2e7e56..4d7a2ed15 100644 --- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/FixedLengthFunctionalTests.java +++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/FixedLengthFunctionalTests.java @@ -33,7 +33,7 @@ public class FixedLengthFunctionalTests extends AbstractIoSampleTests { @Override protected void pointReaderToOutput(ItemReader reader) { - JobParameters jobParameters = new JobParametersBuilder(super.getUniqueJobParameters()).addString("inputFile", + JobParameters jobParameters = super.getUniqueJobParametersBuilder().addString("inputFile", "file:./build/test-outputs/fixedLengthOutput.txt").toJobParameters(); StepExecution stepExecution = MetaDataInstanceFactory.createStepExecution(jobParameters); StepSynchronizationManager.close(); @@ -42,7 +42,7 @@ public class FixedLengthFunctionalTests extends AbstractIoSampleTests { @Override protected JobParameters getUniqueJobParameters() { - return new JobParametersBuilder(super.getUniqueJobParameters()).addString("inputFile", + return super.getUniqueJobParametersBuilder().addString("inputFile", "data/iosample/input/fixedLength.txt").addString("outputFile", "file:./build/test-outputs/fixedLengthOutput.txt").toJobParameters(); } diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/JdbcPagingFunctionalTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/JdbcPagingFunctionalTests.java index ca2c3da51..8ceda7bf8 100644 --- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/JdbcPagingFunctionalTests.java +++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/JdbcPagingFunctionalTests.java @@ -38,7 +38,7 @@ public class JdbcPagingFunctionalTests extends AbstractIoSampleTests { @Override protected void pointReaderToOutput(ItemReader reader) { - JobParameters jobParameters = new JobParametersBuilder(super.getUniqueJobParameters()).addDouble("credit", 0.) + JobParameters jobParameters = super.getUniqueJobParametersBuilder().addDouble("credit", 0.) .toJobParameters(); StepExecution stepExecution = MetaDataInstanceFactory.createStepExecution(jobParameters); StepSynchronizationManager.close(); @@ -47,7 +47,7 @@ public class JdbcPagingFunctionalTests extends AbstractIoSampleTests { @Override protected JobParameters getUniqueJobParameters() { - return new JobParametersBuilder(super.getUniqueJobParameters()).addDouble("credit", 10000.).toJobParameters(); + return super.getUniqueJobParametersBuilder().addDouble("credit", 10000.).toJobParameters(); } } diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/MultiResourceFunctionalTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/MultiResourceFunctionalTests.java index a1776ca12..4d11909ad 100644 --- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/MultiResourceFunctionalTests.java +++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/MultiResourceFunctionalTests.java @@ -37,7 +37,7 @@ public class MultiResourceFunctionalTests extends AbstractIoSampleTests { @Override protected void pointReaderToOutput(ItemReader reader) { - JobParameters jobParameters = new JobParametersBuilder(super.getUniqueJobParameters()).addString( + JobParameters jobParameters = super.getUniqueJobParametersBuilder().addString( "input.file.path", "file:build/test-outputs/multiResourceOutput.csv.*").toJobParameters(); StepExecution stepExecution = MetaDataInstanceFactory.createStepExecution(jobParameters); StepSynchronizationManager.close(); @@ -46,7 +46,7 @@ public class MultiResourceFunctionalTests extends AbstractIoSampleTests { @Override protected JobParameters getUniqueJobParameters() { - JobParametersBuilder builder = new JobParametersBuilder(super.getUniqueJobParameters()); + JobParametersBuilder builder = super.getUniqueJobParametersBuilder(); return builder.addString("input.file.path", "classpath:data/iosample/input/delimited*.csv").addString( "output.file.path", "file:build/test-outputs/multiResourceOutput.csv").toJobParameters(); } diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/RepositoryFunctionalTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/RepositoryFunctionalTests.java index 3d53f32a9..4fcf7b28a 100644 --- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/RepositoryFunctionalTests.java +++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/RepositoryFunctionalTests.java @@ -32,7 +32,7 @@ public class RepositoryFunctionalTests extends AbstractIoSampleTests { @Override protected void pointReaderToOutput(ItemReader reader) { - JobParameters jobParameters = new JobParametersBuilder(super.getUniqueJobParameters()).addDouble("credit", 0.) + JobParameters jobParameters = super.getUniqueJobParametersBuilder().addDouble("credit", 0.) .toJobParameters(); StepExecution stepExecution = MetaDataInstanceFactory.createStepExecution(jobParameters); StepSynchronizationManager.close(); @@ -41,6 +41,6 @@ public class RepositoryFunctionalTests extends AbstractIoSampleTests { @Override protected JobParameters getUniqueJobParameters() { - return new JobParametersBuilder(super.getUniqueJobParameters()).addString("credit", "10000").toJobParameters(); + return super.getUniqueJobParametersBuilder().addString("credit", "10000").toJobParameters(); } } diff --git a/spring-batch-test/src/main/java/org/springframework/batch/test/JobLauncherTestUtils.java b/spring-batch-test/src/main/java/org/springframework/batch/test/JobLauncherTestUtils.java index b4b844630..1ef705227 100644 --- a/spring-batch-test/src/main/java/org/springframework/batch/test/JobLauncherTestUtils.java +++ b/spring-batch-test/src/main/java/org/springframework/batch/test/JobLauncherTestUtils.java @@ -26,6 +26,7 @@ import org.springframework.batch.core.Job; import org.springframework.batch.core.JobExecution; import org.springframework.batch.core.JobParameter; import org.springframework.batch.core.JobParameters; +import org.springframework.batch.core.JobParametersBuilder; import org.springframework.batch.core.Step; import org.springframework.batch.core.job.AbstractJob; import org.springframework.batch.core.job.SimpleJob; @@ -165,6 +166,14 @@ public class JobLauncherTestUtils { return new JobParameters(parameters); } + /** + * @return a new JobParametersBuilder object containing only a parameter for the + * current timestamp, to ensure that the job instance will be unique. + */ + public JobParametersBuilder getUniqueJobParametersBuilder() { + return new JobParametersBuilder(this.getUniqueJobParameters()); + } + /** * Convenient method for subclasses to grab a {@link StepRunner} for running * steps by name.