tapestry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Howard Lewis Ship <hls...@gmail.com>
Subject Big refactorings in 3.1
Date Tue, 22 Mar 2005 13:56:17 GMT
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

View raw message