1 Reply Latest reply on May 19, 2008 10:51 PM by Stephen Friedrich

    Seam Mail does not work with current Seam and Trinidad versions

    Stephen Friedrich Novice

      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.