public Renderer getRenderer(FacesContext facesContext, String rendererType) {
Renderer renderer = null;
if (rendererType != null) {
ClientPropertiesKey clientKey = ClientPropertiesKey.get(facesContext);
RendererCacheKey cacheKey = new RendererCacheKey(clientKey, rendererType);
renderer = rendererCache.get(cacheKey);
if (renderer != null) {
return renderer;
}
String simpleClassName = null;
try {
simpleClassName = getRendererClassName(rendererType);
List<Class> classes = getPaths(clientKey, "", TAG, simpleClassName, "", false, true, true, null, false, false);
if (classes != null && !classes.isEmpty()) {
Class clazz = classes.get(0);
renderer = (Renderer) clazz.newInstance();
rendererCache.put(cacheKey, renderer);
} else {
LOG.error("Don't find any RendererClass for " + simpleClassName + ". Please check you configuration.");
}
} catch (InstantiationException e) {
LOG.error("name = '" + simpleClassName + "' clientProperties = '" + clientKey.toString() + "'", e);
} catch (IllegalAccessException e) {
LOG.error("name = '" + simpleClassName + "' clientProperties = '" + clientKey.toString() + "'", e);
}
}
return renderer;
}