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 2008/06/23 03:40:03 UTC

svn commit: r670431 - in /xml/commons/trunk/java/external/src/javax/xml: datatype/ parsers/ transform/ validation/ xpath/

Author: mrglavas
Date: Sun Jun 22 18:40:03 2008
New Revision: 670431

URL: http://svn.apache.org/viewvc?rev=670431&view=rev
Log:
Adding newInstance(String, ClassLoader) methods to 
each of the factory classes as specified by JAXP 1.4.

Modified:
    xml/commons/trunk/java/external/src/javax/xml/datatype/DatatypeFactory.java
    xml/commons/trunk/java/external/src/javax/xml/datatype/FactoryFinder.java
    xml/commons/trunk/java/external/src/javax/xml/parsers/DocumentBuilderFactory.java
    xml/commons/trunk/java/external/src/javax/xml/parsers/FactoryFinder.java
    xml/commons/trunk/java/external/src/javax/xml/parsers/SAXParserFactory.java
    xml/commons/trunk/java/external/src/javax/xml/transform/FactoryFinder.java
    xml/commons/trunk/java/external/src/javax/xml/transform/TransformerFactory.java
    xml/commons/trunk/java/external/src/javax/xml/validation/SchemaFactory.java
    xml/commons/trunk/java/external/src/javax/xml/validation/SchemaFactoryFinder.java
    xml/commons/trunk/java/external/src/javax/xml/xpath/XPathFactory.java
    xml/commons/trunk/java/external/src/javax/xml/xpath/XPathFactoryFinder.java

Modified: xml/commons/trunk/java/external/src/javax/xml/datatype/DatatypeFactory.java
URL: http://svn.apache.org/viewvc/xml/commons/trunk/java/external/src/javax/xml/datatype/DatatypeFactory.java?rev=670431&r1=670430&r2=670431&view=diff
==============================================================================
--- xml/commons/trunk/java/external/src/javax/xml/datatype/DatatypeFactory.java (original)
+++ xml/commons/trunk/java/external/src/javax/xml/datatype/DatatypeFactory.java Sun Jun 22 18:40:03 2008
@@ -91,7 +91,6 @@
      */
     public static DatatypeFactory newInstance()
         throws DatatypeConfigurationException {
-
         try {
             return (DatatypeFactory) FactoryFinder.find(
                     /* The default property name according to the JAXP spec */
@@ -103,6 +102,22 @@
             throw new DatatypeConfigurationException(e.getMessage(), e.getException());
         }
     }
+    
+    public static DatatypeFactory newInstance(String factoryClassName,
+            ClassLoader classLoader) throws DatatypeConfigurationException {
+        if (factoryClassName == null) {
+            throw new DatatypeConfigurationException("factoryClassName cannot be null.");
+        }
+        if (classLoader == null) {
+            classLoader = SecuritySupport.getContextClassLoader();
+        }
+        try {
+            return (DatatypeFactory) FactoryFinder.newInstance(factoryClassName, classLoader);
+        }
+        catch (FactoryFinder.ConfigurationError e) {
+            throw new DatatypeConfigurationException(e.getMessage(), e.getException());
+        }
+    }
 
     /**
      * <p>Obtain a new instance of a <code>Duration</code>

Modified: xml/commons/trunk/java/external/src/javax/xml/datatype/FactoryFinder.java
URL: http://svn.apache.org/viewvc/xml/commons/trunk/java/external/src/javax/xml/datatype/FactoryFinder.java?rev=670431&r1=670430&r2=670431&view=diff
==============================================================================
--- xml/commons/trunk/java/external/src/javax/xml/datatype/FactoryFinder.java (original)
+++ xml/commons/trunk/java/external/src/javax/xml/datatype/FactoryFinder.java Sun Jun 22 18:40:03 2008
@@ -141,7 +141,7 @@
      * 
      * @throws ConfigurationError If class could not be created.
      */
-    private static Object newInstance(
+    static Object newInstance(
     	String className,
         ClassLoader classLoader)
         throws ConfigurationError {

Modified: xml/commons/trunk/java/external/src/javax/xml/parsers/DocumentBuilderFactory.java
URL: http://svn.apache.org/viewvc/xml/commons/trunk/java/external/src/javax/xml/parsers/DocumentBuilderFactory.java?rev=670431&r1=670430&r2=670431&view=diff
==============================================================================
--- xml/commons/trunk/java/external/src/javax/xml/parsers/DocumentBuilderFactory.java (original)
+++ xml/commons/trunk/java/external/src/javax/xml/parsers/DocumentBuilderFactory.java Sun Jun 22 18:40:03 2008
@@ -105,11 +105,26 @@
                 "javax.xml.parsers.DocumentBuilderFactory",
                 /* The fallback implementation class name */
                 "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl");
-        } catch (FactoryFinder.ConfigurationError e) {
-            throw new FactoryConfigurationError(e.getException(),
-                                                e.getMessage());
+        } 
+        catch (FactoryFinder.ConfigurationError e) {
+            throw new FactoryConfigurationError(e.getException(), e.getMessage());
+        }
+    }
+    
+    public static DocumentBuilderFactory newInstance(String factoryClassName,
+            ClassLoader classLoader) {
+        if (factoryClassName == null) {
+            throw new FactoryConfigurationError("factoryClassName cannot be null.");
+        }
+        if (classLoader == null) {
+            classLoader = SecuritySupport.getContextClassLoader();
+        }
+        try {
+            return (DocumentBuilderFactory) FactoryFinder.newInstance(factoryClassName, classLoader, false);
+        }
+        catch (FactoryFinder.ConfigurationError e) {
+            throw new FactoryConfigurationError(e.getException(), e.getMessage());
         }
-
     }
 
     /**

Modified: xml/commons/trunk/java/external/src/javax/xml/parsers/FactoryFinder.java
URL: http://svn.apache.org/viewvc/xml/commons/trunk/java/external/src/javax/xml/parsers/FactoryFinder.java?rev=670431&r1=670430&r2=670431&view=diff
==============================================================================
--- xml/commons/trunk/java/external/src/javax/xml/parsers/FactoryFinder.java (original)
+++ xml/commons/trunk/java/external/src/javax/xml/parsers/FactoryFinder.java Sun Jun 22 18:40:03 2008
@@ -93,7 +93,7 @@
      * @param doFallback true if the current ClassLoader should be tried as
      * a fallback if the class is not found using cl
      */
