You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by Howard Lewis Ship <hl...@gmail.com> on 2005/03/22 14:56:17 UTC

Big refactorings in 3.1

Just some notes on the refactorings that just went into 3.1.

Doing work on portlet support, with my chosen portlet container, eXo.

eXo has a bug (?) wherein you can never invoke
RenderResponse.getOutputStream(). It always raises a
IllegalStateException, because some other portlet has already obtained
a PrintWriter.

The existing render stack in Tapestry was wedded to
HttpServletResponse.getOutputStream().  For historical reasons (i.e.,
I don't remember why) we would get the output stream and create our
own PrintWriter, etc., rather than let the servlet container do it.

So I just checked in a raft of changes:
- ResponseOutputStream has been removed entirely, streamlining many APIs
- AbstractMarkupWriter and subclasses have been removed
- A new IMarkupWriter implementation, MarkupWriterImpl, has been created
- The filtering portion of markup output has been moved to a new
interface MarkupFilter, allowing for a *single* implementation of
MarkupWriterImpl for all content types
- The configuration point tapestry.markup.MarkupFilters allows mapping
from content types to markup filter implementations

In addition, I changed TextToken (the runtime representation of
portions of the template) to no longer trim whitespace from around
literal blocks from templates.  This means that the TextToken's
render() method no longer must be synchronized.

-- 
Howard M. Lewis Ship
Independent J2EE / Open-Source Java Consultant
Creator, Jakarta Tapestry
Creator, Jakarta HiveMind

Professional Tapestry training, mentoring, support
and project work.  http://howardlewisship.com

---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org