jaxws/src/java.xml.ws/share/classes/javax/xml/soap/SOAPFactory.java
changeset 34467 024f1ce7da02
parent 31746 7573de6b8e46
child 45678 65fdff10664d
--- a/jaxws/src/java.xml.ws/share/classes/javax/xml/soap/SOAPFactory.java	Wed Jul 05 21:00:56 2017 +0200
+++ b/jaxws/src/java.xml.ws/share/classes/javax/xml/soap/SOAPFactory.java	Fri Nov 27 11:28:43 2015 +0100
@@ -48,17 +48,10 @@
 public abstract class SOAPFactory {
 
     /**
-     * A constant representing the property used to lookup the name of
-     * a {@code SOAPFactory} implementation class.
-     */
-    static private final String SOAP_FACTORY_PROPERTY =
-        "javax.xml.soap.SOAPFactory";
-
-    /**
      * Class name of default {@code SOAPFactory} implementation.
      */
-    static final String DEFAULT_SOAP_FACTORY
-        = "com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPFactory1_1Impl";
+    private static final String DEFAULT_SOAP_FACTORY
+            = "com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPFactory1_1Impl";
 
     /**
      * Creates a {@code SOAPElement} object from an existing DOM
@@ -239,18 +232,10 @@
 
     /**
      * Creates a new {@code SOAPFactory} object that is an instance of
-     * the default implementation (SOAP 1.1),
+     * the default implementation (SOAP 1.1).
      *
-     * This method uses the following ordered lookup procedure to determine the SOAPFactory implementation class to load:
-     * <UL>
-     *  <LI> Use the javax.xml.soap.SOAPFactory system property.
-     *  <LI> Use the properties file "lib/jaxm.properties" in the JRE directory. This configuration file is in standard
-     * java.util.Properties format and contains the fully qualified name of the implementation class with the key being the
-     * system property defined above.
-     *  <LI> Use the Services API (as detailed in the JAR specification), if available, to determine the classname. The Services API
-     * will look for a classname in the file META-INF/services/javax.xml.soap.SOAPFactory in jars available to the runtime.
-     *  <LI> Use the SAAJMetaFactory instance to locate the SOAPFactory implementation class.
-     * </UL>
+     * This method uses the lookup procedure specified in {@link javax.xml.soap} to locate and load the
+     * {@link javax.xml.soap.SOAPFactory} class.
      *
      * @return a new instance of a {@code SOAPFactory}
      *
@@ -262,10 +247,13 @@
         throws SOAPException
     {
         try {
-            SOAPFactory factory = (SOAPFactory) FactoryFinder.find(
-                    SOAP_FACTORY_PROPERTY, DEFAULT_SOAP_FACTORY, false);
-            if (factory != null)
-                return factory;
+            SOAPFactory factory = FactoryFinder.find(
+                    SOAPFactory.class,
+                    DEFAULT_SOAP_FACTORY,
+                    false);
+            if (factory != null) return factory;
+
+            // leave it on SAAJMetaFactory
             return newInstance(SOAPConstants.SOAP_1_1_PROTOCOL);
         } catch (Exception ex) {
             throw new SOAPException(