in src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaBaseFactory.java [67:124]
public T getAssembler(String packageName, String name)
{
T assembler = null;
log.debug("Class Fragment is {}", name);
if (StringUtils.isNotEmpty(name))
{
for (String p : packages)
{
StringBuilder sb = new StringBuilder();
sb.append(p).append('.').append(packageName).append('.').append(name);
String className = sb.toString();
log.debug("Trying {}", className);
try
{
Class<T> servClass = classCache.get(className);
if (servClass == null)
{
servClass = (Class<T>) Class.forName(className);
Class<T> _servClass = classCache.putIfAbsent(className, servClass);
if (_servClass != null)
{
servClass = _servClass;
}
}
assembler = servClass.getDeclaredConstructor().newInstance();
break; // for()
}
catch (ClassNotFoundException cnfe)
{
// Do this so we loop through all the packages.
log.debug("{}: Not found", className);
}
catch (NoClassDefFoundError ncdfe)
{
// Do this so we loop through all the packages.
log.debug("{}: No Class Definition found", className);
}
// With ClassCastException, InstantiationException we hit big problems
catch (ClassCastException | InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e)
{
// This means trouble!
// Alternatively we can throw this exception so
// that it will appear on the client browser
log.error("Could not load {}", className, e);
break; // for()
}
}
}
log.debug("Returning: {}", assembler);
return assembler;
}