Package org.springframework.batch.core.launch.support

# Class SimpleJobLauncher

java.lang.Object
org.springframework.batch.core.launch.support.SimpleJobLauncher

All Implemented Interfaces:
  `JobLauncher`, `org.springframework.beans.factory.InitializingBean`

public class SimpleJobLauncher extends Object implements JobLauncher, org.springframework.beans.factory.InitializingBean
Simple implementation of the `JobLauncher` interface. The Spring Core `TaskExecutor` interface is used to launch a `Job`. This means that the type of executor set is very important. If a `SyncTaskExecutor` is used, then the job will be processed within the same thread that called the launcher. Care should be taken to ensure any users of this class understand fully whether or not the implementation of TaskExecutor used will start tasks synchronously or asynchronously. The default setting uses a synchronous task executor. There is only one required dependency of this Launcher, a `JobRepository`. The JobRepository is used to obtain a valid JobExecution. The Repository must be used because the provided `Job` could be a restart of an existing `JobInstance`, and only the Repository can reliably recreate it.

Since:
  1.0
Author:
  Lucas Ward, Dave Syer, Will Schipp, Michael Minella, Mahmoud Ben Hassine
See Also:
  - `JobRepository`
  - `TaskExecutor`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected static final org.apache.commons.logging.Log`
  `logger`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SimpleJobLauncher()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `afterPropertiesSet()`
  Ensure the required dependencies of a `JobRepository` have been set.
  `JobExecution`
  `run(Job job, JobParameters jobParameters)`
  Run the provided job with the given `JobParameters`.
  `void`
  `setJobRepository(JobRepository jobRepository)`
  Set the JobRepository.
  `void`
  `setTaskExecutor(org.springframework.core.task.TaskExecutor taskExecutor)`
  Set the TaskExecutor.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### logger

    protected static final org.apache.commons.logging.Log logger

- ## Constructor Details

  - ### SimpleJobLauncher

    public SimpleJobLauncher()

- ## Method Details

  - ### run

    public JobExecution run(Job job, JobParameters jobParameters) throws JobExecutionAlreadyRunningException, JobRestartException, JobInstanceAlreadyCompleteException, JobParametersInvalidException
    Run the provided job with the given `JobParameters`. The `JobParameters` will be used to determine if this is an execution of an existing job instance, or if a new one should be created.
    Specified by:
      `run` in interface `JobLauncher`
    Parameters:
      `job` - the job to be run.
      `jobParameters` - the `JobParameters` for this particular execution.
    Returns:
      the `JobExecution` if it returns synchronously. If the implementation is asynchronous, the status might well be unknown.
    Throws:
      `JobExecutionAlreadyRunningException` - if the JobInstance already exists and has an execution already running.
      `JobRestartException` - if the execution would be a re-start, but a re-start is either not allowed or not needed.
      `JobInstanceAlreadyCompleteException` - if this instance has already completed successfully
      `JobParametersInvalidException` - thrown if jobParameters is invalid.

  - ### setJobRepository

    public void setJobRepository(JobRepository jobRepository)
    Set the JobRepository.
    Parameters:
      `jobRepository` - instance of `JobRepository`.

  - ### setTaskExecutor

    public void setTaskExecutor(org.springframework.core.task.TaskExecutor taskExecutor)
    Set the TaskExecutor. (Optional)
    Parameters:
      `taskExecutor` - instance of `TaskExecutor`.

  - ### afterPropertiesSet

    public void afterPropertiesSet() throws Exception
    Ensure the required dependencies of a `JobRepository` have been set.
    Specified by:
      `afterPropertiesSet` in interface `org.springframework.beans.factory.InitializingBean`
    Throws:
      `Exception`