Seam and Trinidad are fighting a battle about the RenderingContext and my app looses :-(
Seam uses a custom rendering context, see
org.jboss.seam.ui.facelet.FaceletsRenderer:
public String render(final String viewId) {
RenderingContext context = new org.jboss.seam.ui.facelet.FaceletsRenderer.RenderingContext(viewId) {
public void process() {
...
}
};
...
}
And in org.jboss.seam.ui.facelet.FaceletsRenderer.RenderingContext:
private void init() {
// Wrap the ResponseWriter
facesContext.setResponseWriter(facesContext.getRenderKit().createResponseWriter(writer, null, null));
The problem with that is that the RenderKit that is used here to create the ResponseWriter is org.apache.myfaces.trinidadinternal.renderkit.core.CoreRenderKit and that the createResponseWriter() method in that class expects a custom Trinidad RenderingContext:
public ResponseWriter createResponseWriter(Writer writer, String contentTypeList, String characterEncoding) {
...
RenderingContext rc = org.apache.myfaces.trinidad.context.RenderingContext.getCurrentInstance();
if (rc == null)
{
// TODO: is this always indicative of something being very wrong?
_LOG.severe("No RenderingContext has been created.");
}
else
{
if (isPartialRequest(fContext.getExternalContext()))
rw = new PPRResponseWriter(rw, rc);
}
...
}
I mostly blame Trinidad for this issue (and will bring up the issue on their mailingt list), but is there any workaround on the Seam side. Seam is much more flexible with its overridable component architecture and more open minded community.