vgritsenko 02/04/13 17:39:28
Modified: src/java/org/apache/cocoon/components/xslt
XSLTProcessorImpl.java
Log:
Use Source.toSAX in transform()
Revision Changes Path
1.20 +18 -24
xml-cocoon2/src/java/org/apache/cocoon/components/xslt/XSLTProcessorImpl.java
Index: XSLTProcessorImpl.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/xslt/XSLTProcessorImpl.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- XSLTProcessorImpl.java 10 Apr 2002 12:56:23 -0000 1.19
+++ XSLTProcessorImpl.java 14 Apr 2002 00:39:28 -0000 1.20
@@ -51,7 +51,6 @@
package org.apache.cocoon.components.xslt;
import org.apache.avalon.framework.activity.Disposable;
-import org.apache.avalon.framework.component.Component;
import org.apache.avalon.framework.component.ComponentException;
import org.apache.avalon.framework.component.ComponentManager;
import org.apache.avalon.framework.component.Composable;
@@ -69,10 +68,8 @@
import org.apache.cocoon.util.TraxErrorHandler;
import org.xml.sax.InputSource;
import org.xml.sax.XMLFilter;
-import org.xml.sax.XMLReader;
import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException;
-import org.xml.sax.helpers.XMLReaderFactory;
import javax.xml.transform.URIResolver;
import javax.xml.transform.TransformerException;
@@ -80,17 +77,13 @@
import javax.xml.transform.Templates;
import javax.xml.transform.Result;
import javax.xml.transform.Transformer;
-import javax.xml.transform.sax.SAXSource;
import javax.xml.transform.sax.SAXTransformerFactory;
import javax.xml.transform.sax.TemplatesHandler;
import javax.xml.transform.sax.TransformerHandler;
-import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import java.io.File;
import java.io.InputStream;
import java.io.IOException;
-import java.io.StringWriter;
-import java.io.Writer;
import java.util.HashMap;
/**
@@ -119,7 +112,7 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Ovidiu Predescu</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Stefano Mazzocchi</a>
- * @version CVS $Id: XSLTProcessorImpl.java,v 1.19 2002/04/10 12:56:23 stefano Exp $
+ * @version CVS $Id: XSLTProcessorImpl.java,v 1.20 2002/04/14 00:39:28 vgritsenko
Exp $
* @version 1.0
* @since July 11, 2001
*/
@@ -293,8 +286,8 @@
+ ", result = " + result);
}
TransformerHandler handler = getTransformerHandler(stylesheet);
- Transformer transformer = handler.getTransformer();
+ Transformer transformer = handler.getTransformer();
if (params != null) {
transformer.clearParameters();
String[] names = params.getNames();
@@ -302,15 +295,12 @@
transformer.setParameter(names[i],
params.getParameter(names[i]));
}
}
- InputSource is = source.getInputSource();
- InputStream bs = is.getByteStream();
+
this.getLogger().debug("XSLTProcessorImpl: starting transform");
// FIXME (VG): Is it possible to use Source's toSAX method?
- try {
- transformer.transform(new StreamSource(bs, is.getSystemId()),
result);
- } finally {
- bs.close();
- }
+ handler.setResult(result);
+ source.toSAX(handler);
+
this.getLogger().debug("XSLTProcessorImpl: transform done");
} catch (Exception e) {
throw new ProcessingException("Error in running Transformation", e);
@@ -331,15 +321,18 @@
try {
_factory = (SAXTransformerFactory)
ClassUtils.loadClass(factoryName).newInstance();
} catch (ClassNotFoundException cnfe) {
- this.getLogger().error("Cannot find the requested TrAX factory '" +
factoryName + "'. Using default TrAX Transformer Factory instead.");
+ getLogger().error("Cannot find the requested TrAX factory '" +
factoryName
+ + "'. Using default TrAX Transformer Factory instead.");
if (this.factory != null) return this.factory;
_factory = (SAXTransformerFactory) TransformerFactory.newInstance();
} catch (ClassCastException cce) {
- this.getLogger().error("The indicated class '" + factoryName + "'
is not a TrAX Transformer Factory. Using default TrAX Transformer Factory instead.");
+ getLogger().error("The indicated class '" + factoryName
+ + "' is not a TrAX Transformer Factory. Using default TrAX
Transformer Factory instead.");
if (this.factory != null) return this.factory;
_factory = (SAXTransformerFactory) TransformerFactory.newInstance();
} catch (Exception e) {
- this.getLogger().error("Error found loading the requested TrAX
Transformer Factory '" + factoryName + "'. Using default TrAX Transformer Factory
instead.");
+ getLogger().error("Error found loading the requested TrAX
Transformer Factory '"
+ + factoryName + "'. Using default TrAX Transformer Factory
instead.");
if (this.factory != null) return this.factory;
_factory = (SAXTransformerFactory) TransformerFactory.newInstance();
}
@@ -351,7 +344,8 @@
// FIXME (SM): implementation-specific parameter passing should be
// made more extensible.
if
(_factory.getClass().getName().equals("org.apache.xalan.processor.TransformerFactoryImpl"))
{
-
_factory.setAttribute("http://xml.apache.org/xalan/features/incremental", new Boolean
(incrementalProcessing));
+
_factory.setAttribute("http://xml.apache.org/xalan/features/incremental",
+ new Boolean (incrementalProcessing));
}
return _factory;
@@ -359,10 +353,9 @@
private Templates getTemplates(Source stylesheet, String id)
throws IOException, ProcessingException {
- if (!useStore)
+ if (!useStore) {
return null;
-
- getLogger().debug("XSLTProcessorImpl getTemplates: stylesheet " + id);
+ }
// we must augment the template ID with the factory classname since one
// transformer implementation cannot handle the instances of a
@@ -395,8 +388,9 @@
private void putTemplates (Templates templates, Source stylesheet, String id)
throws IOException, ProcessingException {
- if (!useStore)
+ if (!useStore) {
return;
+ }
// we must augment the template ID with the factory classname since one
// transformer implementation cannot handle the instances of a
----------------------------------------------------------------------
In case of troubles, e-mail: [EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]