@Transactional @Test public void testSaveAndFindJobContext() { ExecutionContext ctx = new ExecutionContext(Collections.<String, Object> singletonMap("key", "value")); jobExecution.setExecutionContext(ctx); contextDao.saveExecutionContext(jobExecution); ExecutionContext retrieved = contextDao.getExecutionContext(jobExecution); assertEquals(ctx, retrieved); }
@Transactional @Test public void testUpdateStepContext() { ExecutionContext ctx = new ExecutionContext(Collections.<String, Object> singletonMap("key", "value")); stepExecution.setExecutionContext(ctx); contextDao.saveExecutionContext(stepExecution); ctx.putLong("longKey", 7); contextDao.updateExecutionContext(stepExecution); ExecutionContext retrieved = contextDao.getExecutionContext(stepExecution); assertEquals(ctx, retrieved); assertEquals(7, retrieved.getLong("longKey")); }
@Override public void addAll(Collection<StepExecution> stepExecutions) { Assert.notNull(stepExecutions, "Attempt to save a null collection of step executions"); for (StepExecution stepExecution : stepExecutions) { validateStepExecution(stepExecution); stepExecution.setLastUpdated(new Date(System.currentTimeMillis())); } stepExecutionDao.saveStepExecutions(stepExecutions); ecDao.saveExecutionContexts(stepExecutions); }
private void getStepExecutionDependencies(StepExecution stepExecution) { if (stepExecution != null) { stepExecution.setExecutionContext(ecDao.getExecutionContext(stepExecution)); } }
@Override public void add(StepExecution stepExecution) { validateStepExecution(stepExecution); stepExecution.setLastUpdated(new Date(System.currentTimeMillis())); stepExecutionDao.saveStepExecution(stepExecution); ecDao.saveExecutionContext(stepExecution); }
@Transactional @Test public void testSaveAndFindExecutionContexts() { List<StepExecution> stepExecutions = new ArrayList<>(); for (int i = 0; i < 3; i++) { JobInstance ji = jobInstanceDao.createJobInstance("testJob" + i, new JobParameters()); JobExecution je = new JobExecution(ji, new JobParameters()); jobExecutionDao.saveJobExecution(je); StepExecution se = new StepExecution("step" + i, je); se.setStatus(BatchStatus.STARTED); se.setReadSkipCount(i); se.setProcessSkipCount(i); se.setWriteSkipCount(i); se.setProcessSkipCount(i); se.setRollbackCount(i); se.setLastUpdated(new Date(System.currentTimeMillis())); se.setReadCount(i); se.setFilterCount(i); se.setWriteCount(i); stepExecutions.add(se); } stepExecutionDao.saveStepExecutions(stepExecutions); contextDao.saveExecutionContexts(stepExecutions); for (int i = 0; i < 3; i++) { ExecutionContext retrieved = contextDao.getExecutionContext(stepExecutions.get(i).getJobExecution()); assertEquals(stepExecutions.get(i).getExecutionContext(), retrieved); } }
@Override public void updateExecutionContext(JobExecution jobExecution) { ecDao.updateExecutionContext(jobExecution); }
@Override @Nullable public JobExecution getLastJobExecution(String jobName, JobParameters jobParameters) { JobInstance jobInstance = jobInstanceDao.getJobInstance(jobName, jobParameters); if (jobInstance == null) { return null; } JobExecution jobExecution = jobExecutionDao.getLastJobExecution(jobInstance); if (jobExecution != null) { jobExecution.setExecutionContext(ecDao.getExecutionContext(jobExecution)); stepExecutionDao.addStepExecutions(jobExecution); } return jobExecution; }
@Override public JobExecution createJobExecution(JobInstance jobInstance, JobParameters jobParameters, String jobConfigurationLocation) { Assert.notNull(jobInstance, "A JobInstance is required to associate the JobExecution with"); Assert.notNull(jobParameters, "A JobParameters object is required to create a JobExecution"); JobExecution jobExecution = new JobExecution(jobInstance, jobParameters, jobConfigurationLocation); ExecutionContext executionContext = new ExecutionContext(); jobExecution.setExecutionContext(executionContext); jobExecution.setLastUpdated(new Date(System.currentTimeMillis())); // Save the JobExecution so that it picks up an ID (useful for clients // monitoring asynchronous executions): jobExecutionDao.saveJobExecution(jobExecution); ecDao.saveExecutionContext(jobExecution); return jobExecution; } }
@Override public void updateExecutionContext(StepExecution stepExecution) { validateStepExecution(stepExecution); Assert.notNull(stepExecution.getId(), "StepExecution must already be saved (have an id assigned)"); ecDao.updateExecutionContext(stepExecution); }
@Transactional @Test public void testSaveAndFindStepContext() { ExecutionContext ctx = new ExecutionContext(Collections.<String, Object> singletonMap("key", "value")); stepExecution.setExecutionContext(ctx); contextDao.saveExecutionContext(stepExecution); ExecutionContext retrieved = contextDao.getExecutionContext(stepExecution); assertEquals(ctx, retrieved); }
@Test public void testFindRunningJobExecutions() throws Exception { StepExecution stepExecution = jobExecution.createStepExecution("step"); when(jobExecutionDao.findRunningJobExecutions("job")).thenReturn( Collections.singleton(jobExecution)); when(jobInstanceDao.getJobInstance(jobExecution)).thenReturn( jobInstance); stepExecutionDao.addStepExecutions(jobExecution); when(ecDao.getExecutionContext(jobExecution)).thenReturn(null); when(ecDao.getExecutionContext(stepExecution)).thenReturn(null); jobExplorer.findRunningJobExecutions("job"); }
@Transactional @Test public void testUpdateContext() { ExecutionContext ctx = new ExecutionContext(Collections .<String, Object> singletonMap("key", "value")); jobExecution.setExecutionContext(ctx); contextDao.saveExecutionContext(jobExecution); ctx.putLong("longKey", 7); contextDao.updateExecutionContext(jobExecution); ExecutionContext retrieved = contextDao.getExecutionContext(jobExecution); assertEquals(ctx, retrieved); assertEquals(7, retrieved.getLong("longKey")); }
@Override public void add(StepExecution stepExecution) { validateStepExecution(stepExecution); stepExecution.setLastUpdated(new Date(System.currentTimeMillis())); stepExecutionDao.saveStepExecution(stepExecution); ecDao.saveExecutionContext(stepExecution); }
@Override public void updateExecutionContext(JobExecution jobExecution) { ecDao.updateExecutionContext(jobExecution); }
@Transactional @Test(expected = IllegalArgumentException.class) public void testSaveNullExecutionContexts() { contextDao.saveExecutionContexts(null); }
@Transactional @Test public void testSaveAndFindEmptyStepContext() { ExecutionContext ctx = new ExecutionContext(); stepExecution.setExecutionContext(ctx); contextDao.saveExecutionContext(stepExecution); ExecutionContext retrieved = contextDao.getExecutionContext(stepExecution); assertEquals(ctx, retrieved); }
private void getJobExecutionDependencies(JobExecution jobExecution) { JobInstance jobInstance = jobInstanceDao.getJobInstance(jobExecution); stepExecutionDao.addStepExecutions(jobExecution); jobExecution.setJobInstance(jobInstance); jobExecution.setExecutionContext(ecDao.getExecutionContext(jobExecution)); }
@Override public void add(StepExecution stepExecution) { validateStepExecution(stepExecution); stepExecution.setLastUpdated(new Date(System.currentTimeMillis())); stepExecutionDao.saveStepExecution(stepExecution); ecDao.saveExecutionContext(stepExecution); }
@Override public void updateExecutionContext(JobExecution jobExecution) { ecDao.updateExecutionContext(jobExecution); }