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;
  
  
  

Reply via email to