IN PROGRESS - issue BATCH-340: Refactor JobRepository for greater clarity and consistency.

http://jira.springframework.org/browse/BATCH-340

JobInstance now has not-null Job as required constructor argument - repository no longer requires a separate Job setter
This commit is contained in:
robokaso
2008-02-25 13:50:53 +00:00
parent 1244264e50
commit 4e05642f98
24 changed files with 109 additions and 99 deletions

View File

@@ -16,6 +16,8 @@
package org.springframework.batch.core.domain;
import org.springframework.util.Assert;
/**
@@ -36,14 +38,11 @@ public class JobInstance extends Entity {
private int jobExecutionCount;
private JobExecution lastExecution;
public JobInstance(Long id, JobParameters jobParameters) {
super(id);
this.jobParameters = jobParameters==null ? new JobParameters() : jobParameters;
}
public JobInstance(Long id, JobParameters jobParameters, Job job){
this(id, jobParameters);
super(id);
Assert.notNull(job);
this.jobParameters = jobParameters==null ? new JobParameters() : jobParameters;
this.job = job;
}
@@ -92,7 +91,4 @@ public class JobInstance extends Entity {
return job;
}
public void setJob(Job job) {
this.job = job;
}
}

View File

@@ -93,7 +93,7 @@ public class JobExecutionTests extends TestCase {
*/
public void testGetJobId() {
assertEquals(11, execution.getJobId().longValue());
execution = new JobExecution(new JobInstance(new Long(23), new JobParameters()), null);
execution = new JobExecution(new JobInstance(new Long(23), new JobParameters(), new JobSupport("testJob")), null);
assertEquals(23, execution.getJobId().longValue());
}

View File

