Component libraries may replace the default h:body renderer with their own implementation. This is problematic because the Liferay Faces Bridge must override the body renderer in order to avoid rendering <body> tags in a portlet environment. This has caused issues in the past such as
FACES-2056 (Liferay Faces Bridge does not support adding PrimeFaces 5.x scripts before the closing </body> tag of the portal page). FACES-2056 was fixed by adding a special case BodyRendererPrimeFacesImpl which called the necessary methods in Primefaces via reflection. However, a more general fix should be applied. The Bridge body renderer should wrap other body renderers and delegate to them in order to avoid issues like FACES-2056 (and reflective or compile time dependencies on component suites). The bridge body renderer can use a special response writer to render <body> tags as <div> tags.