@Override
	public Object postProcessAfterInitialization(Object bean, String beanName) {
		if (bean instanceof StepParserStepFactoryBean<?, ?>) {
			addStepListeners();
			if (!stepListeners.isEmpty()) {
				// Add the step listeners to the step parser factory bean
				((StepParserStepFactoryBean) bean).setListeners(this.stepListeners.toArray(new StepListener[this
						.stepListeners.size()]));
			}
		}
		else if (bean instanceof Job) {
			if (!jobRegistry.getJobNames().contains(groupName)) {
				String[] beansOfType = beanFactory.getBeanNamesForType(Job.class);

				if (beansOfType.length > 1) {
					if (beanName.equalsIgnoreCase(JOB)) {
						postProcessJob(bean, beanName);
					}
					else {
						logger.debug(beanName + " was not registered as a job since the context has more than one job " +
								"defined and it's id is not 'job'");
					}
				}
				else {
					postProcessJob(bean, beanName);
				}
			}
			else if (jobRegistry.getJobNames().contains(groupName)) {
				throw new BatchJobAlreadyExistsInRegistryException(groupName);
			}
		}
		return bean;
	}
JobRegistryBeanPostProcessor that processes batch job from the job module.

@author Ilayaperumal Gopinathan
@author Michael Minella
spring-xd-dirt/src/main/java/org/springframework/xd/dirt/plugins/job/BatchJobRegistryBeanPostProcessor.java