-    private static Object newInstance(String className, ClassLoader cl,
+    static Object newInstance(String className, ClassLoader cl,
                                       boolean doFallback)
         throws ConfigurationError
     {

Modified: xml/commons/trunk/java/external/src/javax/xml/parsers/SAXParserFactory.java
URL: http://svn.apache.org/viewvc/xml/commons/trunk/java/external/src/javax/xml/parsers/SAXParserFactory.java?rev=670431&r1=670430&r2=670431&view=diff
==============================================================================
--- xml/commons/trunk/java/external/src/javax/xml/parsers/SAXParserFactory.java (original)
+++ xml/commons/trunk/java/external/src/javax/xml/parsers/SAXParserFactory.java Sun Jun 22 18:40:03 2008
@@ -117,9 +117,25 @@
                 "javax.xml.parsers.SAXParserFactory",
                 /* The fallback implementation class name */
                 "org.apache.xerces.jaxp.SAXParserFactoryImpl");
-        } catch (FactoryFinder.ConfigurationError e) {
-            throw new FactoryConfigurationError(e.getException(),
-                                                e.getMessage());
+        } 
+        catch (FactoryFinder.ConfigurationError e) {
+            throw new FactoryConfigurationError(e.getException(), e.getMessage());
+        }
+    }
+    
+    public static SAXParserFactory newInstance(String factoryClassName,
+            ClassLoader classLoader) {
+        if (factoryClassName == null) {
+            throw new FactoryConfigurationError("factoryClassName cannot be null.");
+        }
+        if (classLoader == null) {
+            classLoader = SecuritySupport.getContextClassLoader();
+        }
+        try {
+            return (SAXParserFactory) FactoryFinder.newInstance(factoryClassName, classLoader, false);
+        }
+        catch (FactoryFinder.ConfigurationError e) {
+            throw new FactoryConfigurationError(e.getException(), e.getMessage());
         }
     }
     

Modified: xml/commons/trunk/java/external/src/javax/xml/transform/FactoryFinder.java
URL: http://svn.apache.org/viewvc/xml/commons/trunk/java/external/src/javax/xml/transform/FactoryFinder.java?rev=670431&r1=670430&r2=670431&view=diff
==============================================================================
--- xml/commons/trunk/java/external/src/javax/xml/transform/FactoryFinder.java (original)
+++ xml/commons/trunk/java/external/src/javax/xml/transform/FactoryFinder.java Sun Jun 22 18:40:03 2008
@@ -93,7 +93,7 @@
      * @param doFallback true if the current ClassLoader should be tried as
      * a fallback if the class is not found using cl
      */
