ohair@286: /* alanb@368: * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. ohair@286: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ohair@286: * ohair@286: * This code is free software; you can redistribute it and/or modify it ohair@286: * under the terms of the GNU General Public License version 2 only, as ohair@286: * published by the Free Software Foundation. Oracle designates this ohair@286: * particular file as subject to the "Classpath" exception as provided ohair@286: * by Oracle in the LICENSE file that accompanied this code. ohair@286: * ohair@286: * This code is distributed in the hope that it will be useful, but WITHOUT ohair@286: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ohair@286: * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ohair@286: * version 2 for more details (a copy is included in the LICENSE file that ohair@286: * accompanied this code). ohair@286: * ohair@286: * You should have received a copy of the GNU General Public License version ohair@286: * 2 along with this work; if not, write to the Free Software Foundation, ohair@286: * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ohair@286: * ohair@286: * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ohair@286: * or visit www.oracle.com if you need additional information or have any ohair@286: * questions. ohair@286: */ ohair@286: ohair@286: package com.sun.xml.internal.ws.api; ohair@286: ohair@286: import com.sun.xml.internal.bind.util.Which; ohair@286: import com.sun.xml.internal.ws.api.message.saaj.SAAJFactory; ohair@286: import com.sun.xml.internal.ws.encoding.soap.SOAP12Constants; ohair@286: ohair@286: import javax.xml.namespace.QName; ohair@286: import javax.xml.soap.MessageFactory; ohair@286: import javax.xml.soap.SOAPConstants; ohair@286: import javax.xml.soap.SOAPException; ohair@286: import javax.xml.soap.SOAPFactory; ohair@286: import javax.xml.ws.soap.SOAPBinding; ohair@286: alanb@368: import com.oracle.webservices.internal.api.EnvelopeStyle; alanb@368: import com.oracle.webservices.internal.api.EnvelopeStyleFeature; ohair@286: ohair@286: import java.util.Arrays; ohair@286: import java.util.Collections; ohair@286: import java.util.HashSet; ohair@286: import java.util.Set; ohair@286: ohair@286: /** ohair@286: * Version of SOAP (1.1 and 1.2). ohair@286: * ohair@286: *
ohair@286: * This class defines various constants for SOAP 1.1 and SOAP 1.2, ohair@286: * and also defines convenience methods to simplify the processing ohair@286: * of multiple SOAP versions. ohair@286: * ohair@286: *
ohair@286: * This constant alows you to do: ohair@286: * ohair@286: *
ohair@286: * SOAPVersion version = ...; ohair@286: * version.someOp(...); ohair@286: *ohair@286: * ohair@286: * As opposed to: ohair@286: * ohair@286: *
ohair@286: * if(binding is SOAP11) { ohair@286: * doSomeOp11(...); ohair@286: * } else { ohair@286: * doSomeOp12(...); ohair@286: * } ohair@286: *ohair@286: * ohair@286: * @author Kohsuke Kawaguchi ohair@286: */ ohair@286: public enum SOAPVersion { ohair@286: SOAP_11(SOAPBinding.SOAP11HTTP_BINDING, ohair@286: com.sun.xml.internal.ws.encoding.soap.SOAPConstants.URI_ENVELOPE, ohair@286: "text/xml", ohair@286: SOAPConstants.URI_SOAP_ACTOR_NEXT, "actor", ohair@286: javax.xml.soap.SOAPConstants.SOAP_1_1_PROTOCOL, ohair@286: new QName(com.sun.xml.internal.ws.encoding.soap.SOAPConstants.URI_ENVELOPE, "MustUnderstand"), ohair@286: "Client", ohair@286: "Server", ohair@286: Collections.singleton(SOAPConstants.URI_SOAP_ACTOR_NEXT)), ohair@286: ohair@286: SOAP_12(SOAPBinding.SOAP12HTTP_BINDING, ohair@286: SOAP12Constants.URI_ENVELOPE, ohair@286: "application/soap+xml", ohair@286: SOAPConstants.URI_SOAP_1_2_ROLE_ULTIMATE_RECEIVER, "role", ohair@286: javax.xml.soap.SOAPConstants.SOAP_1_2_PROTOCOL, ohair@286: new QName(com.sun.xml.internal.ws.encoding.soap.SOAP12Constants.URI_ENVELOPE, "MustUnderstand"), ohair@286: "Sender", ohair@286: "Receiver", ohair@286: new HashSet
ohair@286: * Either {@link SOAPBinding#SOAP11HTTP_BINDING} or
ohair@286: * {@link SOAPBinding#SOAP12HTTP_BINDING}
ohair@286: */
ohair@286: public final String httpBindingId;
ohair@286:
ohair@286: /**
ohair@286: * SOAP envelope namespace URI.
ohair@286: */
ohair@286: public final String nsUri;
ohair@286:
ohair@286: /**
ohair@286: * Content-type. Either "text/xml" or "application/soap+xml".
ohair@286: */
ohair@286: public final String contentType;
ohair@286:
ohair@286: /**
ohair@286: * SOAP MustUnderstand FaultCode for this SOAP version
ohair@286: */
ohair@286: public final QName faultCodeMustUnderstand;
ohair@286:
ohair@286: /**
ohair@286: * SAAJ {@link MessageFactory} for this SOAP version.
ohair@286: * @deprecated
ohair@286: */
ohair@286: public final MessageFactory saajMessageFactory;
ohair@286:
ohair@286: /**
ohair@286: * SAAJ {@link SOAPFactory} for this SOAP version.
ohair@286: * @deprecated
ohair@286: */
ohair@286: public final SOAPFactory saajSoapFactory;
ohair@286:
ohair@286: private final String saajFactoryString;
ohair@286:
ohair@286: /**
ohair@286: * If the actor/role attribute is absent, this SOAP version assumes this value.
ohair@286: */
ohair@286: public final String implicitRole;
ohair@286:
ohair@286: /**
ohair@286: * Singleton set that contains {@link #implicitRole}.
ohair@286: */
ohair@286: public final Set