All Downloads are FREE. Search and download functionalities are using the official Maven repository.

javax.xml.soap.SAAJMetaFactory Maven / Gradle / Ivy

There is a newer version: 1.4.0
Show newest version
/*
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
 *
 * Copyright (c) 2004-2013 Oracle and/or its affiliates. All rights reserved.
 *
 * The contents of this file are subject to the terms of either the GNU
 * General Public License Version 2 only ("GPL") or the Common Development
 * and Distribution License("CDDL") (collectively, the "License").  You
 * may not use this file except in compliance with the License.  You can
 * obtain a copy of the License at
 * http://glassfish.java.net/public/CDDL+GPL_1_1.html
 * or packager/legal/LICENSE.txt.  See the License for the specific
 * language governing permissions and limitations under the License.
 *
 * When distributing the software, include this License Header Notice in each
 * file and include the License file at packager/legal/LICENSE.txt.
 *
 * GPL Classpath Exception:
 * Oracle designates this particular file as subject to the "Classpath"
 * exception as provided by Oracle in the GPL Version 2 section of the License
 * file that accompanied this code.
 *
 * Modifications:
 * If applicable, add the following below the License Header, with the fields
 * enclosed by brackets [] replaced by your own identifying information:
 * "Portions Copyright [year] [name of copyright owner]"
 *
 * Contributor(s):
 * If you wish your version of this file to be governed by only the CDDL or
 * only the GPL Version 2, indicate your decision by adding "[Contributor]
 * elects to include this software in this distribution under the [CDDL or GPL
 * Version 2] license."  If you don't indicate a single choice of license, a
 * recipient has the option to distribute your version of this file under
 * either the CDDL, the GPL Version 2 or to extend the choice of license to
 * its licensees as provided above.  However, if you add GPL Version 2 code
 * and therefore, elected the GPL Version 2 license, then the option applies
 * only if the new code is made subject to such option by the copyright
 * holder.
 */

package javax.xml.soap;

/**
* 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 */ 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"; /** * 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.messaging.saaj.soap.SAAJMetaFactoryImpl. *
* * @return a concrete SAAJMetaFactory object * @exception SOAPException if there is an error in creating the SAAJMetaFactory */ static SAAJMetaFactory getInstance() throws SOAPException { 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 SAAJMetaFactory() { } /** * 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 MessageFactory newMessageFactory(String protocol) throws SOAPException; /** * 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 */ protected abstract SOAPFactory newSOAPFactory(String protocol) throws SOAPException; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy