You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by co...@locus.apache.org on 2000/11/16 04:22:23 UTC
cvs commit: xml-xalan/java/src/org/apache/xalan/xslt Process.java
costin 00/11/15 19:22:23
Modified: java/src/org/apache/xalan/processor ProcessorInclude.java
StylesheetHandler.java TransformerFactoryImpl.java
java/src/org/apache/xalan/transformer TrAXFilter.java
TransformerImpl.java
java/src/org/apache/xalan/xslt Process.java
Log:
Use JAXP1.1 to get the XMLReader - there are 5 files where a new
XMLReader is created, and now we use SAXParserFactory to get
it.
We do check for NoSuchMethodError - that means the code will work even
if you have an old JAXP1.0 parser ( assuming you have the old parser
at the beginning of CLASSPATH, same for JAXP1.0 - since xalan
includes the latest ). Probably that will disapear when no longer needed.
I tested with crimson, xerces ( latest - JAXP1.1 ), xerces ( old - JAXP1.0),
it seems to work fine.
Also, in StylesheetHandler, add an extra check for NPE - during debug
it happened to have an unchecked null ( and it can't hurt to check )
Revision Changes Path
1.11 +16 -0 xml-xalan/java/src/org/apache/xalan/processor/ProcessorInclude.java
Index: ProcessorInclude.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/processor/ProcessorInclude.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- ProcessorInclude.java 2000/11/13 16:26:49 1.10
+++ ProcessorInclude.java 2000/11/16 03:22:21 1.11
@@ -224,6 +224,22 @@
InputSource inputSource = SAXSource.sourceToInputSource(source);
+ // Use JAXP1.1 ( if possible )
+ try {
+ javax.xml.parsers.SAXParserFactory factory=
+ javax.xml.parsers.SAXParserFactory.newInstance();
+ factory.setNamespaceAware( true );
+ javax.xml.parsers.SAXParser jaxpParser=
+ factory.newSAXParser();
+ reader=jaxpParser.getXMLReader();
+
+ } catch( javax.xml.parsers.ParserConfigurationException ex ) {
+ throw new org.xml.sax.SAXException( ex );
+ } catch( javax.xml.parsers.FactoryConfigurationError ex1 ) {
+ throw new org.xml.sax.SAXException( ex1.toString() );
+ } catch( NoSuchMethodError ex2 ) {
+ }
+
if (null == reader)
reader = XMLReaderFactory.createXMLReader();
1.25 +3 -2 xml-xalan/java/src/org/apache/xalan/processor/StylesheetHandler.java
Index: StylesheetHandler.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/processor/StylesheetHandler.java,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- StylesheetHandler.java 2000/11/15 22:25:11 1.24
+++ StylesheetHandler.java 2000/11/16 03:22:21 1.25
@@ -396,8 +396,9 @@
XSLTElementProcessor elemProcessor = def.getProcessorFor(uri, localName);
if (null == elemProcessor
- && Double.valueOf(getStylesheet().getVersion()).doubleValue()
- > Constants.XSLTVERSUPPORTED)
+ && ( null==getStylesheet()
+ || Double.valueOf(getStylesheet().getVersion()).doubleValue()
+ > Constants.XSLTVERSUPPORTED) )
{
elemProcessor = def.getProcessorForUnknown(uri, localName);
}
1.10 +32 -0 xml-xalan/java/src/org/apache/xalan/processor/TransformerFactoryImpl.java
Index: TransformerFactoryImpl.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/processor/TransformerFactoryImpl.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- TransformerFactoryImpl.java 2000/11/16 01:38:14 1.9
+++ TransformerFactoryImpl.java 2000/11/16 03:22:21 1.10
@@ -311,6 +311,22 @@
}
else
{
+ // Use JAXP1.1 ( if possible )
+ try {
+ javax.xml.parsers.SAXParserFactory factory=
+ javax.xml.parsers.SAXParserFactory.newInstance();
+ factory.setNamespaceAware( true );
+ javax.xml.parsers.SAXParser jaxpParser=
+ factory.newSAXParser();
+ reader=jaxpParser.getXMLReader();
+
+ } catch( javax.xml.parsers.ParserConfigurationException ex ) {
+ throw new org.xml.sax.SAXException( ex );
+ } catch( javax.xml.parsers.FactoryConfigurationError ex1 ) {
+ throw new org.xml.sax.SAXException( ex1.toString() );
+ } catch( NoSuchMethodError ex2 ) {
+ }
+
if (null == reader)
{
reader = XMLReaderFactory.createXMLReader();
@@ -592,6 +608,22 @@
XMLReader reader = null;
if (source instanceof SAXSource)
reader = ((SAXSource)source).getXMLReader();
+
+ // Use JAXP1.1 ( if possible )
+ try {
+ javax.xml.parsers.SAXParserFactory factory=
+ javax.xml.parsers.SAXParserFactory.newInstance();
+ factory.setNamespaceAware( true );
+ javax.xml.parsers.SAXParser jaxpParser=
+ factory.newSAXParser();
+ reader=jaxpParser.getXMLReader();
+
+ } catch( javax.xml.parsers.ParserConfigurationException ex ) {
+ throw new org.xml.sax.SAXException( ex );
+ } catch( javax.xml.parsers.FactoryConfigurationError ex1 ) {
+ throw new org.xml.sax.SAXException( ex1.toString() );
+ } catch( NoSuchMethodError ex2 ) {
+ }
if (null == reader)
reader = XMLReaderFactory.createXMLReader();
1.4 +23 -1 xml-xalan/java/src/org/apache/xalan/transformer/TrAXFilter.java
Index: TrAXFilter.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/transformer/TrAXFilter.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- TrAXFilter.java 2000/11/13 16:27:19 1.3
+++ TrAXFilter.java 2000/11/16 03:22:22 1.4
@@ -82,7 +82,29 @@
{
if(null == getParent())
{
- XMLReader parent = XMLReaderFactory.createXMLReader();
+ XMLReader reader=null;
+
+ // Use JAXP1.1 ( if possible )
+ try {
+ javax.xml.parsers.SAXParserFactory factory=
+ javax.xml.parsers.SAXParserFactory.newInstance();
+ factory.setNamespaceAware( true );
+ javax.xml.parsers.SAXParser jaxpParser=
+ factory.newSAXParser();
+ reader=jaxpParser.getXMLReader();
+
+ } catch( javax.xml.parsers.ParserConfigurationException ex ) {
+ throw new org.xml.sax.SAXException( ex );
+ } catch( javax.xml.parsers.FactoryConfigurationError ex1 ) {
+ throw new org.xml.sax.SAXException( ex1.toString() );
+ } catch( NoSuchMethodError ex2 ) {
+ }
+
+ XMLReader parent;
+ if( reader==null )
+ parent= XMLReaderFactory.createXMLReader();
+ else
+ parent=reader;
try
{
parent.setFeature("http://xml.org/sax/features/namespace-prefixes",
1.51 +32 -0 xml-xalan/java/src/org/apache/xalan/transformer/TransformerImpl.java
Index: TransformerImpl.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/transformer/TransformerImpl.java,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -r1.50 -r1.51
--- TransformerImpl.java 2000/11/15 16:18:46 1.50
+++ TransformerImpl.java 2000/11/16 03:22:22 1.51
@@ -473,6 +473,22 @@
if(source instanceof SAXSource)
reader = ((SAXSource)source).getXMLReader();
+ // Use JAXP1.1 ( if possible )
+ try {
+ javax.xml.parsers.SAXParserFactory factory=
+ javax.xml.parsers.SAXParserFactory.newInstance();
+ factory.setNamespaceAware( true );
+ javax.xml.parsers.SAXParser jaxpParser=
+ factory.newSAXParser();
+ reader=jaxpParser.getXMLReader();
+
+ } catch( javax.xml.parsers.ParserConfigurationException ex ) {
+ throw new org.xml.sax.SAXException( ex );
+ } catch( javax.xml.parsers.FactoryConfigurationError ex1 ) {
+ throw new org.xml.sax.SAXException( ex1.toString() );
+ } catch( NoSuchMethodError ex2 ) {
+ }
+
if (null == reader)
{
reader = XMLReaderFactory.createXMLReader();
@@ -888,6 +904,22 @@
XMLReader reader = null;
if(source instanceof SAXSource)
reader = ((SAXSource)source).getXMLReader();
+
+ // Use JAXP1.1 ( if possible )
+ try {
+ javax.xml.parsers.SAXParserFactory factory=
+ javax.xml.parsers.SAXParserFactory.newInstance();
+ factory.setNamespaceAware( true );
+ javax.xml.parsers.SAXParser jaxpParser=
+ factory.newSAXParser();
+ reader=jaxpParser.getXMLReader();
+
+ } catch( javax.xml.parsers.ParserConfigurationException ex ) {
+ throw new org.xml.sax.SAXException( ex );
+ } catch( javax.xml.parsers.FactoryConfigurationError ex1 ) {
+ throw new org.xml.sax.SAXException( ex1.toString() );
+ } catch( NoSuchMethodError ex2 ) {
+ }
if (null == reader)
{
1.17 +0 -11 xml-xalan/java/src/org/apache/xalan/xslt/Process.java
Index: Process.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xslt/Process.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- Process.java 2000/11/14 18:56:26 1.16
+++ Process.java 2000/11/16 03:22:23 1.17
@@ -104,17 +104,6 @@
import javax.xml.transform.OutputKeys;
import javax.xml.transform.TransformerException;
-// Needed SAX classes
-import org.xml.sax.InputSource;
-import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.ParserAdapter;
-import org.xml.sax.helpers.XMLReaderFactory;
-import org.xml.sax.ContentHandler;
-
-// Needed DOM classes
-import org.w3c.dom.Node;
-import org.w3c.dom.Document;
-
// Needed Serializer classes
import org.apache.xalan.serialize.OutputFormat;
import org.apache.xalan.serialize.Serializer;