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 2002/10/03 16:46:16 UTC

cvs commit: xml-axis/java/test/wsdl/interop4/groupH/simpleRPCenc build.xml

gdaniels    2002/10/03 07:46:16

  Modified:    java/src/org/apache/axis/message Tag: interop4
                        SOAPFaultDetailsBuilder.java SOAPFaultBuilder.java
               java/src/org/apache/axis/encoding/ser Tag: interop4
                        SimpleDeserializer.java
               java/src/org/apache/axis/encoding Tag: interop4
                        DeserializerImpl.java
               java/test/wsdl/interop4/groupH/simpleRPCenc Tag: interop4
                        build.xml
  Log:
  More work on fault tests.  Make sure multi-ref deserialization of fault
  data works.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.3   +2 -13     xml-axis/java/src/org/apache/axis/message/Attic/SOAPFaultDetailsBuilder.java
  
  Index: SOAPFaultDetailsBuilder.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/Attic/SOAPFaultDetailsBuilder.java,v
  retrieving revision 1.1.2.2
  retrieving revision 1.1.2.3
  diff -u -r1.1.2.2 -r1.1.2.3
  --- SOAPFaultDetailsBuilder.java	2 Oct 2002 15:14:56 -0000	1.1.2.2
  +++ SOAPFaultDetailsBuilder.java	3 Oct 2002 14:46:15 -0000	1.1.2.3
  @@ -54,7 +54,6 @@
    */
   package org.apache.axis.message;
   
  -import org.apache.axis.AxisFault;
   import org.apache.axis.Constants;
   import org.apache.axis.MessageContext;
   import org.apache.axis.client.Service;
  @@ -66,17 +65,10 @@
   import org.apache.axis.utils.ClassUtils;
   import org.xml.sax.Attributes;
   import org.xml.sax.SAXException;
  -import org.w3c.dom.Element;
  -import org.w3c.dom.Text;
   
   import javax.xml.namespace.QName;
   
  -import java.util.HashMap;
  -import java.util.ArrayList;
  -import java.util.Iterator;
  -import java.lang.reflect.Constructor;
  -
  -/** 
  +/**
    * Handle deserializing fault details.
    * 
    * @author Glen Daniels (gdaniels@macromedia.com)
  @@ -90,7 +82,6 @@
           this.builder = builder;
       }
   
  -
       public SOAPHandler onStartChild(String namespace,
                                       String name,
                                       String prefix,
  @@ -98,8 +89,6 @@
                                       DeserializationContext context)
           throws SAXException
       {
  -        Deserializer currentDeser = null;
  -        
           // Get QName of element
           QName qn = new QName(namespace, name); 
                           
  @@ -122,6 +111,7 @@
               if (info != null && info.cls != null) {
                   // Set the class
                   builder.setFaultClass(info.cls);
  +                builder.setWaiting(true);
                   // register callback for the data, use the xmlType from fault info
                   Deserializer dser = context.getDeserializerForType(info.xmlType);
                   dser.registerValueTarget(new CallbackTarget(this, "faultData"));
  @@ -140,7 +130,6 @@
        */
       public void setValue(Object value, Object hint)
       {
  -        String name = (String)hint;
           if ("faultData".equals(hint)) {
               builder.setFaultData(value);
           } else if ("exceptionName".equals(hint)) {
  
  
  
  1.23.8.3  +30 -14    xml-axis/java/src/org/apache/axis/message/SOAPFaultBuilder.java
  
  Index: SOAPFaultBuilder.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/SOAPFaultBuilder.java,v
  retrieving revision 1.23.8.2
  retrieving revision 1.23.8.3
  diff -u -r1.23.8.2 -r1.23.8.3
  --- SOAPFaultBuilder.java	2 Oct 2002 14:53:56 -0000	1.23.8.2
  +++ SOAPFaultBuilder.java	3 Oct 2002 14:46:15 -0000	1.23.8.3
  @@ -56,24 +56,18 @@
   
   import org.apache.axis.AxisFault;
   import org.apache.axis.Constants;
  -import org.apache.axis.MessageContext;
  -import org.apache.axis.client.Service;
  -import org.apache.axis.client.Call;
   import org.apache.axis.encoding.DeserializationContext;
   import org.apache.axis.encoding.Deserializer;
   import org.apache.axis.encoding.Callback;
   import org.apache.axis.encoding.CallbackTarget;
  -import org.apache.axis.utils.ClassUtils;
   import org.xml.sax.Attributes;
   import org.xml.sax.SAXException;
   import org.w3c.dom.Element;
  -import org.w3c.dom.Text;
   
   import javax.xml.namespace.QName;
   
   import java.util.HashMap;
   import java.util.ArrayList;
  -import java.util.Iterator;
   import java.lang.reflect.Constructor;
   
   /** 
  @@ -85,6 +79,9 @@
    */
   public class SOAPFaultBuilder extends SOAPHandler implements Callback
   {
  +    boolean waiting = false;
  +    boolean passedEnd = false;
  +
       protected SOAPFault element;
       protected DeserializationContext context;
       static HashMap fields = new HashMap();
  @@ -113,6 +110,12 @@
       
       void setFaultData(Object data) {
           faultData = data;
  +        if (waiting && passedEnd) {
  +            // This happened after the end of the <soap:Fault>, so make
  +            // sure we set up the fault.
  +            createFault();
  +        }
  +        waiting = false;
       }
   
       public void setFaultClass(Class faultClass) {
  @@ -126,7 +129,21 @@
                              DeserializationContext context)
               throws SAXException {
           super.endElement(namespace, localName, context);
  -        
  +        if (!waiting) {
  +            createFault();
  +        } else {
  +            passedEnd = true;
  +        }
  +    }
  +
  +    void setWaiting(boolean waiting) {
  +        this.waiting = waiting;
  +    }
  +
  +    /**
  +     * When we're sure we have everything, this gets called.
  +     */
  +    private void createFault() {
           AxisFault f = null;
           if (faultClass != null) {
               // Custom fault handling
  @@ -139,10 +156,10 @@
                           // This is our exception class
                           f = (AxisFault) faultData;
                       } else {
  -                        // We need to create the exception, 
  +                        // We need to create the exception,
                           // passing the data to the constructor.
                           Class argClass = ConvertWrapper(faultData.getClass());
  -                        Constructor con = 
  +                        Constructor con =
                                   faultClass.getConstructor(
                                           new Class[] { argClass });
                           f = (AxisFault) con.newInstance(new Object[] { faultData });
  @@ -167,12 +184,12 @@
           }
   
           if (f == null) {
  -            f  = new AxisFault(faultCode, 
  -                               faultString, 
  -                               faultActor, 
  +            f  = new AxisFault(faultCode,
  +                               faultString,
  +                               faultActor,
                                  faultDetails);
           }
  -        
  +
           element.setFault(f);
       }
   
  @@ -248,7 +265,6 @@
           } else if (name.equals(Constants.ELEM_FAULT_ACTOR)) {
               faultActor = (String) value;
           }
  -        
       }
   
       /**
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.28.2.1  +1 -0      xml-axis/java/src/org/apache/axis/encoding/ser/SimpleDeserializer.java
  
  Index: SimpleDeserializer.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/encoding/ser/SimpleDeserializer.java,v
  retrieving revision 1.28
  retrieving revision 1.28.2.1
  diff -u -r1.28 -r1.28.2.1
  --- SimpleDeserializer.java	26 Sep 2002 13:58:01 -0000	1.28
  +++ SimpleDeserializer.java	3 Oct 2002 14:46:15 -0000	1.28.2.1
  @@ -213,6 +213,7 @@
           }
           try {
               value = makeValue(val.toString());
  +            componentsReady = true;
           } catch (InvocationTargetException ite) {
               Throwable realException = ite.getTargetException();
               if (realException instanceof Exception)
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.30.2.2  +1 -2      xml-axis/java/src/org/apache/axis/encoding/DeserializerImpl.java
  
  Index: DeserializerImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/encoding/DeserializerImpl.java,v
  retrieving revision 1.30.2.1
  retrieving revision 1.30.2.2
  diff -u -r1.30.2.1 -r1.30.2.2
  --- DeserializerImpl.java	1 Oct 2002 20:38:51 -0000	1.30.2.1
  +++ DeserializerImpl.java	3 Oct 2002 14:46:15 -0000	1.30.2.2
  @@ -62,7 +62,6 @@
   import org.apache.axis.message.SAXOutputter;
   import org.apache.axis.message.SOAPHandler;
   import org.apache.axis.Part;
  -import org.apache.axis.utils.JavaUtils;
   import org.apache.axis.utils.Messages;
   
   import org.apache.axis.components.logger.LogFactory;
  @@ -99,7 +98,7 @@
       protected Vector targets = null;
   
       protected QName defaultType = null;
  -    private boolean componentsReady = true;
  +    protected boolean componentsReady = true;
   
   
       /** 
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.3   +4 -6      xml-axis/java/test/wsdl/interop4/groupH/simpleRPCenc/Attic/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/wsdl/interop4/groupH/simpleRPCenc/Attic/build.xml,v
  retrieving revision 1.1.2.2
  retrieving revision 1.1.2.3
  diff -u -r1.1.2.2 -r1.1.2.3
  --- build.xml	2 Oct 2002 16:29:09 -0000	1.1.2.2
  +++ build.xml	3 Oct 2002 14:46:15 -0000	1.1.2.3
  @@ -55,18 +55,16 @@
   
       <mkdir dir="${build.dest}"/>
   
  -<!--    <copy file="SoapInteropImport1BindingImpl.java" overwrite="true"-->
  -<!--          todir="${root.dir}/build/work/test/wsdl/interop3/${testname}"/>-->
  -<!---->
  -
  +    <copy file="SimpleRpcEncBindingImpl.java" overwrite="true"
  +          todir="${root.dir}/build/work/test/wsdl/interop4/groupH/${testname}"/>
       <copy file="SimpleRpcEncServiceTestCase.java"
            todir="${root.dir}/build/work/test/wsdl/interop4/groupH/${testname}"/>
   
  -    <!-- compile the skeletons -->
  +    <!-- compile the code -->
       <javac srcdir="${build.dir}/work"
         destdir="${build.dest}" debug="on">
         <classpath refid="classpath" />
  -      <include name="test/wsdl/interop4/groupH/simpleRPCenc/*.java" />
  +      <include name="test/wsdl/interop4/groupH/simpleRPCenc/groupH/*.java" />
       </javac>
     </target>