Author: michiel
Date: 2010-06-18 14:54:22 +0200 (Fri, 18 Jun 2010)
New Revision: 42602
Modified:
mmbase/trunk/applications/resources/src/main/java/org/mmbase/servlet/FileServlet.java
mmbase/trunk/applications/resources/src/test/java/org/mmbase/servlet/FileServletTest.java
Log:
Test cases for streaming
Modified:
mmbase/trunk/applications/resources/src/main/java/org/mmbase/servlet/FileServlet.java
===================================================================
---
mmbase/trunk/applications/resources/src/main/java/org/mmbase/servlet/FileServlet.java
2010-06-18 11:53:32 UTC (rev 42601)
+++
mmbase/trunk/applications/resources/src/main/java/org/mmbase/servlet/FileServlet.java
2010-06-18 12:54:22 UTC (rev 42602)
@@ -435,12 +435,8 @@
}
- protected void stream(HttpServletRequest req, HttpServletResponse resp,
File file) throws IOException {
- BufferedOutputStream out = new
BufferedOutputStream(resp.getOutputStream());
- BufferedInputStream in = new BufferedInputStream(new
FileInputStream(file));
+ protected static void stream(ChainedRange range, InputStream in,
OutputStream out) throws IOException {
byte[] buf = new byte[1024];
-
- final ChainedRange range = getRange(req, file);
if (range != null) {
long pos = 0;
while (pos < range.max) {
@@ -468,6 +464,14 @@
out.close();
}
+
+ protected void stream(HttpServletRequest req, HttpServletResponse resp,
File file) throws IOException {
+ BufferedOutputStream out = new
BufferedOutputStream(resp.getOutputStream());
+ BufferedInputStream in = new BufferedInputStream(new
FileInputStream(file));
+ final ChainedRange range = getRange(req, file);
+ stream(range, in, out);
+ }
+
private static final FormatFileSize formatFileSize = new FormatFileSize();
private static final Xml XML = new Xml();
Modified:
mmbase/trunk/applications/resources/src/test/java/org/mmbase/servlet/FileServletTest.java
===================================================================
---
mmbase/trunk/applications/resources/src/test/java/org/mmbase/servlet/FileServletTest.java
2010-06-18 11:53:32 UTC (rev 42601)
+++
mmbase/trunk/applications/resources/src/test/java/org/mmbase/servlet/FileServletTest.java
2010-06-18 12:54:22 UTC (rev 42602)
@@ -10,6 +10,9 @@
package org.mmbase.servlet;
import java.util.*;
+import java.io.*;
+import org.apache.commons.io.FileUtils;
+
import org.mmbase.util.*;
import org.junit.*;
@@ -41,4 +44,28 @@
assertEquals(400, new ChainedRange("0-200,101-499", 400).getLength());
}
+
+ public void stream(ChainedRange range) throws Exception {
+ File file = new File("src" + File.separator + "test" + File.separator
+ "images" + File.separator + "test.png");
+ InputStream in = new FileInputStream(file);
+ File outFile = File.createTempFile(FileServletTest.class.getName(),
null);
+ //System.out.println("" + outFile);
+ OutputStream out = new FileOutputStream(outFile);
+ FileServlet.stream(null, in, out);
+ assertTrue(FileUtils.contentEquals(file, outFile));
+ }
+
+ @Test
+ public void stream() throws Exception {
+ stream(null);
+ }
+
+
+ @Test
+ public void streamRange() throws Exception {
+ File file = new File("src" + File.separator + "test" + File.separator
+ "images" + File.separator + "test.png");
+ ChainedRange range = new ChainedRange("0-100,101-499,500-",
file.length());
+ stream(range);
+ }
+
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs