/** * Wraps a {@link Batchlet} in a {@link BatchletAdapter} if required for consumption * by the rest of the framework. * * @param tasklet {@link Tasklet} or {@link Batchlet} implementation * @throws IllegalArgumentException if tasklet does not implement either Tasklet or Batchlet */ public void setStepTasklet(Object tasklet) { if(tasklet instanceof Tasklet) { super.setTasklet((Tasklet) tasklet); } else if(tasklet instanceof Batchlet){ super.setTasklet(new BatchletAdapter((Batchlet) tasklet)); } else { throw new IllegalArgumentException("The field tasklet must reference an implementation of " + "either org.springframework.batch.core.step.tasklet.Tasklet or javax.batch.api.Batchlet"); } }
@Test public void testOnlyTaskletSet() throws Exception { StepParserStepFactoryBean<Object, Object> fb = new StepParserStepFactoryBean<>(); fb.setName("step"); fb.setTransactionManager(new ResourcelessTransactionManager()); fb.setJobRepository(new JobRepositorySupport()); fb.setTasklet(new DummyTasklet()); Object step = fb.getObject(); assertTrue(step instanceof TaskletStep); Object tasklet = ReflectionTestUtils.getField(step, "tasklet"); assertTrue(tasklet instanceof DummyTasklet); }
@Test public void testOnlyTaskletTaskExecutor() throws Exception { StepParserStepFactoryBean<Object, Object> fb = new StepParserStepFactoryBean<>(); fb.setName("step"); fb.setTransactionManager(new ResourcelessTransactionManager()); fb.setJobRepository(new JobRepositorySupport()); fb.setTasklet(new DummyTasklet()); fb.setTaskExecutor(new SimpleAsyncTaskExecutor()); Object step = fb.getObject(); assertTrue(step instanceof TaskletStep); Object stepOperations = ReflectionTestUtils.getField(step, "stepOperations"); assertTrue(stepOperations instanceof TaskExecutorRepeatTemplate); }
@Test public void testTaskletStepMissingIsolation() throws Exception { StepParserStepFactoryBean<Object, Object> fb = new StepParserStepFactoryBean<>(); fb.setBeanName("step1"); fb.setJobRepository(new JobRepositorySupport()); fb.setTasklet(new DummyTasklet()); fb.setTransactionManager(new ResourcelessTransactionManager()); fb.setPropagation(Propagation.REQUIRED); Object step = fb.getObject(); assertTrue(step instanceof TaskletStep); Object tasklet = ReflectionTestUtils.getField(step, "tasklet"); assertTrue(tasklet instanceof DummyTasklet); }
@Test public void testTaskletStepAll() throws Exception { StepParserStepFactoryBean<Object, Object> fb = new StepParserStepFactoryBean<>(); fb.setBeanName("step1"); fb.setAllowStartIfComplete(true); fb.setJobRepository(new JobRepositorySupport()); fb.setStartLimit(5); fb.setTasklet(new DummyTasklet()); fb.setTransactionManager(new ResourcelessTransactionManager()); fb.setListeners(new StepExecutionListenerSupport[] { new StepExecutionListenerSupport() }); fb.setIsolation(Isolation.DEFAULT); fb.setTransactionTimeout(-1); fb.setPropagation(Propagation.REQUIRED); Object step = fb.getObject(); assertTrue(step instanceof TaskletStep); Object tasklet = ReflectionTestUtils.getField(step, "tasklet"); assertTrue(tasklet instanceof DummyTasklet); }
/** * Wraps a {@link Batchlet} in a {@link BatchletAdapter} if required for consumption * by the rest of the framework. * * @param tasklet {@link Tasklet} or {@link Batchlet} implementation * @throws IllegalArgumentException if tasklet does not implement either Tasklet or Batchlet */ public void setStepTasklet(Object tasklet) { if(tasklet instanceof Tasklet) { super.setTasklet((Tasklet) tasklet); } else if(tasklet instanceof Batchlet){ super.setTasklet(new BatchletAdapter((Batchlet) tasklet)); } else { throw new IllegalArgumentException("The field tasklet must reference an implementation of " + "either org.springframework.batch.core.step.tasklet.Tasklet or javax.batch.api.Batchlet"); } }
/** * Wraps a {@link Batchlet} in a {@link BatchletAdapter} if required for consumption * by the rest of the framework. * * @param tasklet {@link Tasklet} or {@link Batchlet} implementation * @throws IllegalArgumentException if tasklet does not implement either Tasklet or Batchlet */ public void setStepTasklet(Object tasklet) { if(tasklet instanceof Tasklet) { super.setTasklet((Tasklet) tasklet); } else if(tasklet instanceof Batchlet){ super.setTasklet(new BatchletAdapter((Batchlet) tasklet)); } else { throw new IllegalArgumentException("The field tasklet must reference an implementation of " + "either org.springframework.batch.core.step.tasklet.Tasklet or javax.batch.api.Batchlet"); } }
/** * Wraps a {@link Batchlet} in a {@link BatchletAdapter} if required for consumption * by the rest of the framework. * * @param tasklet {@link Tasklet} or {@link Batchlet} implementation * @throws IllegalArgumentException if tasklet does not implement either Tasklet or Batchlet */ public void setStepTasklet(Object tasklet) { if(tasklet instanceof Tasklet) { super.setTasklet((Tasklet) tasklet); } else if(tasklet instanceof Batchlet){ super.setTasklet(new BatchletAdapter((Batchlet) tasklet)); } else { throw new IllegalArgumentException("The field tasklet must reference an implementation of " + "either org.springframework.batch.core.step.tasklet.Tasklet or javax.batch.api.Batchlet"); } }