Add getUniqueJobParametersBuilder() method in JobLauncherTestUtils

Issue #767
This commit is contained in:
이동욱
2019-10-06 21:05:14 +09:00
committed by Mahmoud Ben Hassine
parent ac485ee326
commit 60bbc0052a
7 changed files with 24 additions and 10 deletions

View File

@@ -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

View File

@@ -38,7 +38,7 @@ public class DelimitedFunctionalTests extends AbstractIoSampleTests {
@Override
protected void pointReaderToOutput(ItemReader<CustomerCredit> 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();
}

View File

@@ -33,7 +33,7 @@ public class FixedLengthFunctionalTests extends AbstractIoSampleTests {
@Override
protected void pointReaderToOutput(ItemReader<CustomerCredit> 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();
}

View File

@@ -38,7 +38,7 @@ public class JdbcPagingFunctionalTests extends AbstractIoSampleTests {
@Override
protected void pointReaderToOutput(ItemReader<CustomerCredit> 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();
}
}

View File

@@ -37,7 +37,7 @@ public class MultiResourceFunctionalTests extends AbstractIoSampleTests {
@Override
protected void pointReaderToOutput(ItemReader<CustomerCredit> 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();
}

View File

@@ -32,7 +32,7 @@ public class RepositoryFunctionalTests extends AbstractIoSampleTests {
@Override
protected void pointReaderToOutput(ItemReader<CustomerCredit> 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();
}
}

View File

@@ -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.