Class JobRegistryBackgroundJobRunner
- java.lang.Object
- org.springframework.batch.core.launch.support.JobRegistryBackgroundJobRunner
public class JobRegistryBackgroundJobRunner extends java.lang.Object
Command line launcher for registering jobs with a
JobRegistry
. Normally this will be used in conjunction with an external trigger for the jobs registered, e.g. a JMX MBean wrapper for aJobLauncher
, or a Quartz trigger.With any launch of a batch job within Spring Batch, a Spring context containing the
Job
has to be created. Using this launcher, the jobs are all registered with aJobRegistry
defined in a parent application context. The jobs are then set up in child contexts. All dependencies of the runner will then be satisfied by autowiring by type from the parent application context. Default values are provided for all fields except theJobRegistry
. Therefore, if autowiring fails to set it then an exception will be thrown.- Author:
- Dave Syer
Constructor Summary
Constructors Constructor Description JobRegistryBackgroundJobRunner(java.lang.String parentContextPath)
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static java.util.List<java.lang.Exception>
getErrors()
Public getter for the startup errors encountered during parent context creation.static void
main(java.lang.String... args)
Supply a list of application context locations, starting with the parent context, and followed by the children.void
setJobLoader(JobLoader jobLoader)
A loader for the jobs that are going to be registered.void
setJobRegistry(JobRegistry jobRegistry)
A job registry that can be used to create a job loader (if none is provided).static void
stop()
If embedded in a JVM, call this method to terminate the main method.
Method Detail
setJobLoader
public void setJobLoader(JobLoader jobLoader)
A loader for the jobs that are going to be registered.- Parameters:
jobLoader
- theJobLoader
to set
setJobRegistry
public void setJobRegistry(JobRegistry jobRegistry)
A job registry that can be used to create a job loader (if none is provided).- Parameters:
jobRegistry
- theJobRegistry
to set
getErrors
public static java.util.List<java.lang.Exception> getErrors()
Public getter for the startup errors encountered during parent context creation.- Returns:
- the errors
main
public static void main(java.lang.String... args) throws java.lang.Exception
Supply a list of application context locations, starting with the parent context, and followed by the children. The parent must contain aJobRegistry
and the child contexts are expected to containJob
definitions, each of which will be registered wit the registry. Example usage:$ java -classpath ... JobRegistryBackgroundJobRunner job-registry-context.xml job1.xml job2.xml ...
The child contexts are created only when needed though theJobFactory
interface (but the XML is validated on startup by using it to create aBeanFactory
which is then discarded). The parent context is created in a separate thread, and the program will pause for input in an infinite loop until the user hits any key.- Parameters:
args
- the context locations to use (first one is for parent)- Throws:
java.lang.Exception
- if anything goes wrong with the context creation
stop
public static void stop()
If embedded in a JVM, call this method to terminate the main method.