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 @Override
031 public void postProcessBeanFactory(
032 ConfigurableListableBeanFactory configurableListableBeanFactory) {
033
034 configurableListableBeanFactory.setBeanClassLoader(
035 PortletApplicationContext.getBeanClassLoader());
036
037 String[] names =
038 configurableListableBeanFactory.getBeanDefinitionNames();
039
040 for (String name : names) {
041 if (!name.contains(SpringFactoryUtil.class.getName())) {
042 continue;
043 }
044
045 try {
046 Object bean = configurableListableBeanFactory.getBean(name);
047
048 if (bean instanceof BeanPostProcessor) {
049 configurableListableBeanFactory.addBeanPostProcessor(
050 (BeanPostProcessor)bean);
051 }
052 }
053 catch (BeanIsAbstractException biae) {
054 continue;
055 }
056 }
057 }
058
059 }