public Object fromConfiguration( ConverterLookup converterLookup,
PlexusConfiguration configuration,
Class type,
Class baseType,
ClassLoader classLoader,
ExpressionEvaluator expressionEvaluator,
ConfigurationListener listener )
throws ComponentConfigurationException
{
Object retValue = fromExpression( configuration, expressionEvaluator, type );
if ( retValue == null )
{
try
{
Class implementation = getClassForImplementationHint( type, configuration, classLoader );
retValue = instantiateObject( implementation );
processConfiguration( converterLookup, retValue, classLoader, configuration, expressionEvaluator, listener );
}
catch ( ComponentConfigurationException e )
{
if ( e.getFailedConfiguration() == null )
{
e.setFailedConfiguration( configuration );
}
throw e;
}
}
return retValue;
}