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:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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)));
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
@@ -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)));
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user