public BeanManager getBeanManager()

in core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/provider/BeanManagerProvider.java [97:141]


    public BeanManager getBeanManager()
    {
        ClassLoader classLoader = ClassUtils.getClassLoader(null);

        BeanManagerHolder resultHolder = bms.get(classLoader);
        BeanManager result;

        if (resultHolder == null)
        {
            result = resolveBeanManagerViaJndi();

            if(result != null)
            {
                bms.put(classLoader, new RootBeanManagerHolder(result));
            }
        }
        else
        {
            result = resultHolder.getBeanManager();

            if (!(resultHolder instanceof RootBeanManagerHolder))
            {
                BeanManager jndiBeanManager = resolveBeanManagerViaJndi();

                if (jndiBeanManager != null && /*same instance check:*/jndiBeanManager != result)
                {
                    setRootBeanManager(jndiBeanManager);

                    result = jndiBeanManager;
                }
                else
                {
                    setRootBeanManager(result);
                }
            }
        }

        if (result == null)
        {
            throw new IllegalStateException("Unable to find BeanManager. " +
                    "Please ensure that you configured the CDI implementation of your choice properly.");
        }

        return result;
    }