List of usage examples for org.springframework.batch.core.step.tasklet TaskletStep setJobRepository
public void setJobRepository(JobRepository jobRepository)
From source file:org.springframework.batch.core.step.item.SimpleStepFactoryBean.java
/** * @param step//from w w w .j ava 2s .com * */ protected void applyConfiguration(TaskletStep step) { Assert.state(getItemReader() != null, "ItemReader must be provided"); Assert.state(getItemWriter() != null || getItemProcessor() != null, "ItemWriter or ItemProcessor must be provided"); Assert.state(transactionManager != null, "TransactionManager must be provided"); step.setTransactionManager(transactionManager); step.setTransactionAttribute(getTransactionAttribute()); step.setJobRepository(jobRepository); step.setStartLimit(startLimit); step.setAllowStartIfComplete(allowStartIfComplete); registerStreams(step, streams); if (chunkOperations == null) { RepeatTemplate repeatTemplate = new RepeatTemplate(); repeatTemplate.setCompletionPolicy(getChunkCompletionPolicy()); chunkOperations = repeatTemplate; } if (stepOperations == null) { stepOperations = new RepeatTemplate(); if (taskExecutor != null) { TaskExecutorRepeatTemplate repeatTemplate = new TaskExecutorRepeatTemplate(); repeatTemplate.setTaskExecutor(taskExecutor); repeatTemplate.setThrottleLimit(throttleLimit); stepOperations = repeatTemplate; } ((RepeatTemplate) stepOperations).setExceptionHandler(exceptionHandler); } step.setStepOperations(stepOperations); SimpleChunkProvider<T> chunkProvider = configureChunkProvider(); SimpleChunkProcessor<T, S> chunkProcessor = configureChunkProcessor(); registerItemListeners(chunkProvider, chunkProcessor); registerStepListeners(step, chunkOperations); registerStreams(step, itemReader, itemProcessor, itemWriter); ChunkOrientedTasklet<T> tasklet = new ChunkOrientedTasklet<T>(chunkProvider, chunkProcessor); tasklet.setBuffering(!isReaderTransactionalQueue()); step.setTasklet(tasklet); }
From source file:org.springframework.data.hadoop.admin.util.HadoopWorkflowUtils.java
/** * create and register Spring Batch job/*from w w w . ja v a 2 s . c om*/ * * @param context root application context * @param artifacts workflow artifacts which include workflow descriptor and class loader information. * @throws Exception */ public static void createAndRegisterSpringBatchJob(ApplicationContext context, final WorkflowArtifacts artifacts) throws SpringHadoopAdminWorkflowException { if (context == null) { logger.warn("root applicaton context is null"); throw new SpringHadoopAdminWorkflowException("root applicaton context is null"); } String workflowDescriptor = getWorkflowDescriptor(artifacts); logger.info("create spring batch job:" + workflowDescriptor + ", classloader:" + artifacts.getWorkflowClassLoader()); final FileSystemXmlApplicationContext ctx = new FileSystemXmlApplicationContext(); ctx.setClassLoader(artifacts.getWorkflowClassLoader()); ctx.setConfigLocation(HadoopWorkflowUtils.fileURLPrefix + workflowDescriptor); try { SimpleJob job = new SimpleJob(generateSpringBatchJobName(artifacts)); TaskletStep step = new TaskletStep(springHadoopTaskName); SimpleSpringHadoopTasklet tasklet = new SimpleSpringHadoopTasklet(); tasklet.setContext(ctx); step.setTasklet(tasklet); JobRepository jobRepository = context.getBean(JobRepository.class); DataSourceTransactionManager transactionManager = context.getBean("transactionManager", DataSourceTransactionManager.class); step.setTransactionManager(transactionManager); step.setJobRepository(jobRepository); step.afterPropertiesSet(); job.addStep(step); JobRegistry jobRegistry = context.getBean("jobRegistry", JobRegistry.class); job.setJobRepository(jobRepository); job.afterPropertiesSet(); JobFactory jobFactory = new ReferenceJobFactory(job); jobRegistry.register(jobFactory); } catch (Exception e) { logger.warn("create and register Spring Batch Job failed"); throw new SpringHadoopAdminWorkflowException("create and register Spring Batch Job failed", e); } }