/** * Create a new {@link RemoteChunkingMasterStepBuilder}. * * @param stepName name of the master step */ public RemoteChunkingMasterStepBuilder(String stepName) { super(new StepBuilder(stepName)); }
/** * Create a new {@link RemotePartitioningMasterStepBuilder}. * @param stepName name of the master step */ public RemotePartitioningMasterStepBuilder(String stepName) { super(new StepBuilder(stepName)); }
@Override protected SimpleStepBuilder<T, S> createBuilder(String name) { return new FaultTolerantStepBuilder<>(new StepBuilder(name)); }
protected SimpleStepBuilder<T, S> createBuilder(String name) { return new SimpleStepBuilder<>(new StepBuilder(name)); }
protected FaultTolerantStepBuilder<I, O> getFaultTolerantStepBuilder(String stepName) { return new FaultTolerantStepBuilder<>(new StepBuilder(stepName)); }
protected SimpleStepBuilder<I, O> getSimpleStepBuilder(String stepName) { return new SimpleStepBuilder<>(new StepBuilder(stepName)); }
@Override protected SimpleStepBuilder<I, O> getSimpleStepBuilder(String stepName) { JsrSimpleStepBuilder<I, O> jsrSimpleStepBuilder = new JsrSimpleStepBuilder<>(new StepBuilder(stepName)); jsrSimpleStepBuilder.setBatchPropertyContext(batchPropertyContext); return jsrSimpleStepBuilder; }
@Override protected FaultTolerantStepBuilder<I, O> getFaultTolerantStepBuilder(String stepName) { JsrFaultTolerantStepBuilder<I, O> jsrFaultTolerantStepBuilder = new JsrFaultTolerantStepBuilder<>( new StepBuilder(stepName)); jsrFaultTolerantStepBuilder.setBatchPropertyContext(batchPropertyContext); return jsrFaultTolerantStepBuilder; }
/** * Creates a step builder and initializes its job repository and transaction manager. Note that if the builder is * used to create a @Bean definition then the name of the step and the bean name might be different. * * @param name the name of the step * @return a step builder */ public StepBuilder get(String name) { StepBuilder builder = new StepBuilder(name).repository(jobRepository).transactionManager( transactionManager); return builder; }
protected Step createFlowStep() { FlowStepBuilder builder = new StepBuilder(name).flow(flow); enhanceCommonStep(builder); return builder.build(); }
/** * @return a new {@link TaskletStep} */ protected TaskletStep createTaskletStep() { TaskletStepBuilder builder = new StepBuilder(name).tasklet(tasklet); enhanceTaskletStepBuilder(builder); return builder.build(); }
/** * @return a new {@link TaskletStep} */ @Override protected TaskletStep createTaskletStep() { JsrBatchletStepBuilder jsrBatchletStepBuilder = new JsrBatchletStepBuilder(new StepBuilder(getName())); jsrBatchletStepBuilder.setBatchPropertyContext(batchPropertyContext); TaskletStepBuilder builder = jsrBatchletStepBuilder.tasklet(getTasklet()); enhanceTaskletStepBuilder(builder); return builder.build(); }
private Step createJobStep() throws Exception { JobStepBuilder builder = new StepBuilder(name).job(job); enhanceCommonStep(builder); builder.parametersExtractor(jobParametersExtractor); builder.launcher(jobLauncher); return builder.build(); }
@Before public void setUp() throws Exception { List<String> items = new ArrayList<>(); for (int i = 0; i < 25; i++) { items.add("item " + i); } reader = new FailingListItemReader(items); processor = new FailingCountingItemProcessor(); writer = new StoringItemWriter(); readListener = new CountingListener(); builder = new JsrSimpleStepBuilder<>(new StepBuilder("step1")); builder.setBatchPropertyContext(new BatchPropertyContext()); repository = new MapJobRepositoryFactoryBean().getObject(); builder.repository(repository); builder.transactionManager(new ResourcelessTransactionManager()); stepExecution = null; }
@Before public void setUp() throws Exception { List<String> items = new ArrayList<>(); for (int i = 0; i < 25; i++) { items.add("item " + i); } reader = new FailingListItemReader(items); processor = new FailingCountingItemProcessor(); writer = new StoringItemWriter(); listener = new CountingListener(); builder = new JsrFaultTolerantStepBuilder<>(new StepBuilder("step1")); builder.setBatchPropertyContext(new BatchPropertyContext()); repository = new MapJobRepositoryFactoryBean().getObject(); builder.repository(repository); builder.transactionManager(new ResourcelessTransactionManager()); stepExecution = null; }
@Test public void test() throws Exception { JobRepository jobRepository = new MapJobRepositoryFactoryBean().getObject(); StepExecution execution = jobRepository.createJobExecution("foo", new JobParameters()).createStepExecution( "step"); jobRepository.add(execution); PlatformTransactionManager transactionManager = new ResourcelessTransactionManager(); TaskletStepBuilder builder = new StepBuilder("step").repository(jobRepository) .transactionManager(transactionManager).tasklet((contribution, chunkContext) -> null); builder.build().execute(execution); assertEquals(BatchStatus.COMPLETED, execution.getStatus()); }
@Test public void testAnnotationBasedChunkListenerForTaskletStep() throws Exception { JobRepository jobRepository = new MapJobRepositoryFactoryBean().getObject(); StepExecution execution = jobRepository.createJobExecution("foo", new JobParameters()).createStepExecution("step"); jobRepository.add(execution); PlatformTransactionManager transactionManager = new ResourcelessTransactionManager(); TaskletStepBuilder builder = new StepBuilder("step") .repository(jobRepository) .transactionManager(transactionManager) .tasklet((contribution, chunkContext) -> null) .listener(new AnnotationBasedChunkListener()); builder.build().execute(execution); assertEquals(BatchStatus.COMPLETED, execution.getStatus()); assertEquals(1, AnnotationBasedChunkListener.beforeChunkCount); assertEquals(1, AnnotationBasedChunkListener.afterChunkCount); }
@Test public void testAnnotationBasedChunkListenerForJobStepBuilder() throws Exception { JobRepository jobRepository = new MapJobRepositoryFactoryBean().getObject(); StepExecution execution = jobRepository.createJobExecution("foo", new JobParameters()).createStepExecution("step"); jobRepository.add(execution); PlatformTransactionManager transactionManager = new ResourcelessTransactionManager(); SimpleJob job = new SimpleJob("job"); job.setJobRepository(jobRepository); JobStepBuilder builder = new StepBuilder("step") .repository(jobRepository) .transactionManager(transactionManager) .job(job) .listener(new AnnotationBasedChunkListener()); builder.build().execute(execution); assertEquals(BatchStatus.COMPLETED, execution.getStatus()); // it makes no sense to register a ChunkListener on a step which is not of type tasklet, so it should not be invoked assertEquals(0, AnnotationBasedChunkListener.beforeChunkCount); assertEquals(0, AnnotationBasedChunkListener.afterChunkCount); }
@Test public void testAnnotationBasedChunkListenerForSimpleTaskletStep() throws Exception { JobRepository jobRepository = new MapJobRepositoryFactoryBean().getObject(); StepExecution execution = jobRepository.createJobExecution("foo", new JobParameters()).createStepExecution("step"); jobRepository.add(execution); PlatformTransactionManager transactionManager = new ResourcelessTransactionManager(); SimpleStepBuilder<Object, Object> builder = new StepBuilder("step") .repository(jobRepository) .transactionManager(transactionManager) .chunk(5) .reader(new DummyItemReader()) .writer(new DummyItemWriter()) .listener(new AnnotationBasedChunkListener()); builder.build().execute(execution); assertEquals(BatchStatus.COMPLETED, execution.getStatus()); assertEquals(1, AnnotationBasedChunkListener.beforeChunkCount); assertEquals(1, AnnotationBasedChunkListener.afterChunkCount); }
@Test public void testAnnotationBasedChunkListenerForFaultTolerantTaskletStep() throws Exception { JobRepository jobRepository = new MapJobRepositoryFactoryBean().getObject(); StepExecution execution = jobRepository.createJobExecution("foo", new JobParameters()).createStepExecution("step"); jobRepository.add(execution); PlatformTransactionManager transactionManager = new ResourcelessTransactionManager(); SimpleStepBuilder<Object, Object> builder = new StepBuilder("step") .repository(jobRepository) .transactionManager(transactionManager) .chunk(5) .reader(new DummyItemReader()) .writer(new DummyItemWriter()) .faultTolerant() .listener(new AnnotationBasedChunkListener()); // TODO should this return FaultTolerantStepBuilder? builder.build().execute(execution); assertEquals(BatchStatus.COMPLETED, execution.getStatus()); assertEquals(1, AnnotationBasedChunkListener.beforeChunkCount); assertEquals(1, AnnotationBasedChunkListener.afterChunkCount); }