FileDocCategorySizeDatePackage
SAAJMetaFactory.javaAPI DocJava SE 6 API5027Tue Jun 10 00:27:10 BST 2008javax.xml.soap

SAAJMetaFactory

public abstract class SAAJMetaFactory extends Object
The access point for the implementation classes of the factories defined in the SAAJ API. All of the newInstance methods defined on factories in SAAJ 1.3 defer to instances of this class to do the actual object creation. The implementations of 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 class.

author
SAAJ RI Development Team
since
SAAJ 1.3

Fields Summary
private static final String
META_FACTORY_CLASS_PROPERTY
private static final String
DEFAULT_META_FACTORY_CLASS
Constructors Summary
protected SAAJMetaFactory()

 
Methods Summary
static javax.xml.soap.SAAJMetaFactorygetInstance()
Creates a new instance of a concrete SAAJMetaFactory object. The SAAJMetaFactory is an SPI, it pulls the creation of the other factories together into a single place. Changing out the SAAJMetaFactory has the effect of changing out the entire SAAJ implementation. Service providers provide the name of their SAAJMetaFactory implementation. This method uses the following ordered lookup procedure to determine the SAAJMetaFactory implementation class to load:
  • Use the javax.xml.soap.MetaFactory system property.
  • 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.
  • 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.MetaFactory in jars available to the runtime.
  • Default to com.sun.xml.internal.messaging.saaj.soap.SAAJMetaFactoryImpl.

return
a concrete SAAJMetaFactory object
exception
SOAPException if there is an error in creating the SAAJMetaFactory


                                                                                                                                                                                           
         
            try {
                SAAJMetaFactory instance =
                    (SAAJMetaFactory) FactoryFinder.find(
                        META_FACTORY_CLASS_PROPERTY,
                        DEFAULT_META_FACTORY_CLASS);
                return instance;
            } catch (Exception e) {
                throw new SOAPException(
                    "Unable to create SAAJ meta-factory" + e.getMessage());
            }
    
protected abstract javax.xml.soap.MessageFactorynewMessageFactory(java.lang.String protocol)
Creates a MessageFactory object for the given String protocol.

param
protocol a String indicating the protocol
exception
SOAPException if there is an error in creating the MessageFactory
see
SOAPConstants#SOAP_1_1_PROTOCOL
see
SOAPConstants#SOAP_1_2_PROTOCOL
see
SOAPConstants#DYNAMIC_SOAP_PROTOCOL

protected abstract javax.xml.soap.SOAPFactorynewSOAPFactory(java.lang.String protocol)
Creates a SOAPFactory object for the given String protocol.

param
protocol a String indicating the protocol
exception
SOAPException if there is an error in creating the SOAPFactory
see
SOAPConstants#SOAP_1_1_PROTOCOL
see
SOAPConstants#SOAP_1_2_PROTOCOL
see
SOAPConstants#DYNAMIC_SOAP_PROTOCOL