cziegeler    01/10/10 02:18:01

  Modified:    src/org/apache/cocoon/components/parser Tag:
                        cocoon_20_branch JaxpParser.java
  Log:
  Optional setting of the lexical-handler for XMLReader. This patch
  allows to use Crimson instead of Xerces.
  Submitted by: Ovidiu Predescu [EMAIL PROTECTED]
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.3.2.5   +35 -18    
xml-cocoon2/src/org/apache/cocoon/components/parser/JaxpParser.java
  
  Index: JaxpParser.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/org/apache/cocoon/components/parser/JaxpParser.java,v
  retrieving revision 1.3.2.4
  retrieving revision 1.3.2.5
  diff -u -r1.3.2.4 -r1.3.2.5
  --- JaxpParser.java   2001/10/08 20:18:54     1.3.2.4
  +++ JaxpParser.java   2001/10/10 09:18:01     1.3.2.5
  @@ -7,18 +7,30 @@
    
*****************************************************************************/
   package org.apache.cocoon.components.parser;
   
  -import org.apache.avalon.framework.component.ComponentException;
  -import org.apache.avalon.framework.component.ComponentManager;
  -import org.apache.avalon.framework.component.Composable;
  -import org.apache.avalon.framework.thread.SingleThreaded;
  -import org.apache.cocoon.components.resolver.Resolver;
  -import org.apache.cocoon.util.ClassUtils;
  -import org.apache.cocoon.xml.AbstractXMLProducer;
  -import org.w3c.dom.DOMImplementation;
  -import org.w3c.dom.Document;
  -import org.xml.sax.*;
  -
  -import javax.xml.parsers.*;
  +import org.apache.avalon.framework.component.ComponentException;
  +
  +import org.apache.avalon.framework.component.ComponentManager;
  +
  +import org.apache.avalon.framework.component.Composable;
  +
  +import org.apache.avalon.framework.thread.SingleThreaded;
  +
  +import org.apache.cocoon.components.resolver.Resolver;
  +
  +import org.apache.cocoon.util.ClassUtils;
  +
  +import org.apache.cocoon.xml.AbstractXMLProducer;
  +
  +import org.w3c.dom.DOMImplementation;
  +
  +import org.w3c.dom.Document;
  +
  +import org.xml.sax.*;
  +
  +
  +
  +import javax.xml.parsers.*;
  +
   import java.io.IOException;
   
   /**
  @@ -26,7 +38,7 @@
    * If only we can get rid of the need for the Document...
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a>
  - * @version CVS $Revision: 1.3.2.4 $ $Date: 2001/10/08 20:18:54 $
  + * @version CVS $Revision: 1.3.2.5 $ $Date: 2001/10/10 09:18:01 $
    */
   public class JaxpParser extends AbstractXMLProducer
   implements Parser, ErrorHandler, Composable, SingleThreaded {
  @@ -60,7 +72,7 @@
           getLogger().debug("Looking up " + Resolver.ROLE);
           this.resolver = (Resolver)manager.lookup(Resolver.ROLE);
         } catch(ComponentException e) {
  -             // This exception is ok during initialization/startup.
  +        // This exception is ok during initialization/startup.
           getLogger().debug("Error in JaxpParser: Cannot find " + 
Resolver.ROLE);
         }
       }
  @@ -83,13 +95,18 @@
           XMLReader reader = parser.getXMLReader();
   
           reader.setFeature("http://xml.org/sax/features/namespace-prefixes";, 
true);
  -        reader.setProperty("http://xml.org/sax/properties/lexical-handler";,
  -                           super.lexicalHandler);
  +        try {
  +            
reader.setProperty("http://xml.org/sax/properties/lexical-handler";,
  +                        super.lexicalHandler);
  +        } catch (SAXException e) {
  +            getLogger().warn("SAX2 driver does not support property: "+
  +                             
"'http://xml.org/sax/properties/lexical-handler'");
  +        }
   
           reader.setErrorHandler(this);
           reader.setContentHandler(super.contentHandler);
  -             if(this.resolver != null)
  -                     reader.setEntityResolver(this.resolver);
  +        if(this.resolver != null)
  +            reader.setEntityResolver(this.resolver);
           reader.parse(in);
       }
   
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to