protected ProjectStage resolveProjectStage()

in jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/projectstage/JsfProjectStageProducer.java [51:91]


    protected ProjectStage resolveProjectStage()
    {
        // we first try to resolve the JSF standard configuration settings.
        // this is needed to comply with the JSF spec if JSF is used

        //web.xml support isn't covert by the default implementations
        String stageName = CodiUtils.lookupFromEnvironment(JSF_PROJECT_STAGE_CONFIG_PROPERTY_NAME, String.class);

        if(stageName == null)
        {
            stageName = CodiUtils.lookupFromEnvironment(JSF_PROJECT_STAGE_SYSTEM_PROPERTY_NAME, String.class);
        }

        if(stageName == null)
        {
            stageName = CodiUtils.lookupFromEnvironment(PROJECT_STAGE_JNDI_NAME, String.class);
        }

        if(stageName != null)
        {
            Class jsfProjectStageClass = ClassUtils.tryToLoadClassForName("javax.faces.application.ProjectStage");

            if(jsfProjectStageClass == null && LOG.isLoggable(Level.WARNING))
            {
                LOG.warning("a jsf2 project stage is used but jsf2 isn't in the classpath");
            }

            //check if the jsf project-stage should be ignored
            if(jsfProjectStageClass != null && !ClassDeactivation.isClassActivated(jsfProjectStageClass))
            {
                stageName = null;
            }
        }

        if (stageName != null)
        {
            return ProjectStage.valueOf(stageName);
        }

        return super.resolveProjectStage();
    }