John,
"Morrison, John" wrote:
>
> OK. That makes sense. Could you please regenerate the patch against the
> 20_branch and the head and I'll commit it?
thanks, here's the patch. You can apply it to both the head and the branch -
they're identical.
Joerg Henne
? serialization/.nbattrs
Index: serialization/AbstractSerializer.java
===================================================================
RCS file:
/home/cvspublic/xml-cocoon2/src/org/apache/cocoon/serialization/AbstractSerializer.java,v
retrieving revision 1.6
diff -u -r1.6 AbstractSerializer.java
--- serialization/AbstractSerializer.java 2001/10/11 07:28:23 1.6
+++ serialization/AbstractSerializer.java 2001/10/31 14:25:19
@@ -11,7 +11,6 @@
import org.apache.avalon.excalibur.pool.Recyclable;
import org.apache.cocoon.xml.AbstractXMLPipe;
-import java.io.BufferedOutputStream;
import java.io.OutputStream;
/**
@@ -32,7 +31,7 @@
* Set the <code>OutputStream</code> where the XML should be serialized.
*/
public void setOutputStream(OutputStream out) {
- this.output = new BufferedOutputStream(out);
+ this.output = out;
}
/**
Index: serialization/AbstractTextSerializer.java
===================================================================
RCS file:
/home/cvspublic/xml-cocoon2/src/org/apache/cocoon/serialization/AbstractTextSerializer.java,v
retrieving revision 1.8
diff -u -r1.8 AbstractTextSerializer.java
--- serialization/AbstractTextSerializer.java 2001/10/11 07:28:23 1.8
+++ serialization/AbstractTextSerializer.java 2001/10/31 14:25:20
@@ -24,7 +24,13 @@
import javax.xml.transform.OutputKeys;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.sax.SAXTransformerFactory;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.Properties;
+import java.io.OutputStream;
+import java.io.BufferedOutputStream;
/**
* @author <a href="mailto:[EMAIL PROTECTED]">Pierpaolo Fumagalli</a>
@@ -68,6 +74,16 @@
private boolean hasMappings = false;
/**
+ * The default output buffer size.
+ */
+ private static final int DEFAULT_BUFFER_SIZE = 8192;
+
+ /**
+ * The output buffer size to use.
+ */
+ private int outputBufferSize = DEFAULT_BUFFER_SIZE;
+
+ /**
* Helper for TransformerFactory.
*/
protected SAXTransformerFactory getTransformerFactory()
@@ -80,11 +96,31 @@
}
/**
+ * Set the <code>OutputStream</code> where the XML should be serialized.
+ */
+ public void setOutputStream(OutputStream out) {
+ /*
+ * Add a level of buffering to the output stream. Xalan serializes
+ * every character individually. In conjunction with chunked
+ * transfer encoding this would otherwise lead to a whopping 6-fold
+ * increase of data on the wire.
+ */
+ BufferedOutputStream streamBuffer = new BufferedOutputStream(out,
+outputBufferSize);
+ super.setOutputStream(streamBuffer);
+ }
+
+ /**
* Set the configurations for this serializer.
*/
public void configure(Configuration conf)
throws ConfigurationException {
+ // configure buffer size
+ Configuration bsc = conf.getChild("buffer-size", false);
+ if(null != bsc)
+ outputBufferSize = conf.getValueAsInteger(DEFAULT_BUFFER_SIZE);
+
+ // configure xalan
Configuration cdataSectionElements = conf.getChild("cdata-section-elements");
Configuration dtPublic = conf.getChild("doctype-public");
Configuration dtSystem = conf.getChild("doctype-system");
Index: serialization/HTMLSerializer.java
===================================================================
RCS file:
/home/cvspublic/xml-cocoon2/src/org/apache/cocoon/serialization/HTMLSerializer.java,v
retrieving revision 1.4
diff -u -r1.4 HTMLSerializer.java
--- serialization/HTMLSerializer.java 2001/10/11 07:28:23 1.4
+++ serialization/HTMLSerializer.java 2001/10/31 14:25:20
@@ -32,7 +32,7 @@
super.setOutputStream(out);
handler = getTransformerFactory().newTransformerHandler();
format.put(OutputKeys.METHOD,"html");
- handler.setResult(new StreamResult(out));
+ handler.setResult(new StreamResult(this.output));
handler.getTransformer().setOutputProperties(format);
this.setContentHandler(handler);
this.setLexicalHandler(handler);
Index: serialization/TextSerializer.java
===================================================================
RCS file:
/home/cvspublic/xml-cocoon2/src/org/apache/cocoon/serialization/TextSerializer.java,v
retrieving revision 1.4
diff -u -r1.4 TextSerializer.java
--- serialization/TextSerializer.java 2001/10/11 07:28:23 1.4
+++ serialization/TextSerializer.java 2001/10/31 14:25:20
@@ -32,7 +32,7 @@
super.setOutputStream(out);
handler = getTransformerFactory().newTransformerHandler();
format.put(OutputKeys.METHOD,"text");
- handler.setResult(new StreamResult(out));
+ handler.setResult(new StreamResult(this.output));
handler.getTransformer().setOutputProperties(format);
this.setContentHandler(handler);
this.setLexicalHandler(handler);
Index: serialization/XMLSerializer.java
===================================================================
RCS file:
/home/cvspublic/xml-cocoon2/src/org/apache/cocoon/serialization/XMLSerializer.java,v
retrieving revision 1.4
diff -u -r1.4 XMLSerializer.java
--- serialization/XMLSerializer.java 2001/10/11 07:28:23 1.4
+++ serialization/XMLSerializer.java 2001/10/31 14:25:20
@@ -32,7 +32,7 @@
super.setOutputStream(out);
this.handler = getTransformerFactory().newTransformerHandler();
format.put(OutputKeys.METHOD,"xml");
- handler.setResult(new StreamResult(out));
+ handler.setResult(new StreamResult(this.output));
handler.getTransformer().setOutputProperties(format);
this.setContentHandler(handler);
this.setLexicalHandler(handler);
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]