curcuru 00/12/14 12:21:29
Modified: test/java/src/org/apache/qetest/trax ExamplesTest.java
Log:
Updated to use Serializer for SAX tests; note not all output files are
checked for valid golds yet.
Revision Changes Path
1.2 +63 -27
xml-xalan/test/java/src/org/apache/qetest/trax/ExamplesTest.java
Index: ExamplesTest.java
===================================================================
RCS file:
/home/cvs/xml-xalan/test/java/src/org/apache/qetest/trax/ExamplesTest.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ExamplesTest.java 2000/12/05 18:42:51 1.1
+++ ExamplesTest.java 2000/12/14 20:21:26 1.2
@@ -72,6 +72,11 @@
import javax.xml.transform.sax.*;
import javax.xml.transform.stream.*;
+// Use Xalan's own serializers for SAX ContentHandler output
+import org.apache.xalan.serialize.SerializerFactory;
+import org.apache.xalan.serialize.Serializer;
+import org.apache.xalan.templates.OutputProperties;
+
// Needed SAX, DOM, JAXP classes
// Needed SAX classes
import org.xml.sax.InputSource;
@@ -100,6 +105,7 @@
import java.io.Reader;
import java.io.IOException;
import java.io.FileInputStream;
+import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
@@ -127,7 +133,7 @@
* for each case - these should be updated as time permits.</p>
* @author [EMAIL PROTECTED]
* @author [EMAIL PROTECTED]
- * @version $Id: ExamplesTest.java,v 1.1 2000/12/05 18:42:51 curcuru Exp $
+ * @version $Id: ExamplesTest.java,v 1.2 2000/12/14 20:21:26 curcuru Exp $
*/
public class ExamplesTest extends XSLProcessorTestBase
{
@@ -159,6 +165,9 @@
/** Sample gold files used for specific transforms - with output format.
*/
protected String outputGoldName;
+ /** Sample gold files used for specific transforms - XMLFilter/Reader.
*/
+ protected String saxGoldName;
+
/** Gold file used for tests we haven't validated the correct results of
yet. */
protected String NOT_DEFINED;
@@ -219,6 +228,7 @@
param1GoldName = goldBasePath + "param1.out";
param2GoldName = goldBasePath + "param2.out";
outputGoldName = goldBasePath + "output.out";
+ saxGoldName = goldBasePath + "fooSAX.out";
NOT_DEFINED = goldBasePath + "need-validated-output-file-here.out";
return true;
}
@@ -259,19 +269,17 @@
reporter.logTraceMsg("exampleUseTemplatesObj(" + fooFile.xmlName +
", " + bazFile.xmlName + ", " + fooFile.inputName + ")");
exampleUseTemplatesObj(fooFile.xmlName, bazFile.xmlName,
fooFile.inputName);
-
reporter.logTraceMsg("exampleContentHandlerToContentHandler(fooFile.xmlName,
fooFile.inputName) SKIP");
- // @todo TEST UPDATE(1)
exampleContentHandlerToContentHandler(fooFile.xmlName, fooFile.inputName)
- // Each of these methods needs to be updated to serialize to disk
- // Simple exercise in plugging in the proper ContentHandler
+
reporter.logTraceMsg("exampleContentHandlerToContentHandler(fooFile.xmlName,
fooFile.inputName)");
+ exampleContentHandlerToContentHandler(fooFile.xmlName,
fooFile.inputName);
- reporter.logTraceMsg("exampleXMLReader(fooFile.xmlName,
fooFile.inputName) SKIP");
- // @todo TEST UPDATE(2) exampleXMLReader(fooFile.xmlName,
fooFile.inputName);
+ reporter.logTraceMsg("exampleXMLReader(fooFile.xmlName,
fooFile.inputName)");
+ exampleXMLReader(fooFile.xmlName, fooFile.inputName);
- reporter.logTraceMsg("exampleXMLFilter(fooFile.xmlName,
fooFile.inputName) SKIP");
- // @todo TEST UPDATE(3) exampleXMLFilter(fooFile.xmlName,
fooFile.inputName);
+ reporter.logTraceMsg("exampleXMLFilter(fooFile.xmlName,
fooFile.inputName)");
+ exampleXMLFilter(fooFile.xmlName, fooFile.inputName);
- reporter.logTraceMsg("exampleXMLFilterChain(fooFile.xmlName,
fooFile.inputName, foo2File, foo3File) SKIP");
- // @todo TEST UPDATE(4) exampleXMLFilterChain(fooFile.xmlName,
fooFile.inputName, foo2File, foo3File);
+ reporter.logTraceMsg("exampleXMLFilterChain(fooFile.xmlName,
fooFile.inputName, foo2File, foo3File)");
+ exampleXMLFilterChain(fooFile.xmlName, fooFile.inputName, foo2File,
foo3File);
reporter.logTraceMsg("exampleDOM2DOM(" + fooFile.xmlName + ", " +
fooFile.inputName + ")");
exampleDOM2DOM(fooFile.xmlName, fooFile.inputName);
@@ -312,6 +320,7 @@
// Create a transformer for the stylesheet.
Transformer transformer
= tfactory.newTransformer(new StreamSource(xslID));
+ // No need to setSystemId, the transformer can get it from the URL
// Transform the source XML to System.out.
transformer.transform( new StreamSource(sourceID),
@@ -340,7 +349,8 @@
// Create a transformer for the stylesheet.
Transformer transformer
- = tfactory.newTransformer(new StreamSource(xslID));
+ = tfactory.newTransformer(new StreamSource(new File(xslID)));
+ // No need to setSystemId, the transformer can get it from the File
// Transform the source XML to System.out.
transformer.transform( new StreamSource(new File(sourceID)),
@@ -496,13 +506,18 @@
// A TransformerHandler is a ContentHandler that will listen for
// SAX events, and transform them to the result.
+ reporter.logTraceMsg("newTransformerHandler..." + xslID);
TransformerHandler handler
= stfactory.newTransformerHandler(new StreamSource(xslID));
- // Set the result handling to be a serialization to System.out.
- Result result = null;
- // @todo TEST UPDATE - send to outNames.nextName()
- // @todo TEST UPDATE(1) result = new SAXResult(new
ExampleContentHandler());
+ // Set the result handling to be a serialization to the file
output stream.
+ Serializer serializer = SerializerFactory.getSerializer
+
(OutputProperties.getDefaultMethodProperties("xml"));
+ serializer.setOutputStream(new
FileOutputStream(outNames.nextName()));
+
+
+ Result result = new SAXResult(serializer.asContentHandler());
+
handler.setResult(result);
// Create a reader, and set it's content handler to be the
TransformerHandler.
@@ -531,10 +546,12 @@
reader.setProperty("http://xml.org/sax/properties/lexical-handler", handler);
// Parse the source XML, and send the parse events to the
TransformerHandler.
+ reporter.logTraceMsg("reader.parse " + sourceID);
reader.parse(sourceID);
+ reporter.logTraceMsg("Note: I have not double-checked that we're
comparing against the correct gold file! 14-Dec-00");
fileChecker.check(reporter, new File(outNames.currentName()),
- new File(fooFile.goldName),
+ new File(saxGoldName),
"exampleContentHandlerToContentHandler fileChecker
of:" + outNames.currentName());
}
catch (Throwable t)
@@ -560,16 +577,22 @@
reporter.logErrorMsg("exampleXMLReader:Processor does not
support SAX");
return;
}
+ reporter.logTraceMsg("newXMLFilter..." + xslID);
XMLReader reader
= ((SAXTransformerFactory) tfactory).newXMLFilter(new
StreamSource(xslID));
- // @todo TEST UPDATE - send to outNames.nextName()
- // @todo TEST UPDATE(2) reader.setContentHandler(new
ExampleContentHandler());
+ // Set the result handling to be a serialization to the file
output stream.
+ Serializer serializer = SerializerFactory.getSerializer
+
(OutputProperties.getDefaultMethodProperties("xml"));
+ serializer.setOutputStream(new
FileOutputStream(outNames.nextName()));
+
+ reader.setContentHandler(serializer.asContentHandler());
+ reporter.logTraceMsg("reader.parse " + sourceID);
reader.parse(new InputSource(sourceID));
fileChecker.check(reporter, new File(outNames.currentName()),
- new File(fooFile.goldName),
+ new File(saxGoldName),
"exampleXMLReader fileChecker of:" +
outNames.currentName());
}
catch (Throwable t)
@@ -610,9 +633,13 @@
} catch( NoSuchMethodError ex2 ) {
}
if( reader==null ) reader = XMLReaderFactory.createXMLReader();
- // The transformer will use a SAX parser as it's reader.
- // @todo TEST UPDATE - send to outNames.nextName()
- // @todo TEST UPDATE(3) reader.setContentHandler(new
ExampleContentHandler());
+
+ // Set the result handling to be a serialization to the file
output stream.
+ Serializer serializer = SerializerFactory.getSerializer
+
(OutputProperties.getDefaultMethodProperties("xml"));
+ serializer.setOutputStream(new
FileOutputStream(outNames.nextName()));
+ reader.setContentHandler(serializer.asContentHandler());
+
try
{
reader.setFeature("http://xml.org/sax/features/namespace-prefixes",
@@ -627,6 +654,7 @@
// TODO: User diagnostics.
}
+ reporter.logTraceMsg("newXMLFilter..." + xslID);
XMLFilter filter
= ((SAXTransformerFactory) tfactory).newXMLFilter(new
StreamSource(xslID));
@@ -635,10 +663,11 @@
// Now, when you call transformer.parse, it will set itself as
// the content handler for the parser object (it's "parent"), and
// will then call the parse method on the parser.
+ reporter.logTraceMsg("filter.parse " + sourceID);
filter.parse(new InputSource(sourceID));
fileChecker.check(reporter, new File(outNames.currentName()),
- new File(fooFile.goldName),
+ new File(saxGoldName),
"exampleXMLFilter fileChecker of:" +
outNames.currentName());
}
catch (Throwable t)
@@ -689,8 +718,11 @@
}
if( reader==null ) reader = XMLReaderFactory.createXMLReader();
+ reporter.logTraceMsg("newXMLFilter..." + xslID_1);
XMLFilter filter1 = stf.newXMLFilter(new StreamSource(xslID_1));
+ reporter.logTraceMsg("newXMLFilter..." + xslID_2);
XMLFilter filter2 = stf.newXMLFilter(new StreamSource(xslID_2));
+ reporter.logTraceMsg("newXMLFilter..." + xslID_3);
XMLFilter filter3 = stf.newXMLFilter(new StreamSource(xslID_3));
if (null == filter1) // If one success, assume all were success.
@@ -708,8 +740,11 @@
// transform3 will use transform2 as it's reader.
filter3.setParent(filter2);
- // @todo TEST UPDATE(4) filter3.setContentHandler(new
ExampleContentHandler());
- // filter3.setContentHandler(new
org.xml.sax.helpers.DefaultHandler());
+ // Set the result handling to be a serialization to the file
output stream.
+ Serializer serializer = SerializerFactory.getSerializer
+
(OutputProperties.getDefaultMethodProperties("xml"));
+ serializer.setOutputStream(new
FileOutputStream(outNames.nextName()));
+ filter3.setContentHandler(serializer.asContentHandler());
// Now, when you call transformer3 to parse, it will set
// itself as the ContentHandler for transform2, and
@@ -717,9 +752,10 @@
// content handler for transform1, and call transform1.parse,
// which will set itself as the content listener for the
// SAX parser, and call parser.parse(new
InputSource(fooFile.xmlName)).
+ reporter.logTraceMsg("filter3.parse " + sourceID);
filter3.parse(new InputSource(sourceID));
fileChecker.check(reporter, new File(outNames.currentName()),
- new File(fooFile.goldName),
+ new File(NOT_DEFINED),
"exampleXMLFilterChain fileChecker of:" +
outNames.currentName());
}
catch (Throwable t)