001
014
015 package com.liferay.portal.spring.context;
016
017 import com.liferay.portal.kernel.spring.util.SpringFactoryUtil;
018
019 import org.springframework.beans.factory.BeanIsAbstractException;
020 import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
021 import org.springframework.beans.factory.config.BeanPostProcessor;
022 import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
023
024
027 public class PortletBeanFactoryPostProcessor
028 implements BeanFactoryPostProcessor {
029
030 public void postProcessBeanFactory(
031 ConfigurableListableBeanFactory configurableListableBeanFactory) {
032
033 configurableListableBeanFactory.setBeanClassLoader(
034 PortletApplicationContext.getBeanClassLoader());
035
036 String[] names =
037 configurableListableBeanFactory.getBeanDefinitionNames();
038
039 for (String name : names) {
040 if (!name.contains(SpringFactoryUtil.class.getName())) {
041 continue;
042 }
043
044 try {
045 Object bean = configurableListableBeanFactory.getBean(name);
046
047 if (bean instanceof BeanPostProcessor) {
048 configurableListableBeanFactory.addBeanPostProcessor(
049 (BeanPostProcessor)bean);
050 }
051 }
052 catch (BeanIsAbstractException biae) {
053 continue;
054 }
055 }
056 }
057
058 }