You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by di...@apache.org on 2003/01/07 20:41:59 UTC

cvs commit: xml-axis/java/src/org/apache/axis/soap SOAP11Constants.java SOAP12Constants.java SOAPConstants.java

dims        2003/01/07 11:41:58

  Modified:    java/src/org/apache/axis Constants.java
               java/src/org/apache/axis/message EnvelopeBuilder.java
               java/src/org/apache/axis/i18n resource.properties
               java/src/org/apache/axis/soap SOAP11Constants.java
                        SOAP12Constants.java SOAPConstants.java
  Log:
  Patch for Bug 15850 - VersionMismacth patch to reach soap 1.2 compliance
  from andras.avar@nokia.com (Andras Avar)
  
  Note:
  <just_kidding> :) Am sick of committing Andras's patches :) </just_kidding>
  
  Revision  Changes    Path
  1.105     +6 -0      xml-axis/java/src/org/apache/axis/Constants.java
  
  Index: Constants.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/Constants.java,v
  retrieving revision 1.104
  retrieving revision 1.105
  diff -u -r1.104 -r1.105
  --- Constants.java	6 Jan 2003 13:44:08 -0000	1.104
  +++ Constants.java	7 Jan 2003 19:41:57 -0000	1.105
  @@ -428,6 +428,8 @@
       public static final String ELEM_FAULT    = "Fault" ;
   
       public static final String ELEM_NOTUNDERSTOOD = "NotUnderstood";
  +    public static final String ELEM_UPGRADE           = "Upgrade";
  +    public static final String ELEM_SUPPORTEDENVELOPE = "SupportedEnvelope";
   
       public static final String ELEM_FAULT_CODE   = "faultcode" ;
       public static final String ELEM_FAULT_STRING = "faultstring" ;
  @@ -466,6 +468,10 @@
   
       public static final String FAULT_SERVER_USER =
                                                      "Server.userException";
  +
  +    public static final QName FAULT_VERSIONMISMATCH =
  +                                  new QName(URI_SOAP11_ENV, "VersionMismatch");
  +
       public static final QName FAULT_MUSTUNDERSTAND =
                                     new QName(URI_SOAP11_ENV, "MustUnderstand");
   
  
  
  
  1.31      +28 -3     xml-axis/java/src/org/apache/axis/message/EnvelopeBuilder.java
  
  Index: EnvelopeBuilder.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/EnvelopeBuilder.java,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- EnvelopeBuilder.java	20 Nov 2002 18:05:44 -0000	1.30
  +++ EnvelopeBuilder.java	7 Jan 2003 19:41:58 -0000	1.31
  @@ -60,7 +60,7 @@
   import org.apache.axis.utils.Messages;
   import org.xml.sax.Attributes;
   import org.xml.sax.SAXException;
  -
  +import org.apache.axis.AxisFault;
   import javax.xml.namespace.QName;
   
   /**
  @@ -69,6 +69,7 @@
    * HeaderBuilder and BodyBuilders.
    *
    * @author Glen Daniels (gdaniels@allaire.com)
  + * @author Andras Avar (andras.avar@nokia.com)
    */
   public class EnvelopeBuilder extends SOAPHandler
   {
  @@ -113,8 +114,32 @@
               // SOAP 1.2
               soapConstants = SOAPConstants.SOAP12_CONSTANTS;
           } else {
  -            throw new SAXException(
  -                    Messages.getMessage("badNamespace00", namespace));
  +            soapConstants = Constants.DEFAULT_SOAP_VERSION;
  +
  +            try {
  +                AxisFault fault = new AxisFault(soapConstants.getVerMismatchFaultCodeQName(),
  +                    null, Messages.getMessage("versionMissmatch00"), null, null, null);
  +
  +                SOAPHeaderElement newHeader = new
  +                                SOAPHeaderElement(soapConstants.getEnvelopeURI(),
  +                                                  Constants.ELEM_UPGRADE);
  +
  +                // TODO: insert soap 1.1 upgrade header in case of soap 1.2 response if
  +                // axis supports both simultaneously
  +                MessageElement innerHeader = new
  +                                MessageElement(soapConstants.getEnvelopeURI(),
  +                                                  Constants.ELEM_SUPPORTEDENVELOPE);
  +                innerHeader.addAttribute(null, Constants.ATTR_QNAME,
  +                    new QName(soapConstants.getEnvelopeURI(), Constants.ELEM_ENVELOPE));
  +
  +                newHeader.addChildElement(innerHeader);
  +                fault.addHeader(newHeader);
  +
  +                throw new SAXException(fault);
  +
  +            } catch (javax.xml.soap.SOAPException e) {
  +                throw new SAXException(e);
  +            }
           }
   
           // Indicate what version of SOAP we're using to anyone else involved
  
  
  
  1.42      +2 -0      xml-axis/java/src/org/apache/axis/i18n/resource.properties
  
  Index: resource.properties
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/i18n/resource.properties,v
  retrieving revision 1.41
  retrieving revision 1.42
  diff -u -r1.41 -r1.42
  --- resource.properties	6 Jan 2003 20:09:24 -0000	1.41
  +++ resource.properties	7 Jan 2003 19:41:58 -0000	1.42
  @@ -456,6 +456,8 @@
   # NOTE:  in noUnderstand00, do not translate "MustUnderstand"
   noUnderstand00=Did not understand "MustUnderstand" header(s):{0}
   
  +versionMissmatch00=Version Mismatch
  +
   # NOTE:  in noValue00, do not translate "value", "RPCParam"
   noValue00=No value field for RPCParam to use?!? {0}
   
  
  
  
  1.9       +9 -0      xml-axis/java/src/org/apache/axis/soap/SOAP11Constants.java
  
  Index: SOAP11Constants.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/soap/SOAP11Constants.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- SOAP11Constants.java	20 Dec 2002 17:28:23 -0000	1.8
  +++ SOAP11Constants.java	7 Jan 2003 19:41:58 -0000	1.9
  @@ -62,6 +62,7 @@
    * SOAP 1.1 constants
    *
    * @author Glen Daniels (gdaniels@apache.org)
  + * @author Andras Avar (andras.avar@nokia.com)
    */
   public class SOAP11Constants implements SOAPConstants {
       private static QName headerQName = new QName(Constants.URI_SOAP11_ENV,
  @@ -127,5 +128,13 @@
       public String getAttrItemType() {
           return Constants.ATTR_ARRAY_TYPE;
       }
  +
  +    /**
  +     * Obtain the Qname of VersionMismatch fault code
  +     */
  +    public QName getVerMismatchFaultCodeQName() {
  +        return Constants.FAULT_VERSIONMISMATCH;
  +    }
  +
   
   }
  
  
  
  1.10      +7 -0      xml-axis/java/src/org/apache/axis/soap/SOAP12Constants.java
  
  Index: SOAP12Constants.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/soap/SOAP12Constants.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- SOAP12Constants.java	20 Dec 2002 17:28:23 -0000	1.9
  +++ SOAP12Constants.java	7 Jan 2003 19:41:58 -0000	1.10
  @@ -62,6 +62,7 @@
    * SOAP 1.2 constants
    *
    * @author Glen Daniels (gdaniels@apache.org)
  + * @author Andras Avar (andras.avar@nokia.com)
    */
   public class SOAP12Constants implements SOAPConstants {
       private static QName headerQName = new QName(Constants.URI_SOAP12_ENV,
  @@ -133,5 +134,11 @@
           return Constants.ATTR_ITEM_TYPE;
       }
   
  +    /**
  +     * Obtain the Qname of VersionMismatch fault code
  +     */
  +    public QName getVerMismatchFaultCodeQName() {
  +        return Constants.FAULT_SOAP12_VERSIONMISMATCH;
  +    }
   
   }
  
  
  
  1.10      +5 -2      xml-axis/java/src/org/apache/axis/soap/SOAPConstants.java
  
  Index: SOAPConstants.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/soap/SOAPConstants.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- SOAPConstants.java	20 Dec 2002 17:28:23 -0000	1.9
  +++ SOAPConstants.java	7 Jan 2003 19:41:58 -0000	1.10
  @@ -67,6 +67,7 @@
    * it just supplies common namespaces + QNames.
    *
    * @author Glen Daniels (gdaniels@apache.org)
  + * @author Andras Avar (andras.avar@nokia.com)
    */
   public interface SOAPConstants extends Serializable {
       /** SOAP 1.1 constants - thread-safe and shared */
  @@ -124,7 +125,9 @@
        */
       public String getAttrItemType();
   
  -
  -
  +    /**
  +     * Obtain the Qname of VersionMismatch fault code
  +     */
  +    public QName getVerMismatchFaultCodeQName();
   
   }