assert (null != context);
RenderKit renderKit = context.getRenderKit();
if (renderKit == null) {
// check request scope for a RenderKitFactory implementation
RenderKitFactory factory = (RenderKitFactory)
RequestStateManager.get(context, RequestStateManager.RENDER_KIT_IMPL_REQ);
if (factory != null) {
renderKit = factory.getRenderKit(context, renderKitId);
} else {
factory = (RenderKitFactory)
FactoryFinder
.getFactory(FactoryFinder.RENDER_KIT_FACTORY);
if (factory == null) {
throw new FacesException("Unable to locate RenderKitFactory for " + FactoryFinder.RENDER_KIT_FACTORY);
} else {
RequestStateManager.set(context,
RequestStateManager.RENDER_KIT_IMPL_REQ,
factory);
}
renderKit = factory.getRenderKit(context, renderKitId);
if (renderKit == null) {
if (LOGGER.isLoggable(Level.SEVERE)) {
LOGGER.log(Level.SEVERE, "Unable to locate renderkit "
+ "instance for render-kit-id {0}. Using {1} instead.",
new String [] { renderKitId,
RenderKitFactory.HTML_BASIC_RENDER_KIT} );
}
renderKitId = RenderKitFactory.HTML_BASIC_RENDER_KIT;
UIViewRoot root = context.getViewRoot();
if (null != root) {
root.setRenderKitId(renderKitId);
}
}
renderKit = factory.getRenderKit(context, renderKitId);
if (renderKit == null) {
throw new FacesException("Unable to locate renderkit instance for render-kit-id " + renderKitId);
}
}
}