in core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/projectstage/ProjectStageProducer.java [129:184]
private static synchronized void lazyInit()
{
// switch into paranoia mode
if (projectStageProducer != null)
{
return;
}
ProjectStageProducer defaultProjectStageProducer = new ProjectStageProducer();
projectStageProducer = CodiUtils.lookupFromEnvironment(ProjectStageProducer.class,
new Aggregatable<ProjectStageProducer>()
{
private ProjectStageProducer specializedCodiProjectStageProducer;
private ProjectStageProducer customConfiguredProjectStageProducer;
/**
* {@inheritDoc}
*/
public void add(ProjectStageProducer projectStageProducer)
{
if(projectStageProducer.getClass().getName().startsWith("org.apache.myfaces."))
{
specializedCodiProjectStageProducer = projectStageProducer;
}
else
{
customConfiguredProjectStageProducer = projectStageProducer;
}
}
/**
* {@inheritDoc}
*/
public ProjectStageProducer create()
{
if(customConfiguredProjectStageProducer != null)
{
return this.customConfiguredProjectStageProducer;
}
if(specializedCodiProjectStageProducer != null)
{
return this.specializedCodiProjectStageProducer;
}
return null;
}
}, defaultProjectStageProducer);
if (projectStageProducer == null)
{
// if we still didn't find a customised ProjectStageProducer,
// then we take the default one.
projectStageProducer = defaultProjectStageProducer;
}
projectStageProducer.initProjectStage();
}