Update of /var/cvs/src/org/mmbase/util In directory james.mmbase.org:/tmp/cvs-serv27628
Modified Files: LocalServletResponse.java LocalHttpServletResponse.java Log Message: made it possbile to specificy OutputStream rather than writer in constructor See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/util Index: LocalServletResponse.java =================================================================== RCS file: /var/cvs/src/org/mmbase/util/LocalServletResponse.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -b -r1.1 -r1.2 --- LocalServletResponse.java 27 Jan 2009 18:06:18 -0000 1.1 +++ LocalServletResponse.java 2 Feb 2009 15:27:00 -0000 1.2 @@ -17,17 +17,25 @@ /** * @see LocalHttpServletRequest * @author Michiel Meeuwissen - * @version $Id: LocalServletResponse.java,v 1.1 2009/01/27 18:06:18 michiel Exp $ + * @version $Id: LocalServletResponse.java,v 1.2 2009/02/02 15:27:00 michiel Exp $ * @since MMBase-1.9.1 */ public class LocalServletResponse implements ServletResponse { private final Writer writer; - private ByteArrayOutputStream output = new ByteArrayOutputStream(); + private final OutputStream output; + private PrintWriter pwriter; + public LocalServletResponse(Writer w) { writer = w; + output = new ByteArrayOutputStream(); + } + + public LocalServletResponse(OutputStream output) { + this.output = output; + writer = null; } private String characterEncoding = "UTF-8"; @@ -35,11 +43,22 @@ private Locale locale = Locale.US; public void flushBuffer() { + if (writer != null) { try { - writer.write(new String(output.toByteArray(), characterEncoding)); + writer.write(new String(((ByteArrayOutputStream) output).toByteArray(), characterEncoding)); + ((ByteArrayOutputStream) output).reset(); } catch (Exception e) { // shouldn't happen } + } else { + if (pwriter != null) { + pwriter.flush(); + } + try { + output.flush(); + } catch (IOException ioe) { + } + } } public int getBufferSize() { return 0; @@ -60,14 +79,19 @@ } @Override public void flush() throws IOException { super.flush(); - writer.write(new String(output.toByteArray(), characterEncoding)); - output.reset(); - + flushBuffer(); } }; } public PrintWriter getWriter() { - return new PrintWriter(writer); + if (pwriter == null) { + if (writer != null) { + pwriter = new PrintWriter(writer); + } else { + pwriter = new PrintWriter(output, true); + } + } + return pwriter; } public boolean isCommitted() { return false; Index: LocalHttpServletResponse.java =================================================================== RCS file: /var/cvs/src/org/mmbase/util/LocalHttpServletResponse.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -b -r1.1 -r1.2 --- LocalHttpServletResponse.java 27 Jan 2009 18:06:18 -0000 1.1 +++ LocalHttpServletResponse.java 2 Feb 2009 15:27:00 -0000 1.2 @@ -25,6 +25,10 @@ super(w); } + public LocalHttpServletResponse(OutputStream output) { + super(output); + } + public void addCookie(Cookie cookie) { // TODO } _______________________________________________ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs