I have a servlet filter that filters XSLT from a servlet. It is
<? PI ?> aware and pretty cuspy. I have tried invoking
FilterChain.doFilter() in a separate thread with a PipedWriter
connected to a PipedReader which I attach to my Tranformer's
StreamSource. The intent is that if the Transformer can do its job
in token-at-a-time streaming fashion, I can avoid having an 
intermediate String buffer (which works well, enabling XSLT in
the servlet filter in a single-threaded fashion.)

The multi-threaded approach seems to work when everything is just
right, but I can't seem to use it everywhere yet. It works on 
iPlanet iWS 6.0 beta for NT (great) but is shaky on Solaris8,
same web server (not so great, as Solaris is my preferred 
environment (and, secretly, Melinda Gates, I'll venture.))

For now I have reverted to having a String buffer. I haven't 
tried to stretch the  String buffer to see how big I can make it, 
but it could be megabytes someday if someone downloads a big report.

So what about multithreading and Xalan? Can the tranformer be made
to produce output before the end of input? Does it do this already?
What are some thoughts on Xalan in a streaming environment.

Reply via email to