org.springframework.batch.core.configuration.support

## Class JobRegistryBeanPostProcessor

- java.lang.Object
- - org.springframework.batch.core.configuration.support.JobRegistryBeanPostProcessor

- All Implemented Interfaces:
    org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.config.BeanPostProcessor, org.springframework.beans.factory.DisposableBean, org.springframework.beans.factory.InitializingBean

      public class JobRegistryBeanPostProcessor
      extends java.lang.Object
      implements org.springframework.beans.factory.config.BeanPostProcessor, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.InitializingBean, org.springframework.beans.factory.DisposableBean

  A `BeanPostProcessor` that registers `Job` beans with a `JobRegistry`. Include a bean of this type along with your job configuration, and use the same `JobRegistry` as a `JobLocator` when you need to locate a `Job` to launch.
  Author:
    Dave Syer

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `JobRegistryBeanPostProcessor()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `afterPropertiesSet()` Make sure the registry is set before use.
    `void` | `destroy()` Unregister all the `Job` instances that were registered by this post processor.
    `protected java.lang.String` | `getGroupName(org.springframework.beans.factory.config.BeanDefinition beanDefinition, Job job)` Determine a group name for the job to be registered.
    `java.lang.Object` | `postProcessAfterInitialization(java.lang.Object bean, java.lang.String beanName)` If the bean is an instance of `Job` then register it.
    `java.lang.Object` | `postProcessBeforeInitialization(java.lang.Object bean, java.lang.String beanName)` Do nothing.
    `void` | `setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory)`
    `void` | `setGroupName(java.lang.String groupName)` The group name for jobs registered by this component.
    `void` | `setJobRegistry(JobRegistry jobRegistry)` Injection setter for `JobRegistry`.

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

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

- - ### Constructor Detail

    - #### JobRegistryBeanPostProcessor

          public JobRegistryBeanPostProcessor()

  - ### Method Detail

    - #### setGroupName

          public void setGroupName(java.lang.String groupName)

      The group name for jobs registered by this component. Optional (defaults to null, which means that jobs are registered with their bean names). Useful where there is a hierarchy of application contexts all contributing to the same `JobRegistry`: child contexts can then define an instance with a unique group name to avoid clashes between job names.
      Parameters:
        `groupName` - the groupName to set

    - #### setJobRegistry

          public void setJobRegistry(JobRegistry jobRegistry)

      Injection setter for `JobRegistry`.
      Parameters:
        `jobRegistry` - the jobConfigurationRegistry to set

    - #### setBeanFactory

          public void setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory)
                              throws org.springframework.beans.BeansException

      Specified by:
        `setBeanFactory` in interface `org.springframework.beans.factory.BeanFactoryAware`
      Throws:
        `org.springframework.beans.BeansException`

    - #### afterPropertiesSet

          public void afterPropertiesSet()
                                  throws java.lang.Exception

      Make sure the registry is set before use.
      Specified by:
        `afterPropertiesSet` in interface `org.springframework.beans.factory.InitializingBean`
      Throws:
        `java.lang.Exception`
      See Also:
        `InitializingBean.afterPropertiesSet()`

    - #### destroy

          public void destroy()
                       throws java.lang.Exception

      Unregister all the `Job` instances that were registered by this post processor.
      Specified by:
        `destroy` in interface `org.springframework.beans.factory.DisposableBean`
      Throws:
        `java.lang.Exception`
      See Also:
        `DisposableBean.destroy()`

    - #### postProcessAfterInitialization

          public java.lang.Object postProcessAfterInitialization(java.lang.Object bean,
                                                                 java.lang.String beanName)
                                                          throws org.springframework.beans.BeansException

      If the bean is an instance of `Job` then register it.
      Specified by:
        `postProcessAfterInitialization` in interface `org.springframework.beans.factory.config.BeanPostProcessor`
      Throws:
        `org.springframework.beans.FatalBeanException` - if there is a `DuplicateJobException`.
        `org.springframework.beans.BeansException`
      See Also:
        `BeanPostProcessor.postProcessAfterInitialization(java.lang.Object, java.lang.String)`

    - #### getGroupName

          protected java.lang.String getGroupName(org.springframework.beans.factory.config.BeanDefinition beanDefinition,
                                                  Job job)

      Determine a group name for the job to be registered. Default implementation just returns the `groupName` configured. Provides an extension point for specialised subclasses.
      Parameters:
        `beanDefinition` - the bean definition for the job
        `job` - the job
      Returns:
        a group name for the job (or null if not needed)

    - #### postProcessBeforeInitialization

          public java.lang.Object postProcessBeforeInitialization(java.lang.Object bean,
                                                                  java.lang.String beanName)
                                                           throws org.springframework.beans.BeansException

      Do nothing.
      Specified by:
        `postProcessBeforeInitialization` in interface `org.springframework.beans.factory.config.BeanPostProcessor`
      Throws:
        `org.springframework.beans.BeansException`
      See Also:
        `BeanPostProcessor.postProcessBeforeInitialization(java.lang.Object, java.lang.String)`