Example usage for org.springframework.beans.factory.support RootBeanDefinition getOriginatingBeanDefinition

List of usage examples for org.springframework.beans.factory.support RootBeanDefinition getOriginatingBeanDefinition

Introduction

In this page you can find the example usage for org.springframework.beans.factory.support RootBeanDefinition getOriginatingBeanDefinition.

Prototype

@Override
@Nullable
public BeanDefinition getOriginatingBeanDefinition() 

Source Link

Document

Return the originating BeanDefinition, or null if none.

Usage

From source file:com.liferay.arkadiko.bean.AKBeanPostProcessor.java

/**
 * Try to get an Arkadiko bean which is a proxy backed by an OSGi service
 * tracker which is either going to wrap an existing spring bean, or wait
 * for one to be registered. This only happens when the bean is declared to
 * be wrapped by name or by class/interface.
 *
 * @param rootBeanDefinition/*from  w w w .  j  a v a  2  s .c om*/
 * @param beanName
 * @return a bean or null
 */
protected Object getServiceBean(RootBeanDefinition rootBeanDefinition, String beanName) {

    BeanDefinition originatingBeanDefinition = rootBeanDefinition.getOriginatingBeanDefinition();

    if ((originatingBeanDefinition != null) && (originatingBeanDefinition instanceof AKBeanDefinition)) {

        AKBeanDefinition akBeanDefinition = (AKBeanDefinition) originatingBeanDefinition;

        return akBeanDefinition.getProxy();
    } else if (rootBeanDefinition.hasBeanClass()) {
        Class<?> clazz = rootBeanDefinition.getBeanClass();

        if (clazz.isInterface()) {
            AKBeanDefinition akBeanDefinition = new AKBeanDefinition(this, rootBeanDefinition, beanName,
                    getServiceRegistry());

            return akBeanDefinition.getProxy();
        }
    }

    return null;
}