Class 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
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      voidafterPropertiesSet()
      Make sure the registry is set before use.
      voiddestroy()
      Unregister all the Job instances that were registered by this post processor.
      protected java.lang.StringgetGroupName​(org.springframework.beans.factory.config.BeanDefinition beanDefinition, Job job)
      Determine a group name for the job to be registered.
      java.lang.ObjectpostProcessAfterInitialization​(java.lang.Object bean, java.lang.String beanName)
      If the bean is an instance of Job then register it.
      java.lang.ObjectpostProcessBeforeInitialization​(java.lang.Object bean, java.lang.String beanName)
      Do nothing.
      voidsetBeanFactory​(org.springframework.beans.factory.BeanFactory beanFactory) 
      voidsetGroupName​(java.lang.String groupName)
      The group name for jobs registered by this component.
      voidsetJobRegistry​(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)