On Thu, 5 Jul 2001, Carsten Ziegeler wrote:

> Hi,
>
> I am currently thinking since some weeks of the following enhancement:
>
> Creating an intermediate output stream for the response and not directly
> writing to the output stream of the servlet engine (or the environment).
>
> This would solve the following problems:
> 1. The output stream can be reset at any time, making redirections possible
>    at every stage (although I personally don't like this, but there seems
>    to be a great demand for it)
> 2. When the error pipeline is called due to any exception etc, the output
>    stream should be reset as a new error generator starts producing new
>    output. If accidentally something was already written to the output
>    stream, you get a confusing response.
> 3. The special cocoon urls can currently not be used everywhere, e.g.
>    inside a map:redirect-to statement. We could solve this by resetting
>    the intermediate output stream and start on the server a new
>    generation process without returning to the client.
> 4. The content length of each response can be determined. This seems
>    to be important for the pdf generation (see the corresponding thread
>    on the user list).
>
> The only disadvante I see currently is some loss of performance.
>
> Comments? Critics? Suggestions? Wishes?

The loss of performance is critical IMHO. One possible solution might be
to augment the serializer element with an attribute interpretedby the
sitemap engine (lets call it set-conten-length="true|false"). As the
sitemap engine is the one that gives the OutputStream to the serializer
an HoldingOutputStream could be craeted by the sitemap engine and given
the objectModel to set the content length prior to really write the
collected output to the real OutputStream. Hnestly, I don't know if this
approach fits into the caching system.

This way you have the performance loss only on serializer with the
attribute mentioned above.

Giacomo


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to