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
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs