org.springframework.batch.core.launch.support
Class JobRegistryBackgroundJobRunner

java.lang.Object
  extended by org.springframework.batch.core.launch.support.JobRegistryBackgroundJobRunner

public class JobRegistryBackgroundJobRunner
extends 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 a JobLauncher, 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 a JobRegistry 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 the JobRegistry. Therefore, if autowiring fails to set it then an exception will be thrown.

Author:
Dave Syer

Field Summary
static String EMBEDDED
          System property key that switches the runner to "embedded" mode (returning immediately from the main method).
static boolean testing
           
 
Constructor Summary
JobRegistryBackgroundJobRunner(String parentContextPath)
           
 
Method Summary
static List<Exception> getErrors()
          Public getter for the startup errors encountered during parent context creation.
static void main(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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EMBEDDED

public static final String EMBEDDED
System property key that switches the runner to "embedded" mode (returning immediately from the main method). Useful for testing purposes.


testing

public static boolean testing
Constructor Detail

JobRegistryBackgroundJobRunner

public JobRegistryBackgroundJobRunner(String parentContextPath)
Parameters:
parentContextPath -
Method Detail

setJobLoader

public void setJobLoader(JobLoader jobLoader)
A loader for the jobs that are going to be registered.

Parameters:
jobLoader - the JobLoader 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 - the JobRegistry to set

getErrors

public static List<Exception> getErrors()
Public getter for the startup errors encountered during parent context creation.

Returns:
the errors

main

public static void main(String... args)
                 throws Exception
Supply a list of application context locations, starting with the parent context, and followed by the children. The parent must contain a JobRegistry and the child contexts are expected to contain Job 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 the JobFactory interface (but the XML is validated on startup by using it to create a BeanFactory 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:
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.



Copyright © 2013 SpringSource. All Rights Reserved.