Class AbstractTaskletStepBuilder<B extends AbstractTaskletStepBuilder<B>>

java.lang.Object
org.springframework.batch.core.step.builder.StepBuilderHelper<B>
org.springframework.batch.core.step.builder.AbstractTaskletStepBuilder<B>
Type Parameters:
B - the type of builder represented
Direct Known Subclasses:
SimpleStepBuilder, TaskletStepBuilder

public abstract class AbstractTaskletStepBuilder<B extends AbstractTaskletStepBuilder<B>> extends StepBuilderHelper<B>
Base class for step builders that want to build a TaskletStep. Handles common concerns across all tasklet step variants, which are mostly to do with the type of tasklet they carry.
Since:
2.2
Author:
Dave Syer, Michael Minella, Mahmoud Ben Hassine, Ilpyo Yang
  • Field Details

  • Constructor Details

    • AbstractTaskletStepBuilder

      public AbstractTaskletStepBuilder(StepBuilderHelper<?> parent)
    • AbstractTaskletStepBuilder

      public AbstractTaskletStepBuilder(AbstractTaskletStepBuilder<?> parent)
      Create a new builder initialized with any properties in the parent. The parent is copied, so it can be re-used.
      Parameters:
      parent - a parent helper containing common step properties
  • Method Details

    • createTasklet

      protected abstract Tasklet createTasklet()
    • build

      public TaskletStep build()
      Build the step from the components collected by the fluent setters. Delegates first to StepBuilderHelper.enhance(AbstractStep) and then to createTasklet() in subclasses to create the actual tasklet.
      Returns:
      a tasklet step fully configured and ready to execute
    • registerStepListenerAsChunkListener

      protected void registerStepListenerAsChunkListener()
    • listener

      public B listener(ChunkListener listener)
      Register a chunk listener.
      Parameters:
      listener - the listener to register
      Returns:
      this for fluent chaining
    • listener

      public B listener(Object listener)
      Registers objects using the annotation based listener configuration.
      Overrides:
      listener in class StepBuilderHelper<B extends AbstractTaskletStepBuilder<B>>
      Parameters:
      listener - the object that has a method configured with listener annotation
      Returns:
      this for fluent chaining
    • stream

      public B stream(ItemStream stream)
      Register a stream for callbacks that manage restart data.
      Parameters:
      stream - the stream to register
      Returns:
      this for fluent chaining
    • taskExecutor

      public B taskExecutor(org.springframework.core.task.TaskExecutor taskExecutor)
      Provide a task executor to use when executing the tasklet. Default is to use a single-threaded (synchronous) executor.
      Parameters:
      taskExecutor - the task executor to register
      Returns:
      this for fluent chaining
    • throttleLimit

      @Deprecated(since="5.0", forRemoval=true) public B throttleLimit(int throttleLimit)
      Deprecated, for removal: This API element is subject to removal in a future version.
      with no replacement since 5.0, scheduled for removal in 6.0. Use a custom RepeatOperations implementation (based on a TaskExecutor with a bounded task queue) and set it on the step with stepOperations(RepeatOperations).
      In the case of an asynchronous taskExecutor(TaskExecutor) the number of concurrent tasklet executions can be throttled (beyond any throttling provided by a thread pool). The throttle limit should be less than the data source pool size used in the job repository for this step.
      Parameters:
      throttleLimit - maximum number of concurrent tasklet executions allowed
      Returns:
      this for fluent chaining
    • exceptionHandler

      public B exceptionHandler(ExceptionHandler exceptionHandler)
      Sets the exception handler to use in the case of tasklet failures. Default is to rethrow everything.
      Parameters:
      exceptionHandler - the exception handler
      Returns:
      this for fluent chaining
    • stepOperations

      public B stepOperations(RepeatOperations repeatTemplate)
      Sets the repeat template used for iterating the tasklet execution. By default it will terminate only when the tasklet returns FINISHED (or null).
      Parameters:
      repeatTemplate - a repeat template with rules for iterating
      Returns:
      this for fluent chaining
    • transactionManager

      public B transactionManager(org.springframework.transaction.PlatformTransactionManager transactionManager)
      Set the transaction manager to use for the step.
      Parameters:
      transactionManager - a transaction manager
      Returns:
      this for fluent chaining
    • transactionAttribute

      public B transactionAttribute(org.springframework.transaction.interceptor.TransactionAttribute transactionAttribute)
      Sets the transaction attributes for the tasklet execution. Defaults to the default values for the transaction manager, but can be manipulated to provide longer timeouts for instance.
      Parameters:
      transactionAttribute - a transaction attribute set
      Returns:
      this for fluent chaining
    • getStepOperations

      protected RepeatOperations getStepOperations()
      Convenience method for subclasses to access the step operations that were injected by user.
      Returns:
      the repeat operations used to iterate the tasklet executions
    • getExceptionHandler

      protected ExceptionHandler getExceptionHandler()
      Convenience method for subclasses to access the exception handler that was injected by user.
      Returns:
      the exception handler
    • concurrent

      protected boolean concurrent()
      Convenience method for subclasses to determine if the step is concurrent.
      Returns:
      true if the tasklet is going to be run in multiple threads
    • getTaskExecutor

      protected org.springframework.core.task.TaskExecutor getTaskExecutor()
    • getThrottleLimit

      @Deprecated(since="5.0", forRemoval=true) protected int getThrottleLimit()
      Deprecated, for removal: This API element is subject to removal in a future version.
    • getTransactionAttribute

      protected org.springframework.transaction.interceptor.TransactionAttribute getTransactionAttribute()
    • getStreams

      protected Set<ItemStream> getStreams()
    • getTransactionManager

      protected org.springframework.transaction.PlatformTransactionManager getTransactionManager()