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 gd...@apache.org on 2003/04/08 04:22:38 UTC

cvs commit: xml-axis/java/src/org/apache/axis/message SOAPFault.java SOAPHeaderElement.java

gdaniels    2003/04/07 19:22:38

  Modified:    java/src/org/apache/axis Constants.java
               java/src/org/apache/axis/encoding
                        DefaultTypeMappingImpl.java
               java/src/org/apache/axis/handlers/soap SOAPService.java
               java/src/org/apache/axis/message SOAPFault.java
                        SOAPHeaderElement.java
  Log:
  SOAP 1.2 fixes:
  
  * Default actor to null, so we don't emit it unless it's set.
    (should also put in code to not bother emitting MU if false)
  
  * Spit out correct xml:lang attribute for <Text> element of
    Faults
  
  * Correct namespace error
  
  * Remove outdated constants
  
  * Put SOAP 1.2 Array mappings before SOAP 1.1 Array mappings
    in DefaultTypeMappingRegistry.  Otherwise, we end up with
    SOAP 1.2 Arrays in generated WSDL for SOAP 1.1 services.
    This needs to be solved in a more general way (using
    SOAPConstants)
  
  Revision  Changes    Path
  1.118     +0 -6      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.117
  retrieving revision 1.118
  diff -u -r1.117 -r1.118
  --- Constants.java	27 Mar 2003 20:57:32 -0000	1.117
  +++ Constants.java	8 Apr 2003 02:22:36 -0000	1.118
  @@ -279,12 +279,6 @@
       /** @deprecated use URI_SOAP12_NEXT_ROLE */
       public static final String URI_SOAP12_NEXT_ACTOR = URI_SOAP12_NEXT_ROLE;
   
  -    public static final String URI_SOAP12_FAULT =
  -                                     "http://www.w3.org/2002/12/soap-faults";
  -
  -    public static final String URI_SOAP12_UPGRADE =
  -                                     "http://www.w3.org/2002/12/soap-upgrade";
  -
       public static final String URI_SOAP12_RPC =
                                        "http://www.w3.org/2002/12/soap-rpc";
   
  
  
  
  1.70      +15 -16    xml-axis/java/src/org/apache/axis/encoding/DefaultTypeMappingImpl.java
  
  Index: DefaultTypeMappingImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/encoding/DefaultTypeMappingImpl.java,v
  retrieving revision 1.69
  retrieving revision 1.70
  diff -u -r1.69 -r1.70
  --- DefaultTypeMappingImpl.java	22 Mar 2003 02:10:11 -0000	1.69
  +++ DefaultTypeMappingImpl.java	8 Apr 2003 02:22:37 -0000	1.70
  @@ -596,43 +596,42 @@
                                                Constants.XSD_SCHEMA)
           );
           
  -        myRegister(Constants.SOAP_ARRAY,     java.util.ArrayList.class,
  +        // TODO: move it to the DefaultSOAPEncodingTypeMappingImpl class
  +        myRegister(Constants.SOAP_ARRAY12,     java.util.Collection.class,
                      new ArraySerializerFactory(),
                      new ArrayDeserializerFactory()
           );
  -        // All array objects automatically get associated with the SOAP_ARRAY.
  -        // There is no way to do this with a hash table,
  -        // so it is done directly in getTypeQName.
  -        // Internally the runtime uses ArrayList objects to hold arrays...
  -        // which is the reason that ArrayList is associated with SOAP_ARRAY.
  -        // In addition, handle all objects that implement the List interface
  -        // as a SOAP_ARRAY
  -        myRegister(Constants.SOAP_ARRAY,     java.util.Collection.class,
  +        // TODO: move it to the DefaultSOAPEncodingTypeMappingImpl class
  +        myRegister(Constants.SOAP_ARRAY12,     java.util.ArrayList.class,
                      new ArraySerializerFactory(),
                      new ArrayDeserializerFactory()
           );
   
  -        myRegister(Constants.SOAP_ARRAY,     Object[].class,
  +        myRegister(Constants.SOAP_ARRAY12,     Object[].class,
                      new ArraySerializerFactory(),
                      new ArrayDeserializerFactory()
           );
   
  -        // TODO: move it to the DefaultSOAPEncodingTypeMappingImpl class
  -        myRegister(Constants.SOAP_ARRAY12,     java.util.Collection.class,
  +        myRegister(Constants.SOAP_ARRAY,     java.util.ArrayList.class,
                      new ArraySerializerFactory(),
                      new ArrayDeserializerFactory()
           );
  -        // TODO: move it to the DefaultSOAPEncodingTypeMappingImpl class
  -        myRegister(Constants.SOAP_ARRAY12,     java.util.ArrayList.class,
  +        // All array objects automatically get associated with the SOAP_ARRAY.
  +        // There is no way to do this with a hash table,
  +        // so it is done directly in getTypeQName.
  +        // Internally the runtime uses ArrayList objects to hold arrays...
  +        // which is the reason that ArrayList is associated with SOAP_ARRAY.
  +        // In addition, handle all objects that implement the List interface
  +        // as a SOAP_ARRAY
  +        myRegister(Constants.SOAP_ARRAY,     java.util.Collection.class,
                      new ArraySerializerFactory(),
                      new ArrayDeserializerFactory()
           );
   
  -        myRegister(Constants.SOAP_ARRAY12,     Object[].class,
  +        myRegister(Constants.SOAP_ARRAY,     Object[].class,
                      new ArraySerializerFactory(),
                      new ArrayDeserializerFactory()
           );
  -
   
           //
           // Now register the schema specific types
  
  
  
  1.95      +1 -1      xml-axis/java/src/org/apache/axis/handlers/soap/SOAPService.java
  
  Index: SOAPService.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/handlers/soap/SOAPService.java,v
  retrieving revision 1.94
  retrieving revision 1.95
  diff -u -r1.94 -r1.95
  --- SOAPService.java	10 Mar 2003 14:31:48 -0000	1.94
  +++ SOAPService.java	8 Apr 2003 02:22:37 -0000	1.95
  @@ -218,7 +218,7 @@
                           whatWasMissUnderstood.append( badQName.toString() );
   
                           SOAPHeaderElement newHeader = new
  -                            SOAPHeaderElement(Constants.URI_SOAP12_FAULT,
  +                            SOAPHeaderElement(Constants.URI_SOAP12_ENV,
                                                 Constants.ELEM_NOTUNDERSTOOD);
                           newHeader.addAttribute(null,
                                                  Constants.ATTR_QNAME,
  
  
  
  1.17      +4 -2      xml-axis/java/src/org/apache/axis/message/SOAPFault.java
  
  Index: SOAPFault.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/SOAPFault.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- SOAPFault.java	25 Mar 2003 20:17:35 -0000	1.16
  +++ SOAPFault.java	8 Apr 2003 02:22:37 -0000	1.17
  @@ -65,6 +65,7 @@
   import org.w3c.dom.Element;
   import org.w3c.dom.Node;
   import org.xml.sax.Attributes;
  +import org.xml.sax.helpers.AttributesImpl;
   
   import javax.xml.namespace.QName;
   import javax.xml.soap.SOAPException;
  @@ -148,8 +149,9 @@
               if (axisFault.getFaultString() != null) {
                   if (soapConstants == SOAPConstants.SOAP12_CONSTANTS) {
                       context.startElement(Constants.QNAME_FAULTREASON_SOAP12, null);
  -                    // TODO: put an xml:lang attribute on the <Text> element?
  -                    context.startElement(Constants.QNAME_TEXT_SOAP12, null);
  +                    AttributesImpl attrs = new AttributesImpl();
  +                    attrs.addAttribute("http://www.w3.org/XML/1998/namespace", "xml", "xml:lang", "CDATA", "en");
  +                    context.startElement(Constants.QNAME_TEXT_SOAP12, attrs);
                   } else
                       context.startElement(Constants.QNAME_FAULTSTRING, null);
                   context.writeSafeString(axisFault.getFaultString());
  
  
  
  1.23      +1 -1      xml-axis/java/src/org/apache/axis/message/SOAPHeaderElement.java
  
  Index: SOAPHeaderElement.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/SOAPHeaderElement.java,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- SOAPHeaderElement.java	27 Mar 2003 06:01:42 -0000	1.22
  +++ SOAPHeaderElement.java	8 Apr 2003 02:22:37 -0000	1.23
  @@ -79,7 +79,7 @@
       implements javax.xml.soap.SOAPHeaderElement {
       protected boolean   processed = false;
   
  -    protected String    actor = "";
  +    protected String    actor = null;
       protected boolean   mustUnderstand = false;
       protected boolean   relay = false;
   
  
  
  

Re: cvs commit: xml-axis/java/src/org/apache/axis/message SOAPFault.java SOAPHeaderElement.java

Posted by James M Snell <ja...@us.ibm.com>.
Glen,

This is an awful large number of changes to be putting in immediately 
before a release.  We had voted that only critical bug fixes were going to 
be done and that ALL other items were going to be deferred until after 
1.1.  I'm not happy with this stuff.  It's going to mean another full 
round of regression testing and most likely another release candidate 
cycle. 

I'm not going to -1 the changes, but I'd strongly prefer that you hold off 
and let us get 1.1 out the door.

- James M Snell
  jasnell@us.ibm.com
  http://www.ibm.com
  (877) 511-5082 / Office
  930-1979 / Tie Line



gdaniels@apache.org 
04/07/2003 07:22 PM
Please respond to
axis-dev@ws.apache.org


To
xml-axis-cvs@apache.org
cc

Subject
cvs commit: xml-axis/java/src/org/apache/axis/message SOAPFault.java 
SOAPHeaderElement.java






gdaniels    2003/04/07 19:22:38

Modified:    java/src/org/apache/axis Constants.java
java/src/org/apache/axis/encoding
DefaultTypeMappingImpl.java
java/src/org/apache/axis/handlers/soap SOAPService.java
java/src/org/apache/axis/message SOAPFault.java
SOAPHeaderElement.java
Log:
SOAP 1.2 fixes:

* Default actor to null, so we don't emit it unless it's set.
(should also put in code to not bother emitting MU if false)

* Spit out correct xml:lang attribute for <Text> element of
Faults

* Correct namespace error

* Remove outdated constants

* Put SOAP 1.2 Array mappings before SOAP 1.1 Array mappings
in DefaultTypeMappingRegistry.  Otherwise, we end up with
SOAP 1.2 Arrays in generated WSDL for SOAP 1.1 services.
This needs to be solved in a more general way (using
SOAPConstants)

Revision  Changes    Path
1.118     +0 -6      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.117
retrieving revision 1.118
diff -u -r1.117 -r1.118
--- Constants.java      27 Mar 2003 20:57:32 -0000      1.117
+++ Constants.java      8 Apr 2003 02:22:36 -0000       1.118
@@ -279,12 +279,6 @@
/** @deprecated use URI_SOAP12_NEXT_ROLE */
public static final String URI_SOAP12_NEXT_ACTOR = URI_SOAP12_NEXT_ROLE;

-    public static final String URI_SOAP12_FAULT =
-                                     "
http://www.w3.org/2002/12/soap-faults";
-
-    public static final String URI_SOAP12_UPGRADE =
-                                     "
http://www.w3.org/2002/12/soap-upgrade";
-
public static final String URI_SOAP12_RPC =
"http://www.w3.org/2002/12/soap-rpc";




1.70      +15 -16 
xml-axis/java/src/org/apache/axis/encoding/DefaultTypeMappingImpl.java

Index: DefaultTypeMappingImpl.java
===================================================================
RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/encoding/DefaultTypeMappingImpl.java,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -r1.69 -r1.70
--- DefaultTypeMappingImpl.java 22 Mar 2003 02:10:11 -0000      1.69
+++ DefaultTypeMappingImpl.java 8 Apr 2003 02:22:37 -0000       1.70
@@ -596,43 +596,42 @@
Constants.XSD_SCHEMA)
);

-        myRegister(Constants.SOAP_ARRAY,     java.util.ArrayList.class,
+        // TODO: move it to the DefaultSOAPEncodingTypeMappingImpl class
+        myRegister(Constants.SOAP_ARRAY12, java.util.Collection.class,
new ArraySerializerFactory(),
new ArrayDeserializerFactory()
);
-        // All array objects automatically get associated with the 
SOAP_ARRAY.
-        // There is no way to do this with a hash table,
-        // so it is done directly in getTypeQName.
-        // Internally the runtime uses ArrayList objects to hold 
arrays...
-        // which is the reason that ArrayList is associated with 
SOAP_ARRAY.
-        // In addition, handle all objects that implement the List 
interface
-        // as a SOAP_ARRAY
-        myRegister(Constants.SOAP_ARRAY,     java.util.Collection.class,
+        // TODO: move it to the DefaultSOAPEncodingTypeMappingImpl class
+        myRegister(Constants.SOAP_ARRAY12,     java.util.ArrayList.class,
new ArraySerializerFactory(),
new ArrayDeserializerFactory()
);

-        myRegister(Constants.SOAP_ARRAY,     Object[].class,
+        myRegister(Constants.SOAP_ARRAY12,     Object[].class,
new ArraySerializerFactory(),
new ArrayDeserializerFactory()
);

-        // TODO: move it to the DefaultSOAPEncodingTypeMappingImpl class
-        myRegister(Constants.SOAP_ARRAY12, java.util.Collection.class,
+        myRegister(Constants.SOAP_ARRAY,     java.util.ArrayList.class,
new ArraySerializerFactory(),
new ArrayDeserializerFactory()
);
-        // TODO: move it to the DefaultSOAPEncodingTypeMappingImpl class
-        myRegister(Constants.SOAP_ARRAY12,     java.util.ArrayList.class,
+        // All array objects automatically get associated with the 
SOAP_ARRAY.
+        // There is no way to do this with a hash table,
+        // so it is done directly in getTypeQName.
+        // Internally the runtime uses ArrayList objects to hold 
arrays...
+        // which is the reason that ArrayList is associated with 
SOAP_ARRAY.
+        // In addition, handle all objects that implement the List 
interface
+        // as a SOAP_ARRAY
+        myRegister(Constants.SOAP_ARRAY,     java.util.Collection.class,
new ArraySerializerFactory(),
new ArrayDeserializerFactory()
);

-        myRegister(Constants.SOAP_ARRAY12,     Object[].class,
+        myRegister(Constants.SOAP_ARRAY,     Object[].class,
new ArraySerializerFactory(),
new ArrayDeserializerFactory()
);
-

//
// Now register the schema specific types



1.95      +1 -1 
xml-axis/java/src/org/apache/axis/handlers/soap/SOAPService.java

Index: SOAPService.java
===================================================================
RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/handlers/soap/SOAPService.java,v
retrieving revision 1.94
retrieving revision 1.95
diff -u -r1.94 -r1.95
--- SOAPService.java    10 Mar 2003 14:31:48 -0000      1.94
+++ SOAPService.java    8 Apr 2003 02:22:37 -0000       1.95
@@ -218,7 +218,7 @@
whatWasMissUnderstood.append( badQName.toString() );

SOAPHeaderElement newHeader = new
-                            SOAPHeaderElement(Constants.URI_SOAP12_FAULT,
+                            SOAPHeaderElement(Constants.URI_SOAP12_ENV,
Constants.ELEM_NOTUNDERSTOOD);
newHeader.addAttribute(null,
Constants.ATTR_QNAME,



1.17      +4 -2 xml-axis/java/src/org/apache/axis/message/SOAPFault.java

Index: SOAPFault.java
===================================================================
RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/message/SOAPFault.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- SOAPFault.java      25 Mar 2003 20:17:35 -0000      1.16
+++ SOAPFault.java      8 Apr 2003 02:22:37 -0000       1.17
@@ -65,6 +65,7 @@
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.xml.sax.Attributes;
+import org.xml.sax.helpers.AttributesImpl;

import javax.xml.namespace.QName;
import javax.xml.soap.SOAPException;
@@ -148,8 +149,9 @@
if (axisFault.getFaultString() != null) {
if (soapConstants == SOAPConstants.SOAP12_CONSTANTS) {
context.startElement(Constants.QNAME_FAULTREASON_SOAP12, null);
-                    // TODO: put an xml:lang attribute on the <Text> 
element?
-                    context.startElement(Constants.QNAME_TEXT_SOAP12, 
null);
+                    AttributesImpl attrs = new AttributesImpl();
+                    attrs.addAttribute("
http://www.w3.org/XML/1998/namespace", "xml", "xml:lang", "CDATA", "en");
+                    context.startElement(Constants.QNAME_TEXT_SOAP12, 
attrs);
} else
context.startElement(Constants.QNAME_FAULTSTRING, null);
context.writeSafeString(axisFault.getFaultString());



1.23      +1 -1 
xml-axis/java/src/org/apache/axis/message/SOAPHeaderElement.java

Index: SOAPHeaderElement.java
===================================================================
RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/message/SOAPHeaderElement.java,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- SOAPHeaderElement.java      27 Mar 2003 06:01:42 -0000      1.22
+++ SOAPHeaderElement.java      8 Apr 2003 02:22:37 -0000       1.23
@@ -79,7 +79,7 @@
implements javax.xml.soap.SOAPHeaderElement {
protected boolean   processed = false;

-    protected String    actor = "";
+    protected String    actor = null;
protected boolean   mustUnderstand = false;
protected boolean   relay = false;