@@ -51,8 +51,6 @@ public class JobInstanceTests extends TestCase {
public void testGetJob(){
assertEquals("job", instance.getJob().getName());
instance.setJob(null);
assertEquals(null, instance.getJob());
}
public void testCreateJobExecution(){
@@ -62,8 +60,15 @@ public class JobInstanceTests extends TestCase {
}
public void testCreateWithNulls(){
instance = new JobInstance(null, null);
assertEquals(null, instance.getJobName());
try {
new JobInstance(null, null, null);
fail("job instance can't exist without job specified");
}
catch (IllegalArgumentException e) {
// expected
}
instance = new JobInstance(null, null, new JobSupport("testJob"));
assertEquals("testJob", instance.getJobName());
assertEquals(0, instance.getJobParameters().getParameters().size());
}
}

View File

@@ -260,7 +260,7 @@ public class StepExecutionTests extends TestCase {
}
private StepExecution newStepExecution(String stepName, Long long2) {
JobInstance job = new JobInstance(new Long(3), new JobParameters());
JobInstance job = new JobInstance(new Long(3), new JobParameters(), new JobSupport("testJob"));
StepExecution execution = new StepExecution(stepName, new JobExecution(job, long2), new Long(4));
return execution;
}

View File

@@ -160,7 +160,7 @@ public class SimpleJobRepository implements JobRepository {
* thread or process will block until this transaction has finished.
*/
jobInstances = jobInstanceDao.findJobInstances(job.getName(), jobParameters);
jobInstances = jobInstanceDao.findJobInstances(job, jobParameters);
}
if (jobInstances.size() == 1) {
@@ -188,7 +188,6 @@ public class SimpleJobRepository implements JobRepository {
}
}
jobInstance.setLastExecution(lastExecution);
jobInstance.setJob(job);
}
else if (jobInstances.size() == 0) {
// no job found, create one
@@ -286,8 +285,7 @@ public class SimpleJobRepository implements JobRepository {
*/
private JobInstance createJobInstance(Job job, JobParameters jobParameters) {
JobInstance jobInstance = jobInstanceDao.createJobInstance(job.getName(), jobParameters);
jobInstance.setJob(job);
JobInstance jobInstance = jobInstanceDao.createJobInstance(job, jobParameters);
return jobInstance;
}

View File

@@ -9,6 +9,7 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.springframework.batch.core.domain.Job;
import org.springframework.batch.core.domain.JobInstance;
import org.springframework.batch.core.domain.JobParameters;
import org.springframework.beans.factory.InitializingBean;
@@ -50,19 +51,20 @@ public class JdbcJobInstanceDao extends AbstractJdbcBatchMetadataDao implements
* @throws IllegalArgumentException if any {@link JobIdentifier} fields are
* null.
*/
public JobInstance createJobInstance(String jobName, JobParameters jobParameters) {
public JobInstance createJobInstance(Job job, JobParameters jobParameters) {
Assert.notNull(jobName, "Job Name must not be null.");
Assert.notNull(job, "Job must not be null.");
Assert.hasLength(job.getName(), "Job must have a name");
Assert.notNull(jobParameters, "JobParameters must not be null.");
Long jobId = new Long(jobIncrementer.nextLongValue());
Object[] parameters = new Object[] { jobId, jobName, createJobKey(jobParameters) };
Object[] parameters = new Object[] { jobId, job.getName(), createJobKey(jobParameters) };
getJdbcTemplate().update(getQuery(CREATE_JOB), parameters,
new int[] { Types.INTEGER, Types.VARCHAR, Types.VARCHAR });
insertJobParameters(jobId, jobParameters);
JobInstance jobInstance = new JobInstance(jobId, jobParameters);
JobInstance jobInstance = new JobInstance(jobId, jobParameters, job);
return jobInstance;
}
@@ -144,16 +146,17 @@ public class JdbcJobInstanceDao extends AbstractJdbcBatchMetadataDao implements
* @throws IllegalArgumentException if any {@link JobIdentifier} fields are
* null.
*/
public List findJobInstances(final String jobName, final JobParameters jobParameters) {
public List findJobInstances(final Job job, final JobParameters jobParameters) {
Assert.notNull(jobName, "Job Name must not be null.");
Assert.notNull(job, "Job must not be null.");
Assert.hasLength(job.getName(), "Job must have a name");
Assert.notNull(jobParameters, "JobParameters must not be null.");
Object[] parameters = new Object[] { jobName, createJobKey(jobParameters) };
Object[] parameters = new Object[] { job.getName(), createJobKey(jobParameters) };
RowMapper rowMapper = new RowMapper() {
public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
JobInstance jobInstance = new JobInstance(new Long(rs.getLong(1)), jobParameters);
JobInstance jobInstance = new JobInstance(new Long(rs.getLong(1)), jobParameters, job);
return jobInstance;
}
};

View File

@@ -2,6 +2,7 @@ package org.springframework.batch.execution.repository.dao;
import java.util.List;
import org.springframework.batch.core.domain.Job;
import org.springframework.batch.core.domain.JobInstance;
import org.springframework.batch.core.domain.JobParameters;
@@ -24,7 +25,7 @@ public interface JobInstanceDao {
* @param jobParameters
* @return JobInstance
*/
JobInstance createJobInstance(String jobName, JobParameters jobParameters);
JobInstance createJobInstance(Job job, JobParameters jobParameters);
/**
* Find all job instances that match the given name and parameters. If no
@@ -36,6 +37,6 @@ public interface JobInstanceDao {
* @return List of {@link JobInstance} objects matching
* {@link JobIdentifier}
*/
List findJobInstances(String jobName, JobParameters jobParameters);
List findJobInstances(Job job, JobParameters jobParameters);
}

View File

@@ -23,7 +23,7 @@ import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
import org.springframework.batch.core.domain.JobSupport;
import org.springframework.batch.core.domain.Job;
import org.springframework.batch.core.domain.JobExecution;
import org.springframework.batch.core.domain.JobInstance;
import org.springframework.batch.core.domain.JobParameters;
@@ -47,19 +47,18 @@ public class MapJobDao implements JobInstanceDao, JobExecutionDao {
executionsById.clear();
}
public JobInstance createJobInstance(String jobName, JobParameters jobParameters) {
JobInstance jobInstance = new JobInstance(new Long(currentId++), jobParameters);
jobInstance.setJob(new JobSupport(jobName));
public JobInstance createJobInstance(Job job, JobParameters jobParameters) {
JobInstance jobInstance = new JobInstance(new Long(currentId++), jobParameters, job);
jobsById.put(jobInstance.getId(), jobInstance);
return jobInstance;
}
public List findJobInstances(String jobName, JobParameters jobParameters) {
public List findJobInstances(Job job, JobParameters jobParameters) {
List list = new ArrayList();
for (Iterator iter = jobsById.values().iterator(); iter.hasNext();) {
JobInstance jobInstance = (JobInstance) iter.next();
if (jobInstance.getJobName().equals(jobName) && jobInstance.getJobParameters().equals(jobParameters)) {
if (jobInstance.getJobName().equals(job.getName()) && jobInstance.getJobParameters().equals(jobParameters)) {
list.add(jobInstance);
}
}

View File

@@ -16,8 +16,10 @@
package org.springframework.batch.execution.repository.dao;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
import org.springframework.batch.core.domain.JobExecution;
import org.springframework.batch.core.domain.StepExecution;
@@ -127,7 +129,13 @@ public class MapStepDao implements StepExecutionDao {
}
public StepExecution getStepExecution(JobExecution jobExecution, String stepName) {
// TODO Auto-generated method stub
// for (Iterator iterator = executionsById.entrySet().iterator(); iterator.hasNext();) {
// Entry entry = (Entry) iterator.next();
// StepExecution stepExecution = (StepExecution) entry.getValue();
// if (stepExecution.getJobExecution().equals(jobExecution) && stepExecution.getStepName().equals(stepName)){
// return stepExecution;
// }
// }
return null;
}

View File

@@ -252,7 +252,7 @@ public class SimpleJobTests extends TestCase {
* Check JobRepository to ensure status is being saved.
*/
private void checkRepository(BatchStatus status, ExitStatus exitStatus) {
assertEquals(jobInstance, jobInstanceDao.findJobInstances(jobInstance.getJobName(), jobParameters).get(0));
assertEquals(jobInstance, jobInstanceDao.findJobInstances(jobInstance.getJob(), jobParameters).get(0));
// because map dao stores in memory, it can be checked directly
JobExecution jobExecution = (JobExecution) jobExecutionDao.findJobExecutions(jobInstance).get(0);
assertEquals(jobInstance.getId(), jobExecution.getJobId());

View File

@@ -109,7 +109,7 @@ public class SimpleJobRepositoryTests extends TestCase {
jobConfiguration.setSteps(stepConfigurations);
databaseJob = new JobInstance(new Long(1), jobParameters) {
databaseJob = new JobInstance(new Long(1), jobParameters, jobConfiguration) {
public JobExecution createJobExecution() {
jobExecution = super.createJobExecution();
return jobExecution;
@@ -235,8 +235,8 @@ public class SimpleJobRepositoryTests extends TestCase {
List jobs = new ArrayList();
jobs.add(databaseJob);
jobs.add(new JobInstance(new Long(127), jobParameters));
jobInstanceDao.findJobInstances(jobConfiguration.getName(), jobParameters);
jobs.add(new JobInstance(new Long(127), jobParameters, jobConfiguration));
jobInstanceDao.findJobInstances(jobConfiguration, jobParameters);
jobInstanceDaoControl.setReturnValue(jobs);
jobInstanceDaoControl.replay();
@@ -256,7 +256,7 @@ public class SimpleJobRepositoryTests extends TestCase {
jobConfiguration.setStartLimit(1);
List jobs = new ArrayList();
jobInstanceDao.findJobInstances(jobConfiguration.getName(), jobParameters);
jobInstanceDao.findJobInstances(jobConfiguration, jobParameters);
jobs.add(databaseJob);
jobInstanceDaoControl.setReturnValue(jobs);
jobExecutionDao.getJobExecutionCount(databaseJob);
@@ -330,7 +330,7 @@ public class SimpleJobRepositoryTests extends TestCase {
public void testSaveOrUpdateValidJobExecution() throws Exception {
JobExecution jobExecution = new JobExecution(new JobInstance(new Long(1), jobParameters));
JobExecution jobExecution = new JobExecution(new JobInstance(new Long(1), jobParameters, jobConfiguration));
// new execution - call save on job dao
jobExecutionDao.saveJobExecution(jobExecution);

View File

@@ -74,7 +74,7 @@ public abstract class AbstractJobDaoTests extends AbstractTransactionalDataSourc
job = new JobSupport("Job1");
// Create job.
jobInstance = jobInstanceDao.createJobInstance(job.getName(), jobParameters);
jobInstance = jobInstanceDao.createJobInstance(job, jobParameters);
// Create an execution
jobExecutionStartTime = new Date(System.currentTimeMillis());
@@ -99,13 +99,13 @@ public abstract class AbstractJobDaoTests extends AbstractTransactionalDataSourc
public void testFindNonExistentJob() {
// No job should be found since it hasn't been created.
List jobs = jobInstanceDao.findJobInstances("nonexistentJob", jobParameters);
List jobs = jobInstanceDao.findJobInstances(new JobSupport("nonexistentJob"), jobParameters);
assertTrue(jobs.size() == 0);
}
public void testFindJob() {
List jobs = jobInstanceDao.findJobInstances(job.getName(), jobParameters);
List jobs = jobInstanceDao.findJobInstances(job, jobParameters);
assertTrue(jobs.size() == 1);
JobInstance tempJob = (JobInstance) jobs.get(0);
assertTrue(jobInstance.equals(tempJob));
@@ -130,19 +130,20 @@ public abstract class AbstractJobDaoTests extends AbstractTransactionalDataSourc
*/
public void testCreateJobWithExistingName() {
jobInstanceDao.createJobInstance("ScheduledJob", jobParameters);
Job scheduledJob = new JobSupport("ScheduledJob");
jobInstanceDao.createJobInstance(scheduledJob, jobParameters);
// Modifying the key should bring back a completely different
// JobInstance
JobParameters tempProps = new JobParametersBuilder().addString("job.key", "testKey1").toJobParameters();
List jobs;
jobs = jobInstanceDao.findJobInstances("ScheduledJob", jobParameters);
jobs = jobInstanceDao.findJobInstances(scheduledJob, jobParameters);
assertEquals(1, jobs.size());
JobInstance jobInstance = (JobInstance) jobs.get(0);
assertEquals(jobParameters, jobInstance.getJobParameters());
jobs = jobInstanceDao.findJobInstances("ScheduledJob", tempProps);
jobs = jobInstanceDao.findJobInstances(scheduledJob, tempProps);
assertEquals(0, jobs.size());
}
@@ -206,15 +207,16 @@ public abstract class AbstractJobDaoTests extends AbstractTransactionalDataSourc
public void testZeroExecutionCount() {
JobInstance testJob = jobInstanceDao.createJobInstance("test", new JobParameters());
JobInstance testJob = jobInstanceDao.createJobInstance(new JobSupport("test"), new JobParameters());
// no jobExecutions saved for new job, count should be 0
assertEquals(jobExecutionDao.getJobExecutionCount(testJob), 0);
}
public void testJobWithSimpleJobIdentifier() throws Exception {
Job testJob = new JobSupport("test");
// Create job.
jobInstance = jobInstanceDao.createJobInstance("test", jobParameters);
jobInstance = jobInstanceDao.createJobInstance(testJob, jobParameters);
List jobs = jdbcTemplate.queryForList("SELECT * FROM BATCH_JOB_INSTANCE where JOB_INSTANCE_ID=?",
new Object[] { jobInstance.getId() });
@@ -224,10 +226,12 @@ public abstract class AbstractJobDaoTests extends AbstractTransactionalDataSourc
}
public void testJobWithDefaultJobIdentifier() throws Exception {
Job testDefaultJob = new JobSupport("testDefault");
// Create job.
jobInstance = jobInstanceDao.createJobInstance("testDefault", jobParameters);
jobInstance = jobInstanceDao.createJobInstance(testDefaultJob, jobParameters);
List jobs = jobInstanceDao.findJobInstances("testDefault", jobParameters);
List jobs = jobInstanceDao.findJobInstances(testDefaultJob, jobParameters);
assertEquals(1, jobs.size());
assertEquals(jobParameters.getString("job.key"), ((JobInstance) jobs.get(0)).getJobParameters().getString(

View File

@@ -86,7 +86,7 @@ public abstract class AbstractStepDaoTests extends AbstractTransactionalDataSour
*/
protected void onSetUpInTransaction() throws Exception {
Job job = new JobSupport("TestJob");
jobInstance = jobInstanceDao.createJobInstance(job.getName(), jobParameters);
jobInstance = jobInstanceDao.createJobInstance(job, jobParameters);
step1 = "TestStep1";
step2 = "TestStep2";
jobExecution = new JobExecution(jobInstance);

View File

@@ -22,6 +22,7 @@ import junit.framework.TestCase;
import org.springframework.batch.core.domain.JobInstance;
import org.springframework.batch.core.domain.JobParameters;
import org.springframework.batch.core.domain.JobSupport;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.support.incrementer.DataFieldMaxValueIncrementer;
@@ -68,7 +69,7 @@ public class JdbcJobDaoQueryTests extends TestCase {
return 1;
}
});
jobExecutionDao.saveJobExecution(new JobInstance(new Long(11), new JobParameters()).createJobExecution());
jobExecutionDao.saveJobExecution(new JobInstance(new Long(11), new JobParameters(), new JobSupport("testJob")).createJobExecution());
assertEquals(1, list.size());
String query = (String) list.get(0);
assertTrue("Query did not contain FOO_:" + query, query.indexOf("FOO_") >= 0);

View File

@@ -8,6 +8,7 @@ import org.easymock.MockControl;
import org.springframework.batch.core.domain.JobExecution;
import org.springframework.batch.core.domain.JobInstance;
import org.springframework.batch.core.domain.JobParameters;
import org.springframework.batch.core.domain.JobSupport;
import org.springframework.batch.core.domain.StepExecution;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
@@ -29,7 +30,7 @@ public class JdbcStepDaoPrefixTests extends TestCase {
MockJdbcTemplate jdbcTemplate = new MockJdbcTemplate();
JobInstance job = new JobInstance(new Long(1), new JobParameters());
JobInstance job = new JobInstance(new Long(1), new JobParameters(), new JobSupport("testJob"));
String step = "foo";
StepExecution stepExecution = new StepExecution(step, new JobExecution(job), null);

View File

@@ -20,9 +20,11 @@ import java.util.List;
import junit.framework.TestCase;
import org.springframework.batch.core.domain.Job;
import org.springframework.batch.core.domain.JobExecution;
import org.springframework.batch.core.domain.JobInstance;
import org.springframework.batch.core.domain.JobParameters;
import org.springframework.batch.core.domain.JobSupport;
public class MapJobDaoTests extends TestCase {
@@ -30,44 +32,47 @@ public class MapJobDaoTests extends TestCase {
JobParameters jobParameters = new JobParameters();
Job fooJob = new JobSupport("foo");
protected void setUp() throws Exception {
MapJobDao.clear();
}
public void testCreateAndRetrieveSingle() throws Exception {
JobInstance job = dao.createJobInstance("foo", jobParameters);
List result = dao.findJobInstances("foo", jobParameters);
JobInstance job = dao.createJobInstance(fooJob, jobParameters);
List result = dao.findJobInstances(fooJob, jobParameters);
assertTrue(result.contains(job));
}
public void testCreateAndRetrieveMultiple() throws Exception {
JobInstance job = dao.createJobInstance("foo", jobParameters);
job = dao.createJobInstance("bar", jobParameters);
List result = dao.findJobInstances("bar", jobParameters);
JobInstance job = dao.createJobInstance(fooJob, jobParameters);
Job barJob = new JobSupport("bar");
job = dao.createJobInstance(barJob, jobParameters);
List result = dao.findJobInstances(barJob, jobParameters);
assertEquals(1, result.size());
assertTrue(result.contains(job));
}
public void testNoExecutionsForNewJob() throws Exception {
JobInstance job = dao.createJobInstance("foo", jobParameters);
JobInstance job = dao.createJobInstance(fooJob, jobParameters);
assertEquals(0, dao.getJobExecutionCount(job));
}
public void testSaveExecutionUpdatesId() throws Exception {
JobInstance job = dao.createJobInstance("foo", jobParameters);
JobInstance job = dao.createJobInstance(fooJob, jobParameters);
JobExecution execution = new JobExecution(job);
assertNull(execution.getId());
dao.saveJobExecution(execution);
assertNotNull(execution.getId());
}
public void testCorrectExecutionCountForExistingJob() throws Exception {
JobInstance job = dao.createJobInstance("foo", jobParameters);
JobInstance job = dao.createJobInstance(fooJob, jobParameters);
dao.saveJobExecution(new JobExecution(job));
assertEquals(1, dao.getJobExecutionCount(job));
}
public void testMultipleExecutionsPerExisting() throws Exception {
JobInstance job = dao.createJobInstance("foo", jobParameters);
JobInstance job = dao.createJobInstance(fooJob, jobParameters);
dao.saveJobExecution(new JobExecution(job));
Thread.sleep(50L); // Hack, hack, hackety, hack - job executions are not unique if created too close together!
dao.saveJobExecution(new JobExecution(job));
@@ -76,7 +81,7 @@ public class MapJobDaoTests extends TestCase {
public void testGetJobExecution(){
JobInstance jobInstance = dao.createJobInstance("foo", jobParameters);
JobInstance jobInstance = dao.createJobInstance(fooJob, jobParameters);
JobExecution jobExecution = new JobExecution(jobInstance);
dao.saveJobExecution(jobExecution);
JobExecution tempExecution = dao.getJobExecution(jobExecution.getId());
@@ -85,7 +90,7 @@ public class MapJobDaoTests extends TestCase {
public void testGetNonExistantJobExecution(){
JobInstance jobInstance = dao.createJobInstance("foo", jobParameters);
JobInstance jobInstance = dao.createJobInstance(fooJob, jobParameters);
JobExecution jobExecution = new JobExecution(jobInstance);
dao.saveJobExecution(jobExecution);
assertNull(dao.getJobExecution(new Long(999999)));

View File

@@ -16,11 +16,16 @@
package org.springframework.batch.execution.repository.dao;
import java.util.Properties;
import junit.framework.TestCase;
import org.springframework.batch.core.domain.JobExecution;
import org.springframework.batch.core.domain.JobInstance;
import org.springframework.batch.core.domain.JobParameters;
import org.springframework.batch.core.domain.JobSupport;
import org.springframework.batch.core.domain.StepExecution;
import org.springframework.batch.item.ExecutionContext;
public class MapStepDaoTests extends TestCase {
@@ -33,14 +38,10 @@ public class MapStepDaoTests extends TestCase {
protected void setUp() throws Exception {
MapStepDao.clear();
job = new JobInstance(new Long(jobId++), new JobParameters());
job = new JobInstance(new Long(jobId++), new JobParameters(), new JobSupport("testJob"));
step = "foo";
}
public void testNoExecutionsForNew() throws Exception {
// assertEquals(0, dao.getStepExecutionCount(step));
}
public void testSaveExecutionUpdatesId() throws Exception {
StepExecution execution = new StepExecution(step, null, null);
assertNull(execution.getId());
@@ -48,26 +49,16 @@ public class MapStepDaoTests extends TestCase {
assertNotNull(execution.getId());
}
public void testCorrectExecutionCountForExisting() throws Exception {
// dao.saveStepExecution(new StepExecution(step, null, null));
// assertEquals(1, dao.getStepExecutionCount(step));
}
public void testOnlyOneExecutionPerStep() throws Exception {
// dao.saveStepExecution(new StepExecution(step, null, null));
// dao.saveStepExecution(new StepExecution(step, null, null));
// assertEquals(2, dao.getStepExecutionCount(step));
}
public void testSaveExecutionContext() throws Exception {
// assertEquals(null, dao.getExecutionContext(step.getId()));
// JobExecution jobExecution = new JobExecution(null);
// StepExecution stepExecution = new StepExecution(step, jobExecution, null);
// assertEquals(null, dao.findExecutionContext(stepExecution));
// Properties data = new Properties();
// data.setProperty("restart.key1", "restartData");
// ExecutionContext executionContext = new ExecutionContext(data);
// StepExecution stepExecution = new StepExecution(step, null, null);
// stepExecution.setExecutionContext(executionContext);
// dao.saveStepExecution(stepExecution);
// StepExecution tempExecution = dao.getStepExecution(stepExecution.getId(), step);
// StepExecution tempExecution = dao.getStepExecution(jobExecution, step);
// assertEquals(tempExecution, stepExecution);
// assertEquals(stepExecution.getExecutionContext(), tempExecution.getExecutionContext());
}

View File

@@ -59,8 +59,7 @@ public class BatchResourceFactoryBeanTests extends TestCase {
protected void setUp() throws Exception {
jobInstance = new JobInstance(new Long(0), new JobParameters());
jobInstance.setJob(new JobSupport("testJob"));
jobInstance = new JobInstance(new Long(0), new JobParameters(), new JobSupport("testJob"));
JobExecution jobExecution = jobInstance.createJobExecution();
stepInstance = "bar";
resourceFactory.setStepContext(new SimpleStepContext(jobExecution.createStepExecution(stepInstance)));
@@ -99,8 +98,7 @@ public class BatchResourceFactoryBeanTests extends TestCase {
public void testNonStandardFilePatternWithJobParameters() throws Exception {
jobInstance = new JobInstance(new Long(0), new JobParametersBuilder().addString("job.key", "spam")
.toJobParameters());
jobInstance.setJob(new JobSupport("testJob"));
.toJobParameters(), new JobSupport("testJob"));
JobExecution jobExecution = jobInstance.createJobExecution();
stepInstance = "bar";
resourceFactory.setStepContext(new SimpleStepContext(jobExecution.createStepExecution(stepInstance)));

View File

@@ -95,9 +95,7 @@ public class ChunkedStepTests extends TestCase {
// Only process one item:
chunkedStep.setChunkSize(1);
jobInstance = new JobInstance(new Long(0), new JobParameters());
jobInstance.setJob(new JobSupport("FOO"));
jobInstance = new JobInstance(new Long(0), new JobParameters(), new JobSupport("FOO"));
SimpleStreamManager streamManager = new SimpleStreamManager(transactionManager);
streamManager.setUseClassNameAsPrefix(false);
chunkedStep.setStreamManager(streamManager);

View File

@@ -108,8 +108,7 @@ public class ItemOrientedStepTests extends TestCase {
template.setCompletionPolicy(new SimpleCompletionPolicy(1));
itemOrientedStep.setChunkOperations(template);
jobInstance = new JobInstance(new Long(0), new JobParameters());
jobInstance.setJob(new JobSupport("FOO"));
jobInstance = new JobInstance(new Long(0), new JobParameters(), new JobSupport("FOO"));
SimpleStreamManager streamManager = new SimpleStreamManager(transactionManager);
streamManager.setUseClassNameAsPrefix(false);

View File

@@ -9,6 +9,7 @@ import org.springframework.batch.core.domain.JobExecution;
import org.springframework.batch.core.domain.JobInstance;
import org.springframework.batch.core.domain.JobInterruptedException;
import org.springframework.batch.core.domain.JobParameters;
import org.springframework.batch.core.domain.JobSupport;
import org.springframework.batch.core.domain.StepExecution;
import org.springframework.batch.core.tasklet.Tasklet;
import org.springframework.batch.execution.step.TaskletStep;
@@ -26,7 +27,7 @@ public class TaskletStepTests extends TestCase {
protected void setUp() throws Exception {
stepExecution = new StepExecution("stepName", new JobExecution(new JobInstance(
new Long(0L), new JobParameters()), new Long(12)));
new Long(0L), new JobParameters(), new JobSupport("testJob")), new Long(12)));
}
public void testTaskletMandatory() throws Exception {

View File

@@ -23,6 +23,7 @@ import junit.framework.TestCase;
import org.springframework.batch.core.domain.JobExecution;
import org.springframework.batch.core.domain.JobInstance;
import org.springframework.batch.core.domain.JobParameters;
import org.springframework.batch.core.domain.JobSupport;
import org.springframework.batch.core.domain.StepExecution;
import org.springframework.batch.execution.step.ItemOrientedStep;
import org.springframework.batch.item.reader.AbstractItemReader;
@@ -92,7 +93,7 @@ public class RepeatOperationsStepTests extends TestCase {
configuration.setChunkOperations(repeatTemplate);
configuration.setJobRepository(new JobRepositorySupport());
configuration.setTransactionManager(new ResourcelessTransactionManager());
StepExecution stepExecution = new StepExecution("stepName", new JobExecution(new JobInstance(new Long(0L), new JobParameters()),
StepExecution stepExecution = new StepExecution("stepName", new JobExecution(new JobInstance(new Long(0L), new JobParameters(), new JobSupport("testJob")),
new Long(12)));
configuration.afterPropertiesSet();
try {
@@ -133,7 +134,7 @@ public class RepeatOperationsStepTests extends TestCase {
configuration.setStepOperations(stepTemplate);
configuration.setJobRepository(new JobRepositorySupport());
configuration.setTransactionManager(new ResourcelessTransactionManager());
StepExecution stepExecution = new StepExecution("stepName", new JobExecution(new JobInstance(new Long(0L), new JobParameters()),
StepExecution stepExecution = new StepExecution("stepName", new JobExecution(new JobInstance(new Long(0L), new JobParameters(), new JobSupport("testJob")),
new Long(12)));
configuration.afterPropertiesSet();
configuration.execute(stepExecution);

View File

@@ -79,7 +79,7 @@ public class StepExecutorInterruptionTests extends TestCase {
List steps = jobInstance.getJob().getSteps();
final String stepName = ((Step)steps.get(0)).getName();
JobExecution jobExecutionContext = new JobExecution(new JobInstance(new Long(0L), new JobParameters()));
JobExecution jobExecutionContext = new JobExecution(new JobInstance(new Long(0L), new JobParameters(), new JobSupport("testJob")));
final StepExecution stepExecution = new StepExecution(stepName, jobExecutionContext);
step.setItemReader(new AbstractItemReader() {
public Object read() throws Exception {

View File

@@ -3,6 +3,7 @@ package org.springframework.batch.sample.item.reader;
import org.springframework.batch.core.domain.JobExecution;
import org.springframework.batch.core.domain.JobInstance;
import org.springframework.batch.core.domain.JobParameters;
import org.springframework.batch.core.domain.JobSupport;
import org.springframework.batch.core.domain.StepExecution;
import org.springframework.batch.execution.scope.SimpleStepContext;
import org.springframework.batch.execution.scope.StepContext;
@@ -36,7 +37,7 @@ public class StagingItemReaderTests extends AbstractTransactionalDataSourceSprin
protected void prepareTestInstance() throws Exception {
StepContext stepScopeContext = new SimpleStepContext(new StepExecution("stepName",
new JobExecution(new JobInstance(jobId, new JobParameters()))));
new JobExecution(new JobInstance(jobId, new JobParameters(), new JobSupport("testJob")))));
StepSynchronizationManager.register(stepScopeContext);
RepeatSynchronizationManager.register(new RepeatContextSupport(null));
super.prepareTestInstance();