santiagopg 02/05/22 15:42:45
Modified: java/src/org/apache/xalan/xsltc/cmdline Transform.java
Log:
Experimental output system.
Revision Changes Path
1.17 +33 -32
xml-xalan/java/src/org/apache/xalan/xsltc/cmdline/Transform.java
Index: Transform.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/cmdline/Transform.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- Transform.java 22 May 2002 18:09:16 -0000 1.16
+++ Transform.java 22 May 2002 22:42:45 -0000 1.17
@@ -1,5 +1,5 @@
/*
- * @(#)$Id: Transform.java,v 1.16 2002/05/22 18:09:16 santiagopg Exp $
+ * @(#)$Id: Transform.java,v 1.17 2002/05/22 22:42:45 santiagopg Exp $
*
* The Apache Software License, Version 1.1
*
@@ -107,15 +107,17 @@
private boolean _isJarFileSpecified = false;
private Vector _params = null;
private boolean _uri, _debug;
+ private int _iterations;
private static boolean _allowExit = true;
public Transform(String className, String fileName,
- boolean uri, boolean debug) {
+ boolean uri, boolean debug, int iterations) {
_fileName = fileName;
_className = className;
_uri = uri;
_debug = debug;
+ _iterations = iterations;
}
public void setParameters(Vector params) {
@@ -201,39 +203,28 @@
}
// Transform the document
- final String method = _translet._method;
- final String encoding = _translet._encoding;
-
- TransletOutputHandler handler = null;
-
- if (_useExperimentalOutputSystem) {
- if (method != null) {
- if (method.equals("xml")) {
- handler = new StreamXMLOutput(System.out, encoding);
- }
- else if (method.equals("html")) {
- handler = new StreamHTMLOutput(System.out, encoding);
- }
- else if (method.equals("text")) {
- handler = null; // TODO
- }
- }
- else {
- // TODO
- handler = new StreamXMLOutput(System.out, encoding);
+ TransletOutputHandlerFactory tohFactory =
TransletOutputHandlerFactory.newInstance();
+ tohFactory.setOutputType(TransletOutputHandlerFactory.STREAM);
+ tohFactory.setEncoding(_translet._encoding);
+ tohFactory.setOutputMethod(_translet._method);
+
+ if (_iterations > 1) {
+ long mm = System.currentTimeMillis();
+ for (int i = 0; i < _iterations; i++) {
+ translet.transform(dom, _useExperimentalOutputSystem ?
+
tohFactory.getTransletOutputHandler() :
+
tohFactory.getOldTransletOutputHandler());
}
+ mm = System.currentTimeMillis() - mm;
+
+ System.err.println("transform = " + (mm / _iterations) + "
ms");
+ System.err.println("throughput = " + (1000.0 / (mm /
_iterations)) + " tps");
}
else {
- // Create our default SAX/DTD handler
- DefaultSAXOutputHandler saxHandler =
- new DefaultSAXOutputHandler(System.out, encoding);
- // Create a translet output handler and plug in the SAX/DTD
handler
- handler = new TextOutput((ContentHandler)saxHandler,
- (LexicalHandler)saxHandler, encoding);
+ translet.transform(dom, _useExperimentalOutputSystem ?
+ tohFactory.getTransletOutputHandler() :
+
tohFactory.getOldTransletOutputHandler());
}
-
- // Transform and pass output to the translet output handler
- translet.transform(dom, handler);
}
catch (TransletException e) {
if (_debug) e.printStackTrace();
@@ -305,6 +296,7 @@
try {
if (args.length > 0) {
int i;
+ int iterations = 1;
boolean uri = false, debug = false;
boolean isJarFileSpecified = false;
String jarFile = null;
@@ -327,6 +319,14 @@
else if (args[i].equals("-e")) {
_useExperimentalOutputSystem = true;
}
+ else if (args[i].equals("-n")) {
+ try {
+ iterations = Integer.parseInt(args[++i]);
+ }
+ catch (NumberFormatException e) {
+ // ignore
+ }
+ }
else {
printUsage();
}
@@ -336,7 +336,8 @@
if (args.length - i < 2) printUsage();
// Get document file and class name
- Transform handler = new Transform(args[i+1],args[i],uri,debug);
+ Transform handler = new Transform(args[i+1], args[i], uri,
+ debug, iterations);
handler.setJarFileInputSrc(isJarFileSpecified, jarFile);
// Parse stylesheet parameters
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]