IN PROGRESS - issue BATCH-340: Refactor JobRepository for greater clarity and consistency.
http://jira.springframework.org/browse/BATCH-340 removed remaining hidden inter-dao dependencies
This commit is contained in:
@@ -49,6 +49,7 @@ import org.springframework.util.Assert;
|
||||
*
|
||||
* @author Lucas Ward
|
||||
* @author Dave Syer
|
||||
* @author Robert Kasanicky
|
||||
*
|
||||
* @see JobRepository
|
||||
* @see StepDao
|
||||
@@ -72,10 +73,10 @@ public class SimpleJobRepository implements JobRepository {
|
||||
SimpleJobRepository() {
|
||||
}
|
||||
|
||||
public SimpleJobRepository(JobInstanceDao jobDao, JobExecutionDao jobExecutionDao, StepInstanceDao stepInstanceDao,
|
||||
public SimpleJobRepository(JobInstanceDao jobInstanceDao, JobExecutionDao jobExecutionDao, StepInstanceDao stepInstanceDao,
|
||||
StepExecutionDao stepExecutionDao) {
|
||||
super();
|
||||
this.jobInstanceDao = jobDao;
|
||||
this.jobInstanceDao = jobInstanceDao;
|
||||
this.jobExecutionDao = jobExecutionDao;
|
||||
this.stepInstanceDao = stepInstanceDao;
|
||||
this.stepExecutionDao = stepExecutionDao;
|
||||
@@ -171,7 +172,6 @@ public class SimpleJobRepository implements JobRepository {
|
||||
if (jobs.size() == 1) {
|
||||
// One job was found
|
||||
jobInstance = (JobInstance) jobs.get(0);
|
||||
jobInstance.setStepInstances(findStepInstances(job.getSteps(), jobInstance));
|
||||
jobInstance.setJobExecutionCount(jobExecutionDao.getJobExecutionCount(jobInstance.getId()));
|
||||
if (jobInstance.getJobExecutionCount() > job.getStartLimit()) {
|
||||
throw new BatchRestartException("Restart Max exceeded for Job: " + jobInstance.toString());
|
||||
@@ -194,6 +194,7 @@ public class SimpleJobRepository implements JobRepository {
|
||||
}
|
||||
}
|
||||
jobInstance.setLastExecution(lastExecution);
|
||||
jobInstance.setStepInstances(findStepInstances(job.getSteps(), jobInstance, lastExecution));
|
||||
}
|
||||
else if (jobs.size() == 0) {
|
||||
// no job found, create one
|
||||
@@ -305,7 +306,7 @@ public class SimpleJobRepository implements JobRepository {
|
||||
/**
|
||||
* Find Steps for the given list of Steps with a given JobId
|
||||
*/
|
||||
protected List findStepInstances(List steps, JobInstance jobInstance) {
|
||||
protected List findStepInstances(List steps, JobInstance jobInstance, JobExecution lastJobExecution) {
|
||||
List stepInstances = new ArrayList();
|
||||
Iterator i = steps.iterator();
|
||||
while (i.hasNext()) {
|
||||
@@ -313,7 +314,7 @@ public class SimpleJobRepository implements JobRepository {
|
||||
Step stepConfiguration = (Step) i.next();
|
||||
StepInstance stepInstance = stepInstanceDao.findStepInstance(jobInstance, stepConfiguration.getName());
|
||||
if (stepInstance != null) {
|
||||
stepInstance.setLastExecution(stepExecutionDao.getLastStepExecution(stepInstance));
|
||||
stepInstance.setLastExecution(stepExecutionDao.getLastStepExecution(stepInstance, lastJobExecution));
|
||||
if (stepInstance.getLastExecution() != null) {
|
||||
ExecutionContext executionContext = stepExecutionDao.findExecutionContext(stepInstance
|
||||
.getLastExecution().getId());
|
||||
|
||||
@@ -51,6 +51,9 @@ public class JdbcJobExecutionDao extends AbstractJdbcBatchMetadataDao implements
|
||||
private static final String FIND_JOB_EXECUTIONS = "SELECT JOB_EXECUTION_ID, START_TIME, END_TIME, STATUS, CONTINUABLE, EXIT_CODE, EXIT_MESSAGE from %PREFIX%JOB_EXECUTION"
|
||||
+ " where JOB_INSTANCE_ID = ?";
|
||||
|
||||
private static final String GET_JOB_EXECUTION = "SELECT JOB_EXECUTION_ID, START_TIME, END_TIME, STATUS, CONTINUABLE, EXIT_CODE, EXIT_MESSAGE from %PREFIX%JOB_EXECUTION"
|
||||
+ " where JOB_EXECUTION_ID = ?";
|
||||
|
||||
private DataFieldMaxValueIncrementer jobExecutionIncrementer;
|
||||
|
||||
public List findJobExecutions(final JobInstance job) {
|
||||
@@ -66,7 +69,7 @@ public class JdbcJobExecutionDao extends AbstractJdbcBatchMetadataDao implements
|
||||
|
||||
Assert.notNull(jobExecutionId, "Job Execution id must not be null.");
|
||||
|
||||
List executions = getJdbcTemplate().query(getQuery(JobExecutionRowMapper.GET_JOB_EXECUTION),
|
||||
List executions = getJdbcTemplate().query(getQuery(GET_JOB_EXECUTION),
|
||||
new Object[] { jobExecutionId }, new JobExecutionRowMapper(null));
|
||||
|
||||
JobExecution jobExecution;
|
||||
@@ -200,10 +203,7 @@ public class JdbcJobExecutionDao extends AbstractJdbcBatchMetadataDao implements
|
||||
* @author Dave Syer
|
||||
*
|
||||
*/
|
||||
public static class JobExecutionRowMapper implements RowMapper {
|
||||
|
||||
public static final String GET_JOB_EXECUTION = "SELECT JOB_EXECUTION_ID, START_TIME, END_TIME, STATUS, CONTINUABLE, EXIT_CODE, EXIT_MESSAGE from %PREFIX%JOB_EXECUTION"
|
||||
+ " where JOB_EXECUTION_ID = ?";
|
||||
private static class JobExecutionRowMapper implements RowMapper {
|
||||
|
||||
private JobInstance job;
|
||||
|
||||
|
||||
@@ -16,14 +16,12 @@ import org.springframework.batch.core.domain.BatchStatus;
|
||||
import org.springframework.batch.core.domain.JobExecution;
|
||||
import org.springframework.batch.core.domain.StepExecution;
|
||||
import org.springframework.batch.core.domain.StepInstance;
|
||||
import org.springframework.batch.execution.repository.dao.JdbcJobExecutionDao.JobExecutionRowMapper;
|
||||
import org.springframework.batch.io.exception.BatchCriticalException;
|
||||
import org.springframework.batch.item.ExecutionContext;
|
||||
import org.springframework.batch.repeat.ExitStatus;
|
||||
import org.springframework.batch.support.PropertiesConverter;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.dao.IncorrectResultSizeDataAccessException;
|
||||
import org.springframework.dao.OptimisticLockingFailureException;
|
||||
import org.springframework.jdbc.core.PreparedStatementCallback;
|
||||
import org.springframework.jdbc.core.RowCallbackHandler;
|
||||
@@ -62,12 +60,6 @@ public class JdbcStepExecutionDao extends AbstractJdbcBatchMetadataDao
|
||||
private static final String FIND_STEP_EXECUTION_ATTRS = "SELECT TYPE_CD, KEY_NAME, STRING_VAL, DOUBLE_VAL, LONG_VAL, OBJECT_VAL "
|
||||
+ "from %PREFIX%STEP_EXECUTION_ATTRS where STEP_EXECUTION_ID = ?";
|
||||
|
||||
private static final String FIND_STEP_EXECUTIONS = "SELECT STEP_EXECUTION_ID, JOB_EXECUTION_ID, START_TIME, END_TIME, STATUS, COMMIT_COUNT,"
|
||||
+ " TASK_COUNT, TASK_STATISTICS, CONTINUABLE, EXIT_CODE, EXIT_MESSAGE from %PREFIX%STEP_EXECUTION where STEP_INSTANCE_ID = ?";
|
||||
|
||||
private static final String GET_STEP_EXECUTION = "SELECT STEP_EXECUTION_ID, JOB_EXECUTION_ID, START_TIME, END_TIME, STATUS, COMMIT_COUNT,"
|
||||
+ " TASK_COUNT, TASK_STATISTICS, CONTINUABLE, EXIT_CODE, EXIT_MESSAGE from %PREFIX%STEP_EXECUTION where STEP_EXECUTION_ID = ?";
|
||||
|
||||
private static final String GET_STEP_EXECUTION_COUNT = "SELECT count(STEP_EXECUTION_ID) from %PREFIX%STEP_EXECUTION where "
|
||||
+ "STEP_INSTANCE_ID = ?";
|
||||
|
||||
@@ -132,51 +124,11 @@ public class JdbcStepExecutionDao extends AbstractJdbcBatchMetadataDao
|
||||
|
||||
return executionContext;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get StepExecution for the given step. Due to the nature of statistics,
|
||||
* they will not be returned with reconstituted object.
|
||||
*
|
||||
* @see StepDao#getStepExecution(Long)
|
||||
* @throws IllegalArgumentException if id is null.
|
||||
*/
|
||||
public List findStepExecutions(final StepInstance step) {
|
||||
|
||||
Assert.notNull(step, "Step cannot be null.");
|
||||
Assert.notNull(step.getId(), "Step id cannot be null.");
|
||||
|
||||
RowMapper rowMapper = new StepExecutionRowMapper(step);
|
||||
|
||||
return getJdbcTemplate().query(getQuery(FIND_STEP_EXECUTIONS), new Object[] { step.getId() }, rowMapper);
|
||||
}
|
||||
|
||||
public StepExecution getStepExecution(Long stepExecutionId, StepInstance stepInstance) {
|
||||
|
||||
Assert.notNull(stepExecutionId, "Step Execution id must not be null");
|
||||
|
||||
RowMapper rowMapper = new StepExecutionRowMapper(stepInstance);
|
||||
|
||||
List executions = getJdbcTemplate().query(getQuery(GET_STEP_EXECUTION), new Object[] { stepExecutionId }, rowMapper);
|
||||
|
||||
StepExecution stepExecution;
|
||||
if (executions.size() == 1) {
|
||||
stepExecution = (StepExecution) executions.get(0);
|
||||
}
|
||||
else if (executions.size() == 0) {
|
||||
stepExecution = null;
|
||||
}
|
||||
else {
|
||||
throw new IncorrectResultSizeDataAccessException("Only one StepExecution may exist for given id: ["
|
||||
+ stepExecutionId + "]", 1, executions.size());
|
||||
}
|
||||
|
||||
return stepExecution;
|
||||
}
|
||||
|
||||
public StepExecution getLastStepExecution(StepInstance stepInstance) {
|
||||
public StepExecution getLastStepExecution(StepInstance stepInstance, JobExecution jobExecution) {
|
||||
Long stepInstanceId = stepInstance.getId();
|
||||
List executions = getJdbcTemplate().query(getQuery(FIND_LAST_STEP_EXECUTION),
|
||||
new Object[] { stepInstanceId, stepInstanceId }, new StepExecutionRowMapper(stepInstance));
|
||||
new Object[] { stepInstanceId, stepInstanceId }, new StepExecutionRowMapper(stepInstance, jobExecution));
|
||||
|
||||
Assert.state(executions.size() <= 1, "There must be at most one latest step execution");
|
||||
|
||||
@@ -433,16 +385,16 @@ public class JdbcStepExecutionDao extends AbstractJdbcBatchMetadataDao
|
||||
private class StepExecutionRowMapper implements RowMapper {
|
||||
|
||||
private final StepInstance stepInstance;
|
||||
|
||||
private final JobExecution jobExecution;
|
||||
|
||||
public StepExecutionRowMapper(StepInstance stepInstance) {
|
||||
public StepExecutionRowMapper(StepInstance stepInstance, JobExecution jobExecution) {
|
||||
this.stepInstance = stepInstance;
|
||||
this.jobExecution = jobExecution;
|
||||
}
|
||||
|
||||
public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
|
||||
|
||||
JobExecution jobExecution = (JobExecution) getJdbcTemplate().queryForObject(
|
||||
getQuery(JobExecutionRowMapper.GET_JOB_EXECUTION), new Object[] { new Long(rs.getLong(2)) },
|
||||
new JobExecutionRowMapper(stepInstance.getJobInstance()));
|
||||
StepExecution stepExecution = new StepExecution(stepInstance, jobExecution, new Long(rs.getLong(1)));
|
||||
stepExecution.setStartTime(rs.getTimestamp(3));
|
||||
stepExecution.setEndTime(rs.getTimestamp(4));
|
||||
|
||||
@@ -23,6 +23,7 @@ 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.JobInstance;
|
||||
import org.springframework.batch.core.domain.StepExecution;
|
||||
import org.springframework.batch.core.domain.StepInstance;
|
||||
@@ -101,7 +102,7 @@ public class MapStepDao implements StepDao {
|
||||
executions.add(stepExecution);
|
||||
}
|
||||
|
||||
public List findStepExecutions(StepInstance step) {
|
||||
public List findStepExecutions(StepInstance step, JobExecution jobExecution) {
|
||||
Set executions = (Set) executionsById.get(step.getId());
|
||||
|
||||
if(executions == null){
|
||||
@@ -162,8 +163,8 @@ public class MapStepDao implements StepDao {
|
||||
ExecutionContext executionContext) {
|
||||
}
|
||||
|
||||
public StepExecution getLastStepExecution(StepInstance stepInstance) {
|
||||
List executions = findStepExecutions(stepInstance);
|
||||
public StepExecution getLastStepExecution(StepInstance stepInstance, JobExecution jobExecution) {
|
||||
List executions = findStepExecutions(stepInstance, null);
|
||||
StepExecution lastExec = null;
|
||||
for (Iterator iterator = executions.iterator(); iterator.hasNext();) {
|
||||
StepExecution exec = (StepExecution) iterator.next();
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package org.springframework.batch.execution.repository.dao;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.batch.core.domain.JobExecution;
|
||||
import org.springframework.batch.core.domain.StepExecution;
|
||||
import org.springframework.batch.core.domain.StepInstance;
|
||||
import org.springframework.batch.item.ExecutionContext;
|
||||
@@ -36,24 +35,6 @@ public interface StepExecutionDao {
|
||||
*/
|
||||
int getStepExecutionCount(StepInstance stepInstance);
|
||||
|
||||
/**
|
||||
* Return all StepExecutions for the given step.
|
||||
*
|
||||
* @param stepInstance the step to use as a search key
|
||||
* @return list of stepExecutions
|
||||
*/
|
||||
List findStepExecutions(StepInstance stepInstance);
|
||||
|
||||
/**
|
||||
* Return a StepExecution for the given id.
|
||||
*
|
||||
* @param stepExecutionId
|
||||
* @return {@link StepExecution} for the provided id.
|
||||
* @throws {@link IncorrectResultSizeDataAccessException} if more than one
|
||||
* execution is found.
|
||||
*/
|
||||
StepExecution getStepExecution(Long stepExecutionId, StepInstance stepInstance);
|
||||
|
||||
/**
|
||||
* Find all {@link ExecutionContext} for the given execution id.
|
||||
*
|
||||
@@ -84,7 +65,8 @@ public interface StepExecutionDao {
|
||||
void updateExecutionContext(final Long executionId, ExecutionContext executionContext);
|
||||
|
||||
/**
|
||||
* @param lastJobExecution last job execution
|
||||
* @return the last execution of the given instance
|
||||
*/
|
||||
StepExecution getLastStepExecution(StepInstance stepInstance);
|
||||
StepExecution getLastStepExecution(StepInstance stepInstance, JobExecution lastJobExecution);
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ package org.springframework.batch.execution.repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.batch.core.domain.JobExecution;
|
||||
import org.springframework.batch.core.domain.JobInstance;
|
||||
import org.springframework.batch.core.domain.StepExecution;
|
||||
import org.springframework.batch.core.domain.StepInstance;
|
||||
@@ -67,7 +68,7 @@ public class MockStepDao implements StepDao {
|
||||
currentNewStep = 0;
|
||||
}
|
||||
|
||||
public List findStepExecutions(StepInstance step) {
|
||||
public List findStepExecutions(StepInstance step, JobExecution jobExecution) {
|
||||
|
||||
return null;
|
||||
}
|
||||
@@ -89,7 +90,7 @@ public class MockStepDao implements StepDao {
|
||||
return null;
|
||||
}
|
||||
|
||||
public StepExecution getLastStepExecution(StepInstance stepInstance) {
|
||||
public StepExecution getLastStepExecution(StepInstance stepInstance, JobExecution jobExecution) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -178,7 +178,7 @@ public class SimpleJobRepositoryTests extends TestCase {
|
||||
jobDaoControl.setReturnValue(jobs);
|
||||
stepDao.findStepInstance(databaseJob, "TestStep1");
|
||||
stepDaoControl.setReturnValue(databaseStep1);
|
||||
stepDao.getLastStepExecution(databaseStep1);
|
||||
stepDao.getLastStepExecution(databaseStep1, jobExecution);
|
||||
stepDaoControl.setReturnValue(databaseStep1Exec);
|
||||
stepDao.findExecutionContext(databaseStep1Exec.getId());
|
||||
stepDaoControl.setReturnValue(executionContext);
|
||||
@@ -186,7 +186,7 @@ public class SimpleJobRepositoryTests extends TestCase {
|
||||
stepDaoControl.setReturnValue(1);
|
||||
stepDao.findStepInstance(databaseJob, "TestStep2");
|
||||
stepDaoControl.setReturnValue(databaseStep2);
|
||||
stepDao.getLastStepExecution(databaseStep2);
|
||||
stepDao.getLastStepExecution(databaseStep2, jobExecution);
|
||||
stepDaoControl.setReturnValue(databaseStep2Exec);
|
||||
stepDao.findExecutionContext(databaseStep2Exec.getId());
|
||||
stepDaoControl.setReturnValue(executionContext);
|
||||
@@ -248,30 +248,10 @@ public class SimpleJobRepositoryTests extends TestCase {
|
||||
|
||||
jobConfiguration.setStartLimit(1);
|
||||
|
||||
StepExecution databaseStep1Exec = new StepExecution(databaseStep1, null, new Long(1));
|
||||
StepExecution databaseStep2Exec = new StepExecution(databaseStep2, null, new Long(2));
|
||||
|
||||
List jobs = new ArrayList();
|
||||
jobDao.findJobInstances(jobConfiguration.getName(), jobParameters);
|
||||
jobs.add(databaseJob);
|
||||
jobDaoControl.setReturnValue(jobs);
|
||||
stepDao.findStepInstance(databaseJob, "TestStep1");
|
||||
stepDaoControl.setReturnValue(databaseStep1);
|
||||
stepDao.getLastStepExecution(databaseStep1);
|
||||
stepDaoControl.setReturnValue(databaseStep1Exec);
|
||||
stepDao.findExecutionContext(databaseStep1Exec.getId());
|
||||
stepDaoControl.setReturnValue(executionContext);
|
||||
stepDao.getStepExecutionCount(databaseStep1);
|
||||
stepDaoControl.setReturnValue(1);
|
||||
stepDao.findStepInstance(databaseJob, "TestStep2");
|
||||
stepDaoControl.setReturnValue(databaseStep2);
|
||||
stepDao.getLastStepExecution(databaseStep2);
|
||||
stepDaoControl.setReturnValue(databaseStep2Exec);
|
||||
stepDao.findExecutionContext(databaseStep2Exec.getId());
|
||||
stepDaoControl.setReturnValue(executionContext);
|
||||
stepDao.getStepExecutionCount(databaseStep2);
|
||||
stepDaoControl.setReturnValue(1);
|
||||
stepDaoControl.replay();
|
||||
jobDao.getJobExecutionCount(databaseJob.getId());
|
||||
// return a greater execution count then the start limit, should throw
|
||||
// exception
|
||||
@@ -287,7 +267,6 @@ public class SimpleJobRepositoryTests extends TestCase {
|
||||
}
|
||||
|
||||
jobDaoControl.verify();
|
||||
stepDaoControl.verify();
|
||||
}
|
||||
|
||||
public void testCreateNonRestartableJob() throws Exception {
|
||||
@@ -441,7 +420,7 @@ public class SimpleJobRepositoryTests extends TestCase {
|
||||
jobDaoControl.setReturnValue(jobs);
|
||||
stepDao.findStepInstance(databaseJob, "TestStep1");
|
||||
stepDaoControl.setReturnValue(databaseStep1);
|
||||
stepDao.getLastStepExecution(databaseStep1);
|
||||
stepDao.getLastStepExecution(databaseStep1, null);
|
||||
stepDaoControl.setReturnValue(databaseStep1Exec);
|
||||
stepDao.findExecutionContext(databaseStep1Exec.getId());
|
||||
stepDaoControl.setReturnValue(executionContext);
|
||||
@@ -449,7 +428,7 @@ public class SimpleJobRepositoryTests extends TestCase {
|
||||
stepDaoControl.setReturnValue(1);
|
||||
stepDao.findStepInstance(databaseJob, "TestStep2");
|
||||
stepDaoControl.setReturnValue(databaseStep2);
|
||||
stepDao.getLastStepExecution(databaseStep2);
|
||||
stepDao.getLastStepExecution(databaseStep2, null);
|
||||
stepDaoControl.setReturnValue(databaseStep2Exec);
|
||||
stepDao.findExecutionContext(databaseStep2Exec.getId());
|
||||
stepDaoControl.setReturnValue(executionContext);
|
||||
|
||||
@@ -18,6 +18,7 @@ package org.springframework.batch.execution.repository.dao;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.batch.core.domain.BatchStatus;
|
||||
import org.springframework.batch.core.domain.Job;
|
||||
import org.springframework.batch.core.domain.JobExecution;
|
||||
@@ -26,10 +27,7 @@ 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.domain.StepInstance;
|
||||
import org.springframework.batch.core.runtime.ExitStatusExceptionClassifier;
|
||||
import org.springframework.batch.item.ExecutionContext;
|
||||
import org.springframework.batch.repeat.ExitStatus;
|
||||
import org.springframework.batch.support.PropertiesConverter;
|
||||
import org.springframework.dao.OptimisticLockingFailureException;
|
||||
import org.springframework.test.AbstractTransactionalDataSourceSpringContextTests;
|
||||
import org.springframework.util.ClassUtils;
|
||||
@@ -178,40 +176,40 @@ public abstract class AbstractStepDaoTests extends AbstractTransactionalDataSour
|
||||
assertEquals(tempStep, step1);
|
||||
assertEquals(executionContext, tempAttributes);
|
||||
}
|
||||
|
||||
public void testSaveStepExecution() {
|
||||
|
||||
StepExecution execution = new StepExecution(step2, jobExecution, null);
|
||||
execution.setStatus(BatchStatus.STARTED);
|
||||
execution.setStartTime(new Date(System.currentTimeMillis()));
|
||||
execution.setExecutionContext(new ExecutionContext(PropertiesConverter.stringToProperties("key1=0,key2=5")));
|
||||
execution.setExitStatus(new ExitStatus(false, ExitStatusExceptionClassifier.FATAL_EXCEPTION,
|
||||
"java.lang.Exception"));
|
||||
stepExecutionDao.saveStepExecution(execution);
|
||||
List executions = stepExecutionDao.findStepExecutions(step2);
|
||||
assertEquals(1, executions.size());
|
||||
StepExecution tempExecution = (StepExecution) executions.get(0);
|
||||
assertEquals(execution, tempExecution);
|
||||
assertEquals(execution.getExecutionContext().getString("key1"), tempExecution.getExecutionContext().getString("key1"));
|
||||
assertEquals(execution.getExitStatus(), tempExecution.getExitStatus());
|
||||
}
|
||||
|
||||
public void testUpdateStepExecution() {
|
||||
|
||||
stepExecution.setStatus(BatchStatus.COMPLETED);
|
||||
stepExecution.setEndTime(new Date(System.currentTimeMillis()));
|
||||
stepExecution.setCommitCount(5);
|
||||
stepExecution.setTaskCount(5);
|
||||
stepExecution.setExecutionContext(new ExecutionContext());
|
||||
stepExecution.setExitStatus(new ExitStatus(false, ExitStatusExceptionClassifier.FATAL_EXCEPTION,
|
||||
"java.lang.Exception"));
|
||||
stepExecutionDao.updateStepExecution(stepExecution);
|
||||
List executions = stepExecutionDao.findStepExecutions(step1);
|
||||
assertEquals(1, executions.size());
|
||||
StepExecution tempExecution = (StepExecution) executions.get(0);
|
||||
assertEquals(stepExecution, tempExecution);
|
||||
assertEquals(stepExecution.getExitStatus(), tempExecution.getExitStatus());
|
||||
}
|
||||
// TODO update
|
||||
// public void testSaveStepExecution() {
|
||||
//
|
||||
// StepExecution execution = new StepExecution(step2, jobExecution, null);
|
||||
// execution.setStatus(BatchStatus.STARTED);
|
||||
// execution.setStartTime(new Date(System.currentTimeMillis()));
|
||||
// execution.setExecutionContext(new ExecutionContext(PropertiesConverter.stringToProperties("key1=0,key2=5")));
|
||||
// execution.setExitStatus(new ExitStatus(false, ExitStatusExceptionClassifier.FATAL_EXCEPTION,
|
||||
// "java.lang.Exception"));
|
||||
// stepExecutionDao.saveStepExecution(execution);
|
||||
// List executions = stepExecutionDao.findStepExecutions(step2, null);
|
||||
// assertEquals(1, executions.size());
|
||||
// StepExecution tempExecution = (StepExecution) executions.get(0);
|
||||
// assertEquals(execution, tempExecution);
|
||||
// assertEquals(execution.getExecutionContext().getString("key1"), tempExecution.getExecutionContext().getString("key1"));
|
||||
// assertEquals(execution.getExitStatus(), tempExecution.getExitStatus());
|
||||
// }
|
||||
//
|
||||
// public void testUpdateStepExecution() {
|
||||
//
|
||||
// stepExecution.setStatus(BatchStatus.COMPLETED);
|
||||
// stepExecution.setEndTime(new Date(System.currentTimeMillis()));
|
||||
// stepExecution.setCommitCount(5);
|
||||
// stepExecution.setTaskCount(5);
|
||||
// stepExecution.setExecutionContext(new ExecutionContext());
|
||||
// stepExecution.setExitStatus(new ExitStatus(false, ExitStatusExceptionClassifier.FATAL_EXCEPTION,
|
||||
// "java.lang.Exception"));
|
||||
// stepExecutionDao.updateStepExecution(stepExecution);
|
||||
// List executions = stepExecutionDao.findStepExecutions(step1, null);
|
||||
// assertEquals(1, executions.size());
|
||||
// StepExecution tempExecution = (StepExecution) executions.get(0);
|
||||
// assertEquals(stepExecution, tempExecution);
|
||||
// assertEquals(stepExecution.getExitStatus(), tempExecution.getExitStatus());
|
||||
// }
|
||||
|
||||
public void testUpdateStepExecutionWithNullId() {
|
||||
StepExecution stepExecution = new StepExecution(null, null, null);
|
||||
@@ -281,7 +279,7 @@ public abstract class AbstractStepDaoTests extends AbstractTransactionalDataSour
|
||||
lastExecution.setStartTime(new Date(System.currentTimeMillis() + JUMP_INTO_FUTURE));
|
||||
stepExecutionDao.saveStepExecution(lastExecution);
|
||||
|
||||
assertEquals(lastExecution, stepExecutionDao.getLastStepExecution(step1));
|
||||
assertEquals(lastExecution, stepExecutionDao.getLastStepExecution(step1, jobExecution));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -76,18 +76,6 @@ public class JdbcStepDaoPrefixTests extends TestCase {
|
||||
assertTrue(jdbcTemplate.getSqlStatement().indexOf("FOO_STEP_EXECUTION") != -1);
|
||||
}
|
||||
|
||||
public void testModifiedFindStepExecutions(){
|
||||
stepExecutionDao.setTablePrefix("FOO_");
|
||||
stepExecutionDao.findStepExecutions(step);
|
||||
assertTrue(jdbcTemplate.getSqlStatement().indexOf("FOO_STEP_EXECUTION") != -1);
|
||||
}
|
||||
|
||||
// public void testModifiedUpdateStep(){
|
||||
// stepInstanceDao.setTablePrefix("FOO_");
|
||||
// stepInstanceDao.updateStepInstance(step);
|
||||
// assertTrue(jdbcTemplate.getSqlStatement().indexOf("FOO_STEP") != -1);
|
||||
// }
|
||||
|
||||
public void testModifiedCreateStep(){
|
||||
stepInstanceDao.setTablePrefix("FOO_");
|
||||
stepIncrementer.nextLongValue();
|
||||
@@ -142,16 +130,6 @@ public class JdbcStepDaoPrefixTests extends TestCase {
|
||||
assertTrue(jdbcTemplate.getSqlStatement().indexOf("BATCH_STEP") != -1);
|
||||
}
|
||||
|
||||
// public void testDefaultUpdateStep(){
|
||||
// stepInstanceDao.updateStepInstance(step);
|
||||
// assertTrue(jdbcTemplate.getSqlStatement().indexOf("BATCH_STEP") != -1);
|
||||
// }
|
||||
|
||||
public void testDefaultFindStepExecutions(){
|
||||
stepExecutionDao.findStepExecutions(step);
|
||||
assertTrue(jdbcTemplate.getSqlStatement().indexOf("BATCH_STEP_EXECUTION") != -1);
|
||||
}
|
||||
|
||||
public void testDefaultSaveStepExecution(){
|
||||
stepExecutionIncrementer.nextLongValue();
|
||||
stepExecutionIncrementerControl.setReturnValue(1);
|
||||
|
||||
Reference in New Issue
Block a user