/** * Build a step with the reader, writer, processor as provided. * * @see org.springframework.batch.core.step.builder.AbstractTaskletStepBuilder#build() */ @Override public TaskletStep build() { registerStepListenerAsItemListener(); registerAsStreamsAndListeners(reader, processor, writer); return super.build(); }
builder.listener(listener); builder.taskExecutor(taskExecutor); if (throttleLimit != null) { builder.throttleLimit(throttleLimit); builder.transactionManager(transactionManager); if (transactionTimeout != null || propagation != null || isolation != null || noRollbackExceptionClasses != null) { : noRollbackExceptionClasses; final BinaryExceptionClassifier classifier = new BinaryExceptionClassifier(exceptions, false); builder.transactionAttribute(new DefaultTransactionAttribute(attribute) { @Override public boolean rollbackOn(Throwable ex) { builder.stream(stream);
registerStepListenerAsChunkListener(); TaskletStep step = new TaskletStep(getName()); step.setTasklet(createTasklet());
@Bean public Step step(){ return stepBuilders.get("step") .<String,String>chunk(1) .reader(reader()) .processor(processor()) .writer(writer()) .taskExecutor(infrastructureConfiguration.taskExecutor()) .throttleLimit(4) .build(); }
protected void registerStepListenerAsChunkListener() { for (StepExecutionListener stepExecutionListener: properties.getStepExecutionListeners()){ if (stepExecutionListener instanceof ChunkListener){ listener((ChunkListener)stepExecutionListener); } } }
@Override public Step getObject() throws Exception { TaskLauncherTasklet taskLauncherTasklet = new TaskLauncherTasklet( this.taskOperations, taskConfigurer.getTaskExplorer(), this.composedTaskProperties, this.taskName); taskLauncherTasklet.setArguments(this.arguments); taskLauncherTasklet.setProperties(this.taskSpecificProps); String stepName = this.taskName; return this.steps.get(stepName) .tasklet(taskLauncherTasklet) .transactionAttribute(getTransactionAttribute()) .listener(this.composedTaskStepExecutionListener) .build(); }
protected AbstractTaskletStepBuilder<?> applyDefaults(AbstractTaskletStepBuilder<?> base) { if(taskExecutor != null) { base = base.taskExecutor(taskExecutor); } if(throttle != null) { base = base.throttleLimit(throttle); } return base; }
/** * Registers objects using the annotation based listener configuration. * * @param listener the object that has a method configured with listener annotation * @return this for fluent chaining */ @Override public B listener(Object listener) { super.listener(listener); Set<Method> chunkListenerMethods = new HashSet<>(); chunkListenerMethods.addAll(ReflectionUtils.findMethod(listener.getClass(), BeforeChunk.class)); chunkListenerMethods.addAll(ReflectionUtils.findMethod(listener.getClass(), AfterChunk.class)); chunkListenerMethods.addAll(ReflectionUtils.findMethod(listener.getClass(), AfterChunkError.class)); if(chunkListenerMethods.size() > 0) { StepListenerFactoryBean factory = new StepListenerFactoryBean(); factory.setDelegate(listener); this.listener((ChunkListener) factory.getObject()); } @SuppressWarnings("unchecked") B result = (B) this; return result; }
builder.listener(listener); builder.taskExecutor(taskExecutor); if (throttleLimit != null) { builder.throttleLimit(throttleLimit); builder.transactionManager(transactionManager); if (transactionTimeout != null || propagation != null || isolation != null || noRollbackExceptionClasses != null) { : noRollbackExceptionClasses; final BinaryExceptionClassifier classifier = new BinaryExceptionClassifier(exceptions, false); builder.transactionAttribute(new DefaultTransactionAttribute(attribute) { @Override public boolean rollbackOn(Throwable ex) { builder.stream(stream);
/** * Build a step with the reader, writer, processor as provided. * * @see org.springframework.batch.core.step.builder.AbstractTaskletStepBuilder#build() */ @Override public TaskletStep build() { registerStepListenerAsItemListener(); registerAsStreamsAndListeners(reader, processor, writer); return super.build(); }
registerStepListenerAsChunkListener(); TaskletStep step = new TaskletStep(getName()); step.setTasklet(createTasklet());
/** * Registers objects using the annotation based listener configuration. * * @param listener the object that has a method configured with listener annotation * @return this for fluent chaining */ @SuppressWarnings("unchecked") @Override public SimpleStepBuilder<I, O> listener(Object listener) { super.listener(listener); Set<Method> itemListenerMethods = new HashSet<>(); itemListenerMethods.addAll(ReflectionUtils.findMethod(listener.getClass(), BeforeRead.class)); itemListenerMethods.addAll(ReflectionUtils.findMethod(listener.getClass(), AfterRead.class)); itemListenerMethods.addAll(ReflectionUtils.findMethod(listener.getClass(), BeforeProcess.class)); itemListenerMethods.addAll(ReflectionUtils.findMethod(listener.getClass(), AfterProcess.class)); itemListenerMethods.addAll(ReflectionUtils.findMethod(listener.getClass(), BeforeWrite.class)); itemListenerMethods.addAll(ReflectionUtils.findMethod(listener.getClass(), AfterWrite.class)); itemListenerMethods.addAll(ReflectionUtils.findMethod(listener.getClass(), OnReadError.class)); itemListenerMethods.addAll(ReflectionUtils.findMethod(listener.getClass(), OnProcessError.class)); itemListenerMethods.addAll(ReflectionUtils.findMethod(listener.getClass(), OnWriteError.class)); if(itemListenerMethods.size() > 0) { StepListenerFactoryBean factory = new StepListenerFactoryBean(); factory.setDelegate(listener); itemListeners.add((StepListener) factory.getObject()); } @SuppressWarnings("unchecked") SimpleStepBuilder<I, O> result = this; return result; }
builder.listener(listener); builder.taskExecutor(taskExecutor); if (throttleLimit != null) { builder.throttleLimit(throttleLimit); builder.transactionManager(transactionManager); if (transactionTimeout != null || propagation != null || isolation != null || noRollbackExceptionClasses != null) { : noRollbackExceptionClasses; final BinaryExceptionClassifier classifier = new BinaryExceptionClassifier(exceptions, false); builder.transactionAttribute(new DefaultTransactionAttribute(attribute) { @Override public boolean rollbackOn(Throwable ex) { builder.stream(stream);
/** * Build a step with the reader, writer, processor as provided. * * @see org.springframework.batch.core.step.builder.AbstractTaskletStepBuilder#build() */ @Override public TaskletStep build() { registerStepListenerAsItemListener(); registerAsStreamsAndListeners(reader, processor, writer); return super.build(); }
registerStepListenerAsChunkListener(); TaskletStep step = new TaskletStep(getName()); step.setTasklet(createTasklet());
protected void registerStepListenerAsChunkListener() { for (StepExecutionListener stepExecutionListener: properties.getStepExecutionListeners()){ if (stepExecutionListener instanceof ChunkListener){ listener((ChunkListener)stepExecutionListener); } } }
builder.listener(listener); builder.taskExecutor(taskExecutor); if (throttleLimit != null) { builder.throttleLimit(throttleLimit); builder.transactionManager(transactionManager); if (transactionTimeout != null || propagation != null || isolation != null || noRollbackExceptionClasses != null) { : noRollbackExceptionClasses; final BinaryExceptionClassifier classifier = new BinaryExceptionClassifier(exceptions, false); builder.transactionAttribute(new DefaultTransactionAttribute(attribute) { @Override public boolean rollbackOn(Throwable ex) { builder.stream(stream);
/** * Build a step with the reader, writer, processor as provided. * * @see org.springframework.batch.core.step.builder.AbstractTaskletStepBuilder#build() */ @Override public TaskletStep build() { registerStepListenerAsItemListener(); registerAsStreamsAndListeners(reader, processor, writer); return super.build(); }
registerStepListenerAsChunkListener(); TaskletStep step = new TaskletStep(getName()); step.setTasklet(createTasklet());