--- old/src/java.xml.ws/share/classes/javax/xml/soap/SAAJMetaFactory.java 2015-10-26 13:45:52.000000000 +0100 +++ new/src/java.xml.ws/share/classes/javax/xml/soap/SAAJMetaFactory.java 2015-10-26 13:45:52.000000000 +0100 @@ -27,25 +27,49 @@ /** * The access point for the implementation classes of the factories defined in the -* SAAJ API. All of the {@code newInstance} methods defined on factories in -* SAAJ 1.3 defer to instances of this class to do the actual object creation. +* SAAJ API. The {@code newInstance} methods defined on factories {@link SOAPFactory} and +* {@link MessageFactory} in SAAJ 1.3 defer to instances of this class to do the actual object creation. * The implementations of {@code newInstance()} methods (in SOAPFactory and MessageFactory) * that existed in SAAJ 1.2 have been updated to also delegate to the SAAJMetaFactory when the SAAJ 1.2 * defined lookup fails to locate the Factory implementation class name. * *

-* SAAJMetaFactory is a service provider interface. There are no public methods on this +* SAAJMetaFactory is a service provider interface and it uses similar lookup mechanism as other SAAJ factories +* to get actual instance: +* +*

+* +*

+* There are no public methods on this * class. * * @author SAAJ RI Development Team * @since 1.6, SAAJ 1.3 */ - public abstract class SAAJMetaFactory { - static private final String META_FACTORY_CLASS_PROPERTY = - "javax.xml.soap.MetaFactory"; - static final String DEFAULT_META_FACTORY_CLASS = - "com.sun.xml.internal.messaging.saaj.soap.SAAJMetaFactoryImpl"; + + private static final String META_FACTORY_DEPRECATED_CLASS_PROPERTY = + "javax.xml.soap.MetaFactory"; + + private static final String DEFAULT_META_FACTORY_CLASS = + "com.sun.xml.internal.messaging.saaj.soap.SAAJMetaFactoryImpl"; /** * Creates a new instance of a concrete {@code SAAJMetaFactory} object. @@ -54,27 +78,20 @@ * implementation. Service providers provide the name of their {@code SAAJMetaFactory} * implementation. * - * This method uses the following ordered lookup procedure to determine the SAAJMetaFactory implementation class to load: - *

+ * This method uses the lookup procedure specified in {@link javax.xml.soap} to locate and load the + * {@link javax.xml.soap.SAAJMetaFactory} class. * * @return a concrete {@code SAAJMetaFactory} object * @exception SOAPException if there is an error in creating the {@code SAAJMetaFactory} */ static SAAJMetaFactory getInstance() throws SOAPException { try { - SAAJMetaFactory instance = - (SAAJMetaFactory) FactoryFinder.find( - META_FACTORY_CLASS_PROPERTY, - DEFAULT_META_FACTORY_CLASS); - return instance; + return FactoryFinder.find( + SAAJMetaFactory.class, + DEFAULT_META_FACTORY_CLASS, + true, + META_FACTORY_DEPRECATED_CLASS_PROPERTY); + } catch (Exception e) { throw new SOAPException( "Unable to create SAAJ meta-factory" + e.getMessage()); @@ -88,6 +105,7 @@ * the given {@code String} protocol. * * @param protocol a {@code String} indicating the protocol + * @return a {@link MessageFactory}, not null * @exception SOAPException if there is an error in creating the * MessageFactory * @see SOAPConstants#SOAP_1_1_PROTOCOL @@ -102,6 +120,7 @@ * the given {@code String} protocol. * * @param protocol a {@code String} indicating the protocol + * @return a {@link SOAPFactory}, not null * @exception SOAPException if there is an error in creating the * SOAPFactory * @see SOAPConstants#SOAP_1_1_PROTOCOL