@Override public RemoteChunkingMasterStepBuilder<I, O> listener(ItemReadListener<? super I> listener) { super.listener(listener); return this; }
@Override public RemoteChunkingMasterStepBuilder<I, O> listener(StepExecutionListener listener) { super.listener(listener); return this; }
@Override public RemoteChunkingMasterStepBuilder<I, O> listener(org.springframework.retry.RetryListener listener) { super.listener(listener); return this; }
@Override public RemoteChunkingMasterStepBuilder<I, O> listener(SkipListener<? super I, ? super O> listener) { super.listener(listener); return this; }
@Override public RemoteChunkingMasterStepBuilder<I, O> listener(ChunkListener listener) { super.listener(listener); return this; }
@Override public RemoteChunkingMasterStepBuilder<I, O> listener(Object listener) { super.listener(listener); return this; }
@Override public RemoteChunkingMasterStepBuilder<I, O> listener(ItemWriteListener<? super O> listener) { super.listener(listener); return this; }
@SuppressWarnings("unchecked") protected void registerStepListenerAsSkipListener() { for (StepExecutionListener stepExecutionListener: properties.getStepExecutionListeners()){ if (stepExecutionListener instanceof SkipListener){ listener((SkipListener<I,O>)stepExecutionListener); } } for (ChunkListener chunkListener: this.chunkListeners){ if (chunkListener instanceof SkipListener){ listener((SkipListener<I,O>)chunkListener); } } }
@Override @Bean public Step step(){ return stepBuilders.get("step") .listener(listener()) .<String,String>chunk(2) .reader(reader()) .writer(writer()) .faultTolerant() .skipLimit(1) .skip(MySkippableException.class) // ChunkListener registered twice for checking BATCH-2149 .listener((ChunkListener) listener()) .build(); } }
@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); }
@SuppressWarnings("unchecked") protected void registerStepListenerAsSkipListener() { for (StepExecutionListener stepExecutionListener: properties.getStepExecutionListeners()){ if (stepExecutionListener instanceof SkipListener){ listener((SkipListener<I,O>)stepExecutionListener); } } for (ChunkListener chunkListener: this.chunkListeners){ if (chunkListener instanceof SkipListener){ listener((SkipListener<I,O>)chunkListener); } } }
@SuppressWarnings("unchecked") protected void registerStepListenerAsSkipListener() { for (StepExecutionListener stepExecutionListener: properties.getStepExecutionListeners()){ if (stepExecutionListener instanceof SkipListener){ listener((SkipListener<I,O>)stepExecutionListener); } } for (ChunkListener chunkListener: this.chunkListeners){ if (chunkListener instanceof SkipListener){ listener((SkipListener<I,O>)chunkListener); } } }
@SuppressWarnings("unchecked") protected void registerStepListenerAsSkipListener() { for (StepExecutionListener stepExecutionListener: properties.getStepExecutionListeners()){ if (stepExecutionListener instanceof SkipListener){ listener((SkipListener<I,O>)stepExecutionListener); } } for (ChunkListener chunkListener: this.chunkListeners){ if (chunkListener instanceof SkipListener){ listener((SkipListener<I,O>)chunkListener); } } }
@Bean public Step step(){ return customStepBuilders().get("step") .faultTolerant() .skipLimit(10) .skip(UnknownGenderException.class) .listener(logSkipListener()) .build(); }
@Bean public Step step1() { return stepBuilderFactory.get("step1") .<String, String>chunk(2) .faultTolerant() .listener(new ChunkListener()) .reader(reader()) .writer(writer()) .build(); }
@Bean public Step step1() { return stepBuilderFactory.get("step") .<String, String>chunk(10) .reader(reader()) .processor(processor()) .writer(writer()) .faultTolerant() .skip(CustomException.class) .skipLimit(15) .listener(new CustomSkipListener()) .build(); }
@Bean public Step step(){ return stepBuilders.get("step") .<Partner,Partner>chunk(1) .reader(reader()) .processor(processor()) .writer(writer()) .listener(logProcessListener()) .faultTolerant() .skipLimit(10) .skip(UnknownGenderException.class) .listener(logSkipListener()) .build(); }