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();
}