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;