@ -1,5 +1,5 @@
/ *
* Copyright 2012 - 201 6 the original author or authors .
* Copyright 2012 - 201 7 the original author or authors .
*
* Licensed under the Apache License , Version 2.0 ( the "License" ) ;
* you may not use this file except in compliance with the License .
@ -22,9 +22,10 @@ import java.util.Collections;
import java.util.List ;
import org.springframework.beans.BeansException ;
import org.springframework.beans.factory.BeanFactory ;
import org.springframework.beans.factory.BeanFactoryAware ;
import org.springframework.beans.factory.ListableBeanFactory ;
import org.springframework.beans.factory.config.BeanPostProcessor ;
import org.springframework.context.ApplicationContext ;
import org.springframework.context.ApplicationContextAware ;
import org.springframework.core.annotation.AnnotationAwareOrderComparator ;
/ * *
@ -32,19 +33,19 @@ import org.springframework.core.annotation.AnnotationAwareOrderComparator;
* factory to { @link ErrorPageRegistry } beans .
*
* @author Phillip Webb
* @author Stephane Nicoll
* @since 1.4 .0
* /
public class ErrorPageRegistrarBeanPostProcessor
implements BeanPostProcessor , ApplicationContext Aware {
implements BeanPostProcessor , BeanFactory Aware {
private ApplicationContext applicationContext ;
private ListableBeanFactory beanFactory ;
private List < ErrorPageRegistrar > registrars ;
@Override
public void setApplicationContext ( ApplicationContext applicationContext )
throws BeansException {
this . applicationContext = applicationContext ;
public void setBeanFactory ( BeanFactory beanFactory ) {
this . beanFactory = ( ListableBeanFactory ) beanFactory ;
}
@Override
@ -71,7 +72,7 @@ public class ErrorPageRegistrarBeanPostProcessor
private Collection < ErrorPageRegistrar > getRegistrars ( ) {
if ( this . registrars = = null ) {
// Look up does not include the parent context
this . registrars = new ArrayList < ErrorPageRegistrar > ( this . applicationContext
this . registrars = new ArrayList < ErrorPageRegistrar > ( this . beanFactory
. getBeansOfType ( ErrorPageRegistrar . class , false , false ) . values ( ) ) ;
Collections . sort ( this . registrars , AnnotationAwareOrderComparator . INSTANCE ) ;
this . registrars = Collections . unmodifiableList ( this . registrars ) ;