@Test public void testStopTaskletWhenJobNotRegistered() throws Exception { JobInstance jobInstance = new JobInstance(123L, job.getName()); JobExecution jobExecution = new JobExecution(jobInstance, 111L, jobParameters, null); StoppableTasklet tasklet = mock(StoppableTasklet.class); JobRegistry jobRegistry = mock(JobRegistry.class); TaskletStep step = mock(TaskletStep.class); when(step.getTasklet()).thenReturn(tasklet); when(jobRegistry.getJob(job.getName())).thenThrow(new NoSuchJobException("Unable to find job")); when(jobExplorer.getJobExecution(111L)).thenReturn(jobExecution); jobOperator.setJobRegistry(jobRegistry); jobOperator.stop(111L); assertEquals(BatchStatus.STOPPING, jobExecution.getStatus()); verify(tasklet, never()).stop(); }
@Test public void testStopTasklet() throws Exception { JobInstance jobInstance = new JobInstance(123L, job.getName()); JobExecution jobExecution = new JobExecution(jobInstance, 111L, jobParameters, null); StoppableTasklet tasklet = mock(StoppableTasklet.class); TaskletStep taskletStep = new TaskletStep(); taskletStep.setTasklet(tasklet); MockJob job = new MockJob(); job.taskletStep = taskletStep; JobRegistry jobRegistry = mock(JobRegistry.class); TaskletStep step = mock(TaskletStep.class); when(step.getTasklet()).thenReturn(tasklet); when(step.getName()).thenReturn("test_job.step1"); when(jobRegistry.getJob(any(String.class))).thenReturn(job); when(jobExplorer.getJobExecution(111L)).thenReturn(jobExecution); jobOperator.setJobRegistry(jobRegistry); jobExplorer.getJobExecution(111L); jobRepository.update(jobExecution); jobOperator.stop(111L); assertEquals(BatchStatus.STOPPING, jobExecution.getStatus()); }
@Test public void testStopTaskletException() throws Exception { JobInstance jobInstance = new JobInstance(123L, job.getName()); JobExecution jobExecution = new JobExecution(jobInstance, 111L, jobParameters, null); StoppableTasklet tasklet = new StoppableTasklet() { @Override public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception { return null; } @Override public void stop() { throw new IllegalStateException(); }}; TaskletStep taskletStep = new TaskletStep(); taskletStep.setTasklet(tasklet); MockJob job = new MockJob(); job.taskletStep = taskletStep; JobRegistry jobRegistry = mock(JobRegistry.class); TaskletStep step = mock(TaskletStep.class); when(step.getTasklet()).thenReturn(tasklet); when(step.getName()).thenReturn("test_job.step1"); when(jobRegistry.getJob(any(String.class))).thenReturn(job); when(jobExplorer.getJobExecution(111L)).thenReturn(jobExecution); jobOperator.setJobRegistry(jobRegistry); jobExplorer.getJobExecution(111L); jobRepository.update(jobExecution); jobOperator.stop(111L); assertEquals(BatchStatus.STOPPING, jobExecution.getStatus()); }
jobOperator.setJobRegistry(new MapJobRegistry() { @Override public Job getJob(String name) throws NoSuchJobException {
@Bean @ConditionalOnMissingBean(JobOperator.class) public JobOperator jobOperator(JobExplorer jobExplorer, JobLauncher jobLauncher, ListableJobLocator jobRegistry, JobRepository jobRepository) throws Exception { SimpleJobOperator jobOperator = new SimpleJobOperator(); jobOperator.setJobExplorer(jobExplorer); jobOperator.setJobLauncher(jobLauncher); jobOperator.setJobRegistry(jobRegistry); jobOperator.setJobRepository(jobRepository); return jobOperator; }
@Bean @Autowired public JobOperator jobOperator(JobExplorer jobExplorer, JobLauncher jobLauncher, JobRepository jobRepository, ListableJobLocator jobRegistry) { SimpleJobOperator jobOperator = new SimpleJobOperator(); jobOperator.setJobExplorer(jobExplorer); jobOperator.setJobLauncher(jobLauncher); jobOperator.setJobRepository(jobRepository); jobOperator.setJobRegistry(jobRegistry); return jobOperator; }
@Bean @Autowired public JobOperator jobOperator(JobExplorer jobExplorer, JobLauncher jobLauncher, JobRepository jobRepository, ListableJobLocator jobRegistry) { SimpleJobOperator jobOperator = new SimpleJobOperator(); jobOperator.setJobExplorer(jobExplorer); jobOperator.setJobLauncher(jobLauncher); jobOperator.setJobRepository(jobRepository); jobOperator.setJobRegistry(jobRegistry); return jobOperator; }
@Bean @ConditionalOnMissingBean(value = {JobOperator.class}) public JobOperator jobOperator(final JobExplorer jobExplorer, @Qualifier("jobLauncher") final JobLauncher jobLauncher, final JobRepository jobRepository, final JobRegistry jobRegistry) throws Exception { final SimpleJobOperator jobOperator = new SimpleJobOperator(); jobOperator.setJobExplorer(jobExplorer); jobOperator.setJobLauncher(jobLauncher); jobOperator.setJobRepository(jobRepository); jobOperator.setJobRegistry(jobRegistry); jobOperator.afterPropertiesSet(); return jobOperator; }
@Bean public JobOperator jobOperator(JobExplorer jobExplorer, JobLauncher jobLauncher, ListableJobLocator jobRegistry, JobRepository jobRepository) throws Exception { SimpleJobOperator jobOperator = new SimpleJobOperator(); jobOperator.setJobExplorer(jobExplorer); jobOperator.setJobLauncher(jobLauncher); jobOperator.setJobRegistry(jobRegistry); jobOperator.setJobRepository(jobRepository); return jobOperator; }
@Bean public JobOperator jobOperator() throws Exception { SimpleJobOperator simpleJobOperator = new SimpleJobOperator(); simpleJobOperator.setJobLauncher(this.jobLauncher); simpleJobOperator.setJobParametersConverter(new DefaultJobParametersConverter()); simpleJobOperator.setJobRepository(this.jobRepository); simpleJobOperator.setJobExplorer(this.jobExplorer); simpleJobOperator.setJobRegistry(this.jobRegistry); simpleJobOperator.afterPropertiesSet(); return simpleJobOperator; }
@Bean public JobOperator jobOperator() throws Exception { SimpleJobOperator simpleJobOperator = new SimpleJobOperator(); simpleJobOperator.setJobLauncher(this.jobLauncher); simpleJobOperator.setJobParametersConverter(new DefaultJobParametersConverter()); simpleJobOperator.setJobRepository(this.jobRepository); simpleJobOperator.setJobExplorer(this.jobExplorer); simpleJobOperator.setJobRegistry(this.jobRegistry); simpleJobOperator.afterPropertiesSet(); return simpleJobOperator; }
@Bean public JobOperator jobOperator() throws Exception { SimpleJobOperator simpleJobOperator = new SimpleJobOperator(); simpleJobOperator.setJobLauncher(this.jobLauncher); simpleJobOperator.setJobParametersConverter(new DefaultJobParametersConverter()); simpleJobOperator.setJobRepository(this.jobRepository); simpleJobOperator.setJobExplorer(this.jobExplorer); simpleJobOperator.setJobRegistry(this.jobRegistry); simpleJobOperator.afterPropertiesSet(); return simpleJobOperator; }
public void afterPropertiesSet() throws Exception { delegate = new SimpleJobOperator(); delegate.setJobRegistry(jobRegistry); delegate.setJobExplorer(jobExplorer); delegate.setJobLauncher(jobLauncher);