-    private static Object newInstance(String className, ClassLoader cl,
+    static Object newInstance(String className, ClassLoader cl,
                                       boolean doFallback)
         throws ConfigurationError
     {

Modified: xml/commons/trunk/java/external/src/javax/xml/transform/TransformerFactory.java
URL: http://svn.apache.org/viewvc/xml/commons/trunk/java/external/src/javax/xml/transform/TransformerFactory.java?rev=670431&r1=670430&r2=670431&view=diff
==============================================================================
--- xml/commons/trunk/java/external/src/javax/xml/transform/TransformerFactory.java (original)
+++ xml/commons/trunk/java/external/src/javax/xml/transform/TransformerFactory.java Sun Jun 22 18:40:03 2008
@@ -116,10 +116,25 @@
             "javax.xml.transform.TransformerFactory",
             /* The fallback implementation class name */
             "org.apache.xalan.processor.TransformerFactoryImpl");
-        } catch (FactoryFinder.ConfigurationError e) {
-            throw new TransformerFactoryConfigurationError(
-                e.getException(),
-                e.getMessage());
+        } 
+        catch (FactoryFinder.ConfigurationError e) {
+            throw new TransformerFactoryConfigurationError(e.getException(), e.getMessage());
+        }
+    }
+    
+    public static TransformerFactory newInstance(String factoryClassName,
+            ClassLoader classLoader) throws TransformerFactoryConfigurationError {
+        if (factoryClassName == null) {
+            throw new TransformerFactoryConfigurationError("factoryClassName cannot be null.");
+        }
+        if (classLoader == null) {
+            classLoader = SecuritySupport.getContextClassLoader();
+        }
+        try {
+            return (TransformerFactory) FactoryFinder.newInstance(factoryClassName, classLoader, false);
+        }
+        catch (FactoryFinder.ConfigurationError e) {
+            throw new TransformerFactoryConfigurationError(e.getException(), e.getMessage());
         }
     }
 

Modified: xml/commons/trunk/java/external/src/javax/xml/validation/SchemaFactory.java
URL: http://svn.apache.org/viewvc/xml/commons/trunk/java/external/src/javax/xml/validation/SchemaFactory.java?rev=670431&r1=670430&r2=670431&view=diff
==============================================================================
--- xml/commons/trunk/java/external/src/javax/xml/validation/SchemaFactory.java (original)
+++ xml/commons/trunk/java/external/src/javax/xml/validation/SchemaFactory.java Sun Jun 22 18:40:03 2008
@@ -196,6 +196,24 @@
         return f;
     }
     
+    public static SchemaFactory newInstance(String schemaLanguage,
+            String factoryClassName, ClassLoader classLoader) {
+        if (schemaLanguage == null) {      
+            throw new NullPointerException();
+        }
+        if (factoryClassName == null) {
+            throw new IllegalArgumentException("factoryClassName cannot be null.");
+        }
+        if (classLoader == null) {
+            classLoader = SecuritySupport.getContextClassLoader();
+        }
+        SchemaFactory f = new SchemaFactoryFinder(classLoader).createInstance(factoryClassName);
+        if (f == null || !f.isSchemaLanguageSupported(schemaLanguage)) {
+            throw new IllegalArgumentException(schemaLanguage);
+        }
+        return f;
+    }
+    
 	/**
 	 * <p>Is specified schema supported by this <code>SchemaFactory</code>?</p>
 	 * 

Modified: xml/commons/trunk/java/external/src/javax/xml/validation/SchemaFactoryFinder.java
URL: http://svn.apache.org/viewvc/xml/commons/trunk/java/external/src/javax/xml/validation/SchemaFactoryFinder.java?rev=670431&r1=670430&r2=670431&view=diff
==============================================================================
--- xml/commons/trunk/java/external/src/javax/xml/validation/SchemaFactoryFinder.java (original)
+++ xml/commons/trunk/java/external/src/javax/xml/validation/SchemaFactoryFinder.java Sun Jun 22 18:40:03 2008
@@ -268,7 +268,7 @@
      * @return null
      *      if it fails. Error messages will be printed by this method. 
      */
