aboutsummaryrefslogtreecommitdiffstats
path: root/test/java/org/apache/fop/memory
diff options
context:
space:
mode:
Diffstat (limited to 'test/java/org/apache/fop/memory')
-rw-r--r--test/java/org/apache/fop/memory/MemoryEater.java33
1 files changed, 25 insertions, 8 deletions
diff --git a/test/java/org/apache/fop/memory/MemoryEater.java b/test/java/org/apache/fop/memory/MemoryEater.java
index ed8f46441..ae51f2c27 100644
--- a/test/java/org/apache/fop/memory/MemoryEater.java
+++ b/test/java/org/apache/fop/memory/MemoryEater.java
@@ -23,15 +23,19 @@ import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
+import java.net.MalformedURLException;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
+import javax.xml.transform.Templates;
import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.sax.SAXResult;
import javax.xml.transform.sax.SAXTransformerFactory;
import javax.xml.transform.stream.StreamSource;
import org.apache.commons.io.output.NullOutputStream;
+
import org.apache.fop.apps.Fop;
import org.apache.fop.apps.FopFactory;
import org.apache.fop.apps.MimeConstants;
@@ -41,17 +45,23 @@ import org.apache.fop.apps.MimeConstants;
*/
public class MemoryEater {
- private static void eatMemory(File foFile, int replicatorRepeats) throws Exception {
-
- SAXTransformerFactory tFactory = (SAXTransformerFactory)SAXTransformerFactory.newInstance();
- FopFactory fopFactory = FopFactory.newInstance();
-
+ private SAXTransformerFactory tFactory
+ = (SAXTransformerFactory)SAXTransformerFactory.newInstance();
+ private FopFactory fopFactory = FopFactory.newInstance();
+ private Templates replicatorTemplates;
+
+ public MemoryEater() throws TransformerConfigurationException, MalformedURLException {
File xsltFile = new File("test/xsl/fo-replicator.xsl");
Source xslt = new StreamSource(xsltFile);
+ replicatorTemplates = tFactory.newTemplates(xslt);
+ fopFactory.setBaseURL("C:/Dev/FOP/testing/xslt-1.0-book");
+ }
+
+ private void eatMemory(File foFile, int replicatorRepeats) throws Exception {
Source src = new StreamSource(foFile);
- Transformer transformer = tFactory.newTransformer(xslt);
+ Transformer transformer = replicatorTemplates.newTransformer();
transformer.setParameter("repeats", new Integer(replicatorRepeats));
OutputStream out = new NullOutputStream(); //write to /dev/nul
@@ -78,13 +88,17 @@ public class MemoryEater {
boolean doPrompt = true; //true if you want a chance to start the monitoring console
try {
int replicatorRepeats = 2;
+ int runRepeats = 1;
if (args.length > 0) {
replicatorRepeats = Integer.parseInt(args[0]);
}
+ if (args.length > 1) {
+ runRepeats = Integer.parseInt(args[1]);
+ }
File testFile = new File("examples/fo/basic/readme.fo");
System.out.println("MemoryEater! About to replicate the test file "
- + replicatorRepeats + " times...");
+ + replicatorRepeats + " times and run it " + runRepeats + " times...");
if (doPrompt) {
prompt();
}
@@ -92,7 +106,10 @@ public class MemoryEater {
System.out.println("Processing...");
long start = System.currentTimeMillis();
- eatMemory(testFile, replicatorRepeats);
+ MemoryEater app = new MemoryEater();
+ for (int i = 0; i < runRepeats; i++) {
+ app.eatMemory(testFile, replicatorRepeats);
+ }
long duration = System.currentTimeMillis() - start;
System.out.println("Success! Job took " + duration + " ms");