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 sc...@apache.org on 2002/05/01 19:17:15 UTC

cvs commit: xml-axis/java/src/org/apache/axis/wsdl/toJava JavaDefinitionWriter.java JavaFaultWriter.java JavaTestCaseWriter.java SymbolTable.java Utils.java

scheu       02/05/01 10:17:15

  Modified:    java/src/org/apache/axis/wsdl/toJava
                        JavaDefinitionWriter.java JavaFaultWriter.java
                        JavaTestCaseWriter.java SymbolTable.java Utils.java
  Log:
  Upgraded the fault -> Java Exception mapping to the 0.8 version of JSR 101.
    * The java exception name is mapped from the name of the message referenced
      in the fault message attribute.  This includes using the namespaceURI of the
      message to construct the package name (previously the code used the namespaceURI
      of the portType).
    * The WSDL document indicates that the fault message attribute is required.  I
      removed some uneccessary code which attempted to construct a java exception
      class name if the fault message was not present.
  
    Note that there have been discussions on the chat concerning additional changes
    to the fault mapping for version 0.9 of JSR 101.  We do not agree with the
    mapping presented in version 0.9 and are waiting clarifications and changes.
  
  Revision  Changes    Path
  1.6       +3 -7      xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaDefinitionWriter.java
  
  Index: JavaDefinitionWriter.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaDefinitionWriter.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- JavaDefinitionWriter.java	9 Apr 2002 15:41:30 -0000	1.5
  +++ JavaDefinitionWriter.java	1 May 2002 17:17:15 -0000	1.6
  @@ -163,15 +163,11 @@
                           Fault f = (Fault) fi.next();
                           String name = Utils.getFullExceptionName(
                                   f,
  -                                symbolTable,
  -                                portType.getQName().getNamespaceURI());
  -                    // prevent duplicates
  +                                symbolTable);
  +                        // prevent duplicates
                           if (! faultList.contains(name) ) {
                               faultList.add(name);
  -                            QName faultQName = new QName(
  -                                    portType.getQName().getNamespaceURI(),
  -                                    Utils.getExceptionName(f));
  -                            faults.put(f, faultQName);  // add this fault to the list
  +                            faults.put(f, f.getMessage().getQName());
                           }
                       }
                   }
  
  
  
  1.7       +8 -0      xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaFaultWriter.java
  
  Index: JavaFaultWriter.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaFaultWriter.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- JavaFaultWriter.java	19 Mar 2002 20:15:28 -0000	1.6
  +++ JavaFaultWriter.java	1 May 2002 17:17:15 -0000	1.7
  @@ -76,6 +76,14 @@
        */
       protected JavaFaultWriter(Emitter emitter, QName qname, Fault fault, SymbolTable symbolTable) {
           super(emitter, qname, "", "java", JavaUtils.getMessage("genFault00"), "fault");
  +
  +        // Need to adjust the className and fileName to make sure they are consistent with
  +        // the full name.  The alternative is to pass a 'dummy' qname into JavaFaultWriter,
  +        // which is not appropriate.
  +        String fullName = Utils.getFullExceptionName(fault, symbolTable);
  +        className = fullName.substring(fullName.lastIndexOf(".")+1);
  +        fileName = className + ".java";
  +
           this.fault = fault;
           this.symbolTable = symbolTable;
       } // ctor
  
  
  
  1.22      +1 -2      xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaTestCaseWriter.java
  
  Index: JavaTestCaseWriter.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaTestCaseWriter.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- JavaTestCaseWriter.java	19 Apr 2002 13:59:05 -0000	1.21
  +++ JavaTestCaseWriter.java	1 May 2002 17:17:15 -0000	1.22
  @@ -299,10 +299,9 @@
                   while (i.hasNext()) {
                       count++;
                       Fault f = (Fault) i.next();
  -                    String namespace = portType.getQName().getNamespaceURI();
                       pw.print("        catch (");
                       pw.print(Utils.getFullExceptionName(
  -                            f, symbolTable, namespace));
  +                            f, symbolTable));
                       pw.println(" e" + count + ") {");
                       pw.print("            ");
                       pw.println("throw new junit.framework.AssertionFailedError(\"" + f.getName() + " Exception caught: \" + e" + count + ");");
  
  
  
  1.55      +1 -1      xml-axis/java/src/org/apache/axis/wsdl/toJava/SymbolTable.java
  
  Index: SymbolTable.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/SymbolTable.java,v
  retrieving revision 1.54
  retrieving revision 1.55
  diff -u -r1.54 -r1.55
  --- SymbolTable.java	11 Apr 2002 13:30:55 -0000	1.54
  +++ SymbolTable.java	1 May 2002 17:17:15 -0000	1.55
  @@ -1017,7 +1017,7 @@
           while (i.hasNext()) {
               Fault fault = (Fault) i.next();
               String exceptionName =
  -                    Utils.getFullExceptionName(fault, this, namespace);
  +                    Utils.getFullExceptionName(fault, this);
               if (parameters.faultString == null)
                   parameters.faultString = exceptionName;
               else
  
  
  
  1.28      +9 -45     xml-axis/java/src/org/apache/axis/wsdl/toJava/Utils.java
  
  Index: Utils.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/Utils.java,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- Utils.java	24 Apr 2002 17:13:02 -0000	1.27
  +++ Utils.java	1 May 2002 17:17:15 -0000	1.28
  @@ -565,35 +565,10 @@
               return typeValue + "Holder";
       } // holder
   
  -    /**
  -     * Given a fault, return the Java class name of the exception to be
  -     * generated from this fault
  -     * 
  -     * @param fault - The WSDL fault object
  -     * @return A Java class name for the fault
  -     */ 
  -    public static String getExceptionName(Fault fault) {
  -        /**
  -         * Use the message name as the fault class name,
  -         * fall back to fault name if there isn't a message part
  -         * 
  -         * NOTE: JAX-RPC version 0.5 says to use the message name, but
  -         * hopefully this will change to use the fault name, which makes
  -         * a good deal more sense (tomj@macromedia.com)
  -         */ 
  -        Message faultMessage = fault.getMessage();
  -        String exceptionName;
  -        if (faultMessage != null) {
  -            String faultMessageName = faultMessage.getQName().getLocalPart();
  -            exceptionName = xmlNameToJavaClass(faultMessageName);
  -        } else {
  -            exceptionName = xmlNameToJavaClass(fault.getName());
  -        }
  -        return exceptionName;
  -    }
   
       /**
  -     * Given a fault, return the fully qualified Java class name of the exception to be
  +     * Given a fault, return the fully qualified Java class name 
  +     * of the exception to be
        * generated from this fault
        * 
        * @param fault - The WSDL fault object
  @@ -601,25 +576,14 @@
        * @return A Java class name for the fault
        */ 
       public static String getFullExceptionName(
  -            Fault fault, SymbolTable symbolTable, String namespace) {
  -        /**
  -         * Use the message name as the fault class name,
  -         * fall back to fault name if there isn't a message part
  -         * 
  -         * NOTE: JAX-RPC version 0.5 says to use the message name, but
  -         * hopefully this will change to use the fault name, which makes
  -         * a good deal more sense (tomj@macromedia.com)
  -         */ 
  +            Fault fault, SymbolTable symbolTable) {
  +
  +        // Upgraded to JSR 101 version 0.8
  +
  +        // Get the Message referenced in the message attribute of the 
  +        // fault.
           Message faultMessage = fault.getMessage();
  -        String exceptionName;
  -        if (faultMessage != null) {
  -            String faultName = faultMessage.getQName().getLocalPart();
  -            QName qname = new QName(namespace, faultName);
  -            exceptionName = symbolTable.getJavaName(qname);
  -        } else {
  -            exceptionName = xmlNameToJavaClass(fault.getName());
  -        }
  -        return exceptionName;
  +        return symbolTable.getJavaName(faultMessage.getQName());
       } // getFullExceptionName