in core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/provider/ServiceProvider.java [172:215]
private static <S> Class<S> resolveImplementation(Class<S> type, String customName)
{
List<String> classNames = new ArrayList<String>();
classNames.add(customName);
List<String> configuredClassNames =
ConfigUtils.getConfiguredValue(type.getSimpleName() + "." + type.getName());
if (configuredClassNames != null)
{
classNames.addAll(configuredClassNames);
}
List<Class<S>> classList = new ArrayList<Class<S>>(classNames.size());
Class<S> currentClass = null;
for (String currentClassName : classNames)
{
try
{
currentClass = ClassUtils.tryToLoadClassForName(currentClassName);
}
catch (Exception e)
{
if(LOGGER.isLoggable(Level.WARNING))
{
LOGGER.warning("Couldn't load class: " + currentClassName);
}
}
if (currentClass != null)
{
classList.add(currentClass);
}
}
Class<S> result = null;
if (!classList.isEmpty())
{
Collections.sort(classList, new InvocationOrderComparator<Object>());
result = classList.iterator().next();
}
return result;
}