-    private SchemaFactory createInstance( String className ) {
+    SchemaFactory createInstance( String className ) {
         try {
             if (debug) debugPrintln("instanciating "+className);
             Class clazz;

Modified: xml/commons/trunk/java/external/src/javax/xml/xpath/XPathFactory.java
URL: http://svn.apache.org/viewvc/xml/commons/trunk/java/external/src/javax/xml/xpath/XPathFactory.java?rev=670431&r1=670430&r2=670431&view=diff
==============================================================================
--- xml/commons/trunk/java/external/src/javax/xml/xpath/XPathFactory.java (original)
+++ xml/commons/trunk/java/external/src/javax/xml/xpath/XPathFactory.java Sun Jun 22 18:40:03 2008
@@ -64,10 +64,10 @@
      * @return Instance of an <code>XPathFactory</code>.
      */
     public static final XPathFactory newInstance() {
-    	
     	try {
         	return newInstance(DEFAULT_OBJECT_MODEL_URI);
-    	} catch (XPathFactoryConfigurationException xpathFactoryConfigurationException) {
+    	} 
+    	catch (XPathFactoryConfigurationException xpathFactoryConfigurationException) {
     		throw new RuntimeException(
     			"XPathFactory#newInstance() failed to create an XPathFactory for the default object model: "
     			+ DEFAULT_OBJECT_MODEL_URI
@@ -131,36 +131,57 @@
     */
     public static final XPathFactory newInstance(final String uri)
         throws XPathFactoryConfigurationException {
-        	
         if (uri == null) {
-        	throw new NullPointerException(
-        		"XPathFactory#newInstance(String uri) cannot be called with uri == null"
-        	);
+            throw new NullPointerException(
+                "XPathFactory#newInstance(String uri) cannot be called with uri == null"
+            );
         }
-
-		if (uri.length() == 0) {
-			throw new IllegalArgumentException(
-				"XPathFactory#newInstance(String uri) cannot be called with uri == \"\""
-			);
-		}
-		
-		ClassLoader classLoader = SecuritySupport.getContextClassLoader();
-        
+        if (uri.length() == 0) {
+            throw new IllegalArgumentException(
+                "XPathFactory#newInstance(String uri) cannot be called with uri == \"\""
+            );
+        }
+        ClassLoader classLoader = SecuritySupport.getContextClassLoader();
         if (classLoader == null) {            
             //use the current class loader
             classLoader = XPathFactory.class.getClassLoader();
         } 
-		
-		XPathFactory xpathFactory = new XPathFactoryFinder(classLoader).newFactory(uri);
-		
-		if (xpathFactory == null) {
-			throw new XPathFactoryConfigurationException(
-				"No XPathFctory implementation found for the object model: "
-				+ uri
-			);
-		}
-		
-		return xpathFactory;
+        XPathFactory xpathFactory = new XPathFactoryFinder(classLoader).newFactory(uri);
+        if (xpathFactory == null) {
+            throw new XPathFactoryConfigurationException(
+                "No XPathFctory implementation found for the object model: "
+                + uri
+            );
+        }
+        return xpathFactory;
+    }
+    
+    public static XPathFactory newInstance(String uri, String factoryClassName,
+            ClassLoader classLoader) throws XPathFactoryConfigurationException {
+        if (uri == null) {
+            throw new NullPointerException(
+                "XPathFactory#newInstance(String uri) cannot be called with uri == null"
+            );
+        }
+        if (uri.length() == 0) {
+            throw new IllegalArgumentException(
+                "XPathFactory#newInstance(String uri) cannot be called with uri == \"\""
+            );
+        }
+        if (factoryClassName == null) {
+            throw new XPathFactoryConfigurationException("factoryClassName cannot be null.");
+        }
+        if (classLoader == null) {
+            classLoader = SecuritySupport.getContextClassLoader();
+        }
+        XPathFactory xpathFactory = new XPathFactoryFinder(classLoader).createInstance(factoryClassName);
+        if (xpathFactory == null || !xpathFactory.isObjectModelSupported(uri)) {
+            throw new XPathFactoryConfigurationException(
+                "No XPathFctory implementation found for the object model: "
+                + uri
+            );
+        }
+        return xpathFactory;
     }
 
 	/**

Modified: xml/commons/trunk/java/external/src/javax/xml/xpath/XPathFactoryFinder.java
URL: http://svn.apache.org/viewvc/xml/commons/trunk/java/external/src/javax/xml/xpath/XPathFactoryFinder.java?rev=670431&r1=670430&r2=670431&view=diff
==============================================================================
--- xml/commons/trunk/java/external/src/javax/xml/xpath/XPathFactoryFinder.java (original)
+++ xml/commons/trunk/java/external/src/javax/xml/xpath/XPathFactoryFinder.java Sun Jun 22 18:40:03 2008
@@ -248,7 +248,7 @@
      * @return null
      *      if it fails. Error messages will be printed by this method. 
      */
-    private XPathFactory createInstance( String className ) {
+    XPathFactory createInstance( String className ) {
         try {
             if (debug) debugPrintln("instanciating "+className);
             Class clazz;