In tapestry versions prior to 4.1 we rendered email message using tapestry
with the following code.

BaseHTMLMessagePage sendPage = (BaseHTMLMessagePage) getHtmlPage(inner);
ByteArrayOutputStream out = new ByteArrayOutputStream();
IMarkupWriter writer = new MarkupWriterImpl("text/html", new
PrintWriter(out), new AsciiMarkupFilter());
inner.activate(sendPage);
inner.renderPage(writer);
writer.flush();
subjectAndBody[0] = sendPage.getSubject();
subjectAndBody[1] = out.toString();
inner.cleanup();
getRequestGlobals(cycle).store(cycle);

After recently upgrading to 4.1 this method no longer works.
RequestCycle.renderPage no longer takes an IMarkupWriter but requires a
ResponseBuilder. I've tried the DefaultResponseBuilder which seems to want
to write to the WebResponse instead of the IMarkupWriter that I send it. My
question is how best to make this work again? Do I need to implement a new
ResponseBuilder somehow or extend the DefaultResponseBuilder? Or is there a
better way to render tapestry pages for html email?
--
Dave Kallstrom

Reply via email to