org.springframework.batch.core.configuration.support
Class AutomaticJobRegistrar

java.lang.Object
  extended by org.springframework.batch.core.configuration.support.AutomaticJobRegistrar
All Implemented Interfaces:
EventListener, InitializingBean, ApplicationContextAware, ApplicationListener, Lifecycle, Ordered

public class AutomaticJobRegistrar
extends Object
implements Ordered, Lifecycle, ApplicationListener, ApplicationContextAware, InitializingBean

Loads and unloads Jobs when the application context is created and destroyed. Each resource provided is loaded as an application context with the current context as its parent, and then all the jobs from the child context are registered under their bean names. A JobRegistry is required.

Since:
2.1
Author:
Lucas Ward, Dave Syer

Field Summary
 
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
 
Constructor Summary
AutomaticJobRegistrar()
           
 
Method Summary
 void afterPropertiesSet()
           
 int getOrder()
           
 boolean isRunning()
          Check if this component has been started.
 void onApplicationEvent(ApplicationEvent event)
          Creates all the application contexts required and set up job registry entries with all the instances of Job found therein.
 void setApplicationContext(ApplicationContext applicationContext)
          The enclosing application context, which can be used to check if events come from the expected source.
 void setApplicationContextFactories(ApplicationContextFactory[] applicationContextFactories)
          Add some factories to the set that will be used to load contexts and jobs.
 void setJobLoader(JobLoader jobLoader)
          The job loader that will be used to load and manage jobs.
 void setOrder(int order)
          The order to start up and shutdown.
 void start()
          Take all the contexts from the factories provided and pass them to teh JobLoader.
 void stop()
          Delegates to JobLoader.clear().
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AutomaticJobRegistrar

public AutomaticJobRegistrar()
Method Detail

setApplicationContext

public void setApplicationContext(ApplicationContext applicationContext)
The enclosing application context, which can be used to check if events come from the expected source.

Specified by:
setApplicationContext in interface ApplicationContextAware
Parameters:
applicationContext - the enclosing application context if there is one
See Also:
ApplicationContextAware.setApplicationContext(ApplicationContext)

setApplicationContextFactories

public void setApplicationContextFactories(ApplicationContextFactory[] applicationContextFactories)
Add some factories to the set that will be used to load contexts and jobs.

Parameters:
applicationContextFactories - the ApplicationContextFactory values to use

setJobLoader

public void setJobLoader(JobLoader jobLoader)
The job loader that will be used to load and manage jobs.

Parameters:
jobLoader - the JobLoader to set

getOrder

public int getOrder()
Specified by:
getOrder in interface Ordered

setOrder

public void setOrder(int order)
The order to start up and shutdown.

Parameters:
order - the order (default Ordered.LOWEST_PRECEDENCE).
See Also:
Ordered

afterPropertiesSet

public void afterPropertiesSet()
Specified by:
afterPropertiesSet in interface InitializingBean
Throws:
Exception

onApplicationEvent

public final void onApplicationEvent(ApplicationEvent event)
Creates all the application contexts required and set up job registry entries with all the instances of Job found therein. Also closes the contexts when the enclosing context is closed.

Specified by:
onApplicationEvent in interface ApplicationListener
See Also:
InitializingBean.afterPropertiesSet()

stop

public void stop()
Delegates to JobLoader.clear().

Specified by:
stop in interface Lifecycle
See Also:
Lifecycle.stop()

start

public void start()
Take all the contexts from the factories provided and pass them to teh JobLoader.

Specified by:
start in interface Lifecycle
See Also:
Lifecycle.start()

isRunning

public boolean isRunning()
Check if this component has been started.

Specified by:
isRunning in interface Lifecycle
Returns:
true if started successfully and not stopped
See Also:
Lifecycle.isRunning()


Copyright © 2013 SpringSource. All Rights Reserved.