@Override public void execute(JobExecution execution) throws UnexpectedJobExecutionException { execution.setStatus(BatchStatus.FAILED); execution.setEndTime(new Date()); } });
@Override public void execute(JobExecution execution) throws UnexpectedJobExecutionException { execution.setStatus(BatchStatus.COMPLETED); execution.setEndTime(new Date()); } });
@Override public JobExecution abandon(long jobExecutionId) throws NoSuchJobExecutionException, JobExecutionAlreadyRunningException { JobExecution jobExecution = findExecutionById(jobExecutionId); if (jobExecution.getStatus().isLessThan(BatchStatus.STOPPING)) { throw new JobExecutionAlreadyRunningException( "JobExecution is running or complete and therefore cannot be aborted"); } logger.info("Aborting job execution: " + jobExecution); jobExecution.upgradeStatus(BatchStatus.ABANDONED); jobExecution.setEndTime(new Date()); jobRepository.update(jobExecution); return jobExecution; }
private JobExecution createJobExecution(JobInstance jobInstance, BatchStatus status) { JobExecution jobExecution = new JobExecution(jobInstance, 1L, jobParameters, null); jobExecution.setStatus(status); jobExecution.setStartTime(new Date()); if (status != BatchStatus.STARTED) { jobExecution.setEndTime(new Date()); } return jobExecution; }
@Test public void testAbandonRoseyScenario() throws Exception { JobExecution jobExecution = new JobExecution(5L); jobExecution.setEndTime(new Date()); when(jobExplorer.getJobExecution(5L)).thenReturn(jobExecution); jsrJobOperator.abandon(5L); ArgumentCaptor<JobExecution> executionCaptor = ArgumentCaptor.forClass(JobExecution.class); verify(jobRepository).update(executionCaptor.capture()); assertEquals(org.springframework.batch.core.BatchStatus.ABANDONED, executionCaptor.getValue().getStatus()); }
@Override public void execute(JobExecution execution) throws UnexpectedJobExecutionException { execution.setStatus(BatchStatus.COMPLETED); execution.setExitStatus(new ExitStatus("CUSTOM")); execution.setEndTime(new Date()); } });
@Test(expected = JobRestartException.class) public void testCreateJobExecutionStatusUnknown() throws Exception { jobExecution.setStatus(BatchStatus.UNKNOWN); jobExecution.setEndTime(new Date()); when(jobInstanceDao.getJobInstance("foo", new JobParameters())).thenReturn(jobInstance); when(jobExecutionDao.findJobExecutions(jobInstance)).thenReturn(Arrays.asList(jobExecution)); jobRepository.createJobExecution("foo", new JobParameters()); }
@Test(expected = JobInstanceAlreadyCompleteException.class) public void testCreateJobExecutionAlreadyComplete() throws Exception { jobExecution.setStatus(BatchStatus.COMPLETED); jobExecution.setEndTime(new Date()); when(jobInstanceDao.getJobInstance("foo", new JobParameters())).thenReturn(jobInstance); when(jobExecutionDao.findJobExecutions(jobInstance)).thenReturn(Arrays.asList(jobExecution)); jobRepository.createJobExecution("foo", new JobParameters()); }
@Override public void execute(JobExecution execution) throws UnexpectedJobExecutionException { assertEquals(1, execution.getJobParameters().getParameters().size()); execution.setStatus(BatchStatus.FAILED); execution.setEndTime(new Date()); jobRepository.update(execution); throw new RuntimeException("FOO"); } @Override
@Test(expected = JobExecutionAlreadyRunningException.class) public void testCreateJobExecutionAlreadyRunning() throws Exception { jobExecution.setStatus(BatchStatus.STARTED); jobExecution.setStartTime(new Date()); jobExecution.setEndTime(null); when(jobInstanceDao.getJobInstance("foo", new JobParameters())).thenReturn(jobInstance); when(jobExecutionDao.findJobExecutions(jobInstance)).thenReturn(Arrays.asList(jobExecution)); jobRepository.createJobExecution("foo", new JobParameters()); }
@Transactional @Test public void testUpdateJobExecution() { jobExecution.setStatus(BatchStatus.COMPLETED); jobExecution.setExitStatus(ExitStatus.COMPLETED); jobExecution.setEndTime(new Date(System.currentTimeMillis())); jobExecutionDao.updateJobExecution(jobExecution); List<JobExecution> executions = jobExecutionDao.findJobExecutions(jobInstance); assertEquals(executions.size(), 1); validateJobExecution(jobExecution, executions.get(0)); }
@Override public void execute(JobExecution execution) { assertEquals(1, execution.getJobParameters().getParameters().size()); execution.setStatus(BatchStatus.STOPPED); execution.setEndTime(new Date()); jobRepository.update(execution); } @Override
/** * Test method for * {@link org.springframework.batch.core.JobExecution#getEndTime()}. */ @Test public void testGetEndTime() { assertNull(execution.getEndTime()); execution.setEndTime(new Date(100L)); assertEquals(100L, execution.getEndTime().getTime()); }
/** * Test method for * {@link org.springframework.batch.core.JobExecution#getEndTime()}. */ @Test public void testIsRunning() { execution.setStartTime(new Date()); assertTrue(execution.isRunning()); execution.setEndTime(new Date(100L)); assertFalse(execution.isRunning()); }
@Test public void testRemoveJobExecutionsWithSameJobInstance() throws Exception { utils = new JobRepositoryTestUtils(jobRepository, dataSource); List<JobExecution> list = new ArrayList<>(); JobExecution jobExecution = jobRepository.createJobExecution("job", new JobParameters()); jobExecution.setEndTime(new Date()); list.add(jobExecution); jobRepository.update(jobExecution); jobExecution = jobRepository.createJobExecution("job", new JobParameters()); list.add(jobExecution); assertEquals(beforeJobs + 2, JdbcTestUtils.countRowsInTable(jdbcTemplate, "BATCH_JOB_EXECUTION")); utils.removeJobExecutions(list); assertEquals(beforeJobs, JdbcTestUtils.countRowsInTable(jdbcTemplate, "BATCH_JOB_EXECUTION")); }
@Transactional @Test public void testGetLastJobExecution() throws Exception { JobExecution jobExecution = jobRepository.createJobExecution(job.getName(), jobParameters); jobExecution.setStatus(BatchStatus.FAILED); jobExecution.setEndTime(new Date()); jobRepository.update(jobExecution); Thread.sleep(10); jobExecution = jobRepository.createJobExecution(job.getName(), jobParameters); StepExecution stepExecution = new StepExecution("step1", jobExecution); jobRepository.add(stepExecution); jobExecution.addStepExecutions(Arrays.asList(stepExecution)); assertEquals(jobExecution, jobRepository.getLastJobExecution(job.getName(), jobParameters)); assertEquals(stepExecution, jobExecution.getStepExecutions().iterator().next()); }
@Test public void testStepAlreadyComplete() throws Exception { stepExecution1.setStatus(BatchStatus.COMPLETED); jobRepository.add(stepExecution1); jobExecution.setEndTime(new Date()); jobRepository.update(jobExecution); jobExecution = jobRepository.createJobExecution(job.getName(), jobParameters); job.execute(jobExecution); assertEquals(0, jobExecution.getFailureExceptions().size()); assertEquals(1, jobExecution.getStepExecutions().size()); assertEquals(stepExecution2.getStepName(), jobExecution.getStepExecutions().iterator().next().getStepName()); }
@Transactional @Test public void testCreateAndFindWithNoStartDate() throws Exception { job.setRestartable(true); JobExecution firstExecution = jobRepository.createJobExecution(job.getName(), jobParameters); firstExecution.setStartTime(new Date(0)); firstExecution.setEndTime(new Date(1)); jobRepository.update(firstExecution); JobExecution secondExecution = jobRepository.createJobExecution(job.getName(), jobParameters); assertEquals(firstExecution.getJobInstance(), secondExecution.getJobInstance()); assertEquals(job.getName(), secondExecution.getJobInstance().getJobName()); }
@Before public void setUp() throws Exception { JobInstance instance = new JobInstance(2L, "job name"); JobParameters params = new JobParametersBuilder().addString("key1", "value1").toJobParameters(); org.springframework.batch.core.JobExecution execution = new org.springframework.batch.core.JobExecution(instance, params); execution.setId(5L); execution.setCreateTime(new Date(0)); execution.setEndTime(new Date(999999999L)); execution.setExitStatus(new ExitStatus("exit status")); execution.setLastUpdated(new Date(12345)); execution.setStartTime(new Date(98765)); execution.setStatus(BatchStatus.FAILED); execution.setVersion(21); adapter = new JsrJobExecution(execution, new JobParametersConverterSupport()); }
/** * Modifications to saved entity do not affect the persisted object. */ @Test public void testPersistentCopy() { JobExecutionDao tested = new MapJobExecutionDao(); JobExecution jobExecution = new JobExecution(new JobInstance((long) 1, "mapJob"), new JobParameters()); assertNull(jobExecution.getStartTime()); tested.saveJobExecution(jobExecution); jobExecution.setStartTime(new Date()); JobExecution retrieved = tested.getJobExecution(jobExecution.getId()); assertNull(retrieved.getStartTime()); tested.updateJobExecution(jobExecution); jobExecution.setEndTime(new Date()); assertNull(retrieved.getEndTime()); }