You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-cvs@xml.apache.org by mr...@apache.org on 2005/06/22 04:20:47 UTC

cvs commit: xml-commons/java/external/src/org/xml/sax/helpers ParserFactory.java

mrglavas    2005/06/21 19:20:47

  Modified:    java/external/src/org/xml/sax/helpers ParserFactory.java
  Log:
  Use SecuritySupport when looking up org.xml.sax.parser system property.
  
  Revision  Changes    Path
  1.7       +123 -129  xml-commons/java/external/src/org/xml/sax/helpers/ParserFactory.java
  
  Index: ParserFactory.java
  ===================================================================
  RCS file: /home/cvs/xml-commons/java/external/src/org/xml/sax/helpers/ParserFactory.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ParserFactory.java	8 Apr 2005 10:53:24 -0000	1.6
  +++ ParserFactory.java	22 Jun 2005 02:20:47 -0000	1.7
  @@ -1,129 +1,123 @@
  -// SAX parser factory.
  -// http://www.saxproject.org
  -// No warranty; no copyright -- use this as you will.
  -// $Id$
  -
  -package org.xml.sax.helpers;
  -
  -import java.lang.ClassNotFoundException;
  -import java.lang.IllegalAccessException;
  -import java.lang.InstantiationException;
  -import java.lang.SecurityException;
  -import java.lang.ClassCastException;
  -
  -import org.xml.sax.Parser;
  -
  -
  -/**
  - * Java-specific class for dynamically loading SAX parsers.
  - *
  - * <blockquote>
  - * <em>This module, both source code and documentation, is in the
  - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
  - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
  - * for further information.
  - * </blockquote>
  - *
  - * <p><strong>Note:</strong> This class is designed to work with the now-deprecated
  - * SAX1 {@link org.xml.sax.Parser Parser} class.  SAX2 applications should use
  - * {@link org.xml.sax.helpers.XMLReaderFactory XMLReaderFactory} instead.</p>
  - *
  - * <p>ParserFactory is not part of the platform-independent definition
  - * of SAX; it is an additional convenience class designed
  - * specifically for Java XML application writers.  SAX applications
  - * can use the static methods in this class to allocate a SAX parser
  - * dynamically at run-time based either on the value of the
  - * `org.xml.sax.parser' system property or on a string containing the class
  - * name.</p>
  - *
  - * <p>Note that the application still requires an XML parser that
  - * implements SAX1.</p>
  - *
  - * @deprecated This class works with the deprecated
  - *             {@link org.xml.sax.Parser Parser}
  - *             interface.
  - * @since SAX 1.0
  - * @author David Megginson
  - * @version 2.0.1 (sax2r2)
  - */
  -public class ParserFactory {
  -    
  -    
  -    /**
  -     * Private null constructor.
  -     */
  -    private ParserFactory ()
  -    {
  -    }
  -    
  -    
  -    /**
  -     * Create a new SAX parser using the `org.xml.sax.parser' system property.
  -     *
  -     * <p>The named class must exist and must implement the
  -     * {@link org.xml.sax.Parser Parser} interface.</p>
  -     *
  -     * @exception java.lang.NullPointerException There is no value
  -     *            for the `org.xml.sax.parser' system property.
  -     * @exception java.lang.ClassNotFoundException The SAX parser
  -     *            class was not found (check your CLASSPATH).
  -     * @exception IllegalAccessException The SAX parser class was
  -     *            found, but you do not have permission to load
  -     *            it.
  -     * @exception InstantiationException The SAX parser class was
  -     *            found but could not be instantiated.
  -     * @exception java.lang.ClassCastException The SAX parser class
  -     *            was found and instantiated, but does not implement
  -     *            org.xml.sax.Parser.
  -     * @see #makeParser(java.lang.String)
  -     * @see org.xml.sax.Parser
  -     */
  -    public static Parser makeParser ()
  -	throws ClassNotFoundException,
  -	IllegalAccessException, 
  -	InstantiationException,
  -	NullPointerException,
  -	ClassCastException
  -    {
  -	String className = System.getProperty("org.xml.sax.parser");
  -	if (className == null) {
  -	    throw new NullPointerException("No value for sax.parser property");
  -	} else {
  -	    return makeParser(className);
  -	}
  -    }
  -    
  -    
  -    /**
  -     * Create a new SAX parser object using the class name provided.
  -     *
  -     * <p>The named class must exist and must implement the
  -     * {@link org.xml.sax.Parser Parser} interface.</p>
  -     *
  -     * @param className A string containing the name of the
  -     *                  SAX parser class.
  -     * @exception java.lang.ClassNotFoundException The SAX parser
  -     *            class was not found (check your CLASSPATH).
  -     * @exception IllegalAccessException The SAX parser class was
  -     *            found, but you do not have permission to load
  -     *            it.
  -     * @exception InstantiationException The SAX parser class was
  -     *            found but could not be instantiated.
  -     * @exception java.lang.ClassCastException The SAX parser class
  -     *            was found and instantiated, but does not implement
  -     *            org.xml.sax.Parser.
  -     * @see #makeParser()
  -     * @see org.xml.sax.Parser
  -     */
  -    public static Parser makeParser (String className)
  -	throws ClassNotFoundException,
  -	IllegalAccessException, 
  -	InstantiationException,
  -	ClassCastException
  -    {
  -	return (Parser) NewInstance.newInstance (
  -		NewInstance.getClassLoader (), className);
  -    }
  -    
  -}
  -
  +//SAX parser factory.
  +//http://www.saxproject.org
  +//No warranty; no copyright -- use this as you will.
  +//$Id$
  +
  +package org.xml.sax.helpers;
  +
  +import org.xml.sax.Parser;
  +
  +/**
  + * Java-specific class for dynamically loading SAX parsers.
  + *
  + * <blockquote>
  + * <em>This module, both source code and documentation, is in the
  + * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
  + * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
  + * for further information.
  + * </blockquote>
  + *
  + * <p><strong>Note:</strong> This class is designed to work with the now-deprecated
  + * SAX1 {@link org.xml.sax.Parser Parser} class.  SAX2 applications should use
  + * {@link org.xml.sax.helpers.XMLReaderFactory XMLReaderFactory} instead.</p>
  + *
  + * <p>ParserFactory is not part of the platform-independent definition
  + * of SAX; it is an additional convenience class designed
  + * specifically for Java XML application writers.  SAX applications
  + * can use the static methods in this class to allocate a SAX parser
  + * dynamically at run-time based either on the value of the
  + * `org.xml.sax.parser' system property or on a string containing the class
  + * name.</p>
  + *
  + * <p>Note that the application still requires an XML parser that
  + * implements SAX1.</p>
  + *
  + * @deprecated This class works with the deprecated
  + *             {@link org.xml.sax.Parser Parser}
  + *             interface.
  + * @since SAX 1.0
  + * @author David Megginson
  + * @version 2.0.1 (sax2r2)
  + */
  +public class ParserFactory {
  +    
  +    
  +    /**
  +     * Private null constructor.
  +     */
  +    private ParserFactory ()
  +    {
  +    }
  +    
  +    
  +    /**
  +     * Create a new SAX parser using the `org.xml.sax.parser' system property.
  +     *
  +     * <p>The named class must exist and must implement the
  +     * {@link org.xml.sax.Parser Parser} interface.</p>
  +     *
  +     * @exception java.lang.NullPointerException There is no value
  +     *            for the `org.xml.sax.parser' system property.
  +     * @exception java.lang.ClassNotFoundException The SAX parser
  +     *            class was not found (check your CLASSPATH).
  +     * @exception IllegalAccessException The SAX parser class was
  +     *            found, but you do not have permission to load
  +     *            it.
  +     * @exception InstantiationException The SAX parser class was
  +     *            found but could not be instantiated.
  +     * @exception java.lang.ClassCastException The SAX parser class
  +     *            was found and instantiated, but does not implement
  +     *            org.xml.sax.Parser.
  +     * @see #makeParser(java.lang.String)
  +     * @see org.xml.sax.Parser
  +     */
  +    public static Parser makeParser ()
  +    throws ClassNotFoundException,
  +    IllegalAccessException, 
  +    InstantiationException,
  +    NullPointerException,
  +    ClassCastException
  +    {
  +        SecuritySupport ss = SecuritySupport.getInstance();
  +        String className = ss.getSystemProperty("org.xml.sax.parser");
  +        if (className == null) {
  +            throw new NullPointerException("No value for sax.parser property");
  +        } else {
  +            return makeParser(className);
  +        }
  +    }
  +    
  +    
  +    /**
  +     * Create a new SAX parser object using the class name provided.
  +     *
  +     * <p>The named class must exist and must implement the
  +     * {@link org.xml.sax.Parser Parser} interface.</p>
  +     *
  +     * @param className A string containing the name of the
  +     *                  SAX parser class.
  +     * @exception java.lang.ClassNotFoundException The SAX parser
  +     *            class was not found (check your CLASSPATH).
  +     * @exception IllegalAccessException The SAX parser class was
  +     *            found, but you do not have permission to load
  +     *            it.
  +     * @exception InstantiationException The SAX parser class was
  +     *            found but could not be instantiated.
  +     * @exception java.lang.ClassCastException The SAX parser class
  +     *            was found and instantiated, but does not implement
  +     *            org.xml.sax.Parser.
  +     * @see #makeParser()
  +     * @see org.xml.sax.Parser
  +     */
  +    public static Parser makeParser (String className)
  +    throws ClassNotFoundException,
  +    IllegalAccessException, 
  +    InstantiationException,
  +    ClassCastException
  +    {
  +        return (Parser) NewInstance.newInstance (
  +                NewInstance.getClassLoader (), className);
  +    }
  +    
  +}
  +