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 bu...@apache.org on 2001/11/02 17:11:08 UTC

cvs commit: xml-axis/java/src/org/apache/axis/wsdl JavaTestCaseWriter.java JavaStubWriter.java JavaSkelWriter.java JavaServiceInterfaceWriter.java JavaInterfaceWriter.java JavaImplWriter.java Emitter.java

butek       01/11/02 08:11:08

  Modified:    java/src/org/apache/axis/wsdl JavaTestCaseWriter.java
                        JavaStubWriter.java JavaSkelWriter.java
                        JavaServiceInterfaceWriter.java
                        JavaInterfaceWriter.java JavaImplWriter.java
                        Emitter.java
  Log:
  Fix for 2 import bugs.
  1.  In some import scenarios, we might encounter PortTypes or Bindings that are not
  defined.  These should be ignored.
  
  2.  portTypesInfo HashMap is keyed on objects (PortType and
  Operation), but in some import scenarios, these objects might not be the same on
  creation of portTypesInfo vs use of portTypesInfo (defined vs undefined).  So now
  the HashMap is keyed on NAMES of objects.
  
  Revision  Changes    Path
  1.2       +2 -2      xml-axis/java/src/org/apache/axis/wsdl/JavaTestCaseWriter.java
  
  Index: JavaTestCaseWriter.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/JavaTestCaseWriter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- JavaTestCaseWriter.java	2001/10/30 22:24:56	1.1
  +++ JavaTestCaseWriter.java	2001/11/02 16:11:08	1.2
  @@ -158,12 +158,12 @@
   
       private final void writePortTestCode(PortType port) throws IOException {
           Iterator ops = port.getOperations().iterator();
  -        HashMap operationParameters = (HashMap) portTypeOperationParameters.get(port);
  +        HashMap operationParameters = (HashMap) portTypeOperationParameters.get(port.getQName());
           while (ops.hasNext()) {
               pw.println("        try {");
               Operation op = (Operation) ops.next();
               String namespace = (String) emitter.getNamespaces().get(port.getQName().getNamespaceURI());
  -            Emitter.Parameters params = (Emitter.Parameters) operationParameters.get(op);
  +            Emitter.Parameters params = (Emitter.Parameters) operationParameters.get(op.getName());
   
               if ( !"void".equals( params.returnType ) ) {
                   pw.print("            ");
  
  
  
  1.3       +1 -1      xml-axis/java/src/org/apache/axis/wsdl/JavaStubWriter.java
  
  Index: JavaStubWriter.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/JavaStubWriter.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- JavaStubWriter.java	2001/11/01 18:41:23	1.2
  +++ JavaStubWriter.java	2001/11/02 16:11:08	1.3
  @@ -183,7 +183,7 @@
           List operations = binding.getBindingOperations();
           for (int i = 0; i < operations.size(); ++i) {
               BindingOperation operation = (BindingOperation) operations.get(i);
  -            Emitter.Parameters parameters = (Emitter.Parameters) operationParameters.get(operation.getOperation());
  +            Emitter.Parameters parameters = (Emitter.Parameters) operationParameters.get(operation.getOperation().getName());
   
               // Get the soapAction from the <soap:operation>
               String soapAction = "";
  
  
  
  1.2       +1 -1      xml-axis/java/src/org/apache/axis/wsdl/JavaSkelWriter.java
  
  Index: JavaSkelWriter.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/JavaSkelWriter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- JavaSkelWriter.java	2001/10/30 19:36:09	1.1
  +++ JavaSkelWriter.java	2001/11/02 16:11:08	1.2
  @@ -122,7 +122,7 @@
           List operations = binding.getBindingOperations();
           for (int i = 0; i < operations.size(); ++i) {
               BindingOperation operation = (BindingOperation) operations.get(i);
  -            Emitter.Parameters parameters = (Emitter.Parameters) operationParameters.get(operation.getOperation());
  +            Emitter.Parameters parameters = (Emitter.Parameters) operationParameters.get(operation.getOperation().getName());
   
               // Get the soapAction from the <soap:operation>
               String soapAction = "";
  
  
  
  1.2       +1 -1      xml-axis/java/src/org/apache/axis/wsdl/JavaServiceInterfaceWriter.java
  
  Index: JavaServiceInterfaceWriter.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/JavaServiceInterfaceWriter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- JavaServiceInterfaceWriter.java	2001/10/31 21:46:07	1.1
  +++ JavaServiceInterfaceWriter.java	2001/11/02 16:11:08	1.2
  @@ -102,7 +102,7 @@
        * This method generates the axis server side impl interface signatures operation.
        */
       private void writeOperationAxisSkelSignatures(Operation operation) throws IOException {
  -        Emitter.Parameters parms = (Emitter.Parameters) operationParameters.get(operation);
  +        Emitter.Parameters parms = (Emitter.Parameters) operationParameters.get(operation.getName());
           pw.println(parms.axisSignature + ";");
       } // writeOperationAxisSkelSignatures
   
  
  
  
  1.2       +1 -1      xml-axis/java/src/org/apache/axis/wsdl/JavaInterfaceWriter.java
  
  Index: JavaInterfaceWriter.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/JavaInterfaceWriter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- JavaInterfaceWriter.java	2001/10/31 21:46:07	1.1
  +++ JavaInterfaceWriter.java	2001/11/02 16:11:08	1.2
  @@ -107,7 +107,7 @@
        */
       private void writeOperation(PortType portType, Operation operation, String namespace) throws IOException {
           writeComment(pw, operation.getDocumentationElement());
  -        Emitter.Parameters parms = (Emitter.Parameters) operationParameters.get(operation);
  +        Emitter.Parameters parms = (Emitter.Parameters) operationParameters.get(operation.getName());
           pw.println(parms.signature + ";");
       } // writeOperation
   
  
  
  
  1.2       +1 -1      xml-axis/java/src/org/apache/axis/wsdl/JavaImplWriter.java
  
  Index: JavaImplWriter.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/JavaImplWriter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- JavaImplWriter.java	2001/10/30 19:36:09	1.1
  +++ JavaImplWriter.java	2001/11/02 16:11:08	1.2
  @@ -122,7 +122,7 @@
           List operations = binding.getBindingOperations();
           for (int i = 0; i < operations.size(); ++i) {
               BindingOperation operation = (BindingOperation) operations.get(i);
  -            Emitter.Parameters parameters = (Emitter.Parameters) operationParameters.get(operation.getOperation());
  +            Emitter.Parameters parameters = (Emitter.Parameters) operationParameters.get(operation.getOperation().getName());
   
               // Get the soapAction from the <soap:operation>
               String soapAction = "";
  
  
  
  1.96      +34 -19    xml-axis/java/src/org/apache/axis/wsdl/Emitter.java
  
  Index: Emitter.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/Emitter.java,v
  retrieving revision 1.95
  retrieving revision 1.96
  diff -u -r1.95 -r1.96
  --- Emitter.java	2001/10/31 21:46:07	1.95
  +++ Emitter.java	2001/11/02 16:11:08	1.96
  @@ -260,20 +260,25 @@
           while (i.hasNext()) {
               PortType portType = (PortType) i.next();
   
  -            HashMap portTypeInfo = new HashMap();
  +            // If the portType is undefined, then we're parsing a Definition
  +            // that didn't contain a portType, merely a binding that referred
  +            // to a non-existent port type.  Don't bother with it.
  +            if (!portType.isUndefined()) {
  +                HashMap portTypeInfo = new HashMap();
   
               // Remove Duplicates - happens with only a few WSDL's. No idea why!!! 
               // (like http://www.xmethods.net/tmodels/InteropTest.wsdl) 
               // TODO: Remove this patch...
               // NOTE from RJB:  this is a WSDL4J bug and the WSDL4J guys have been notified.
  -            Iterator operations = (new HashSet(portType.getOperations())).iterator();
  -            while(operations.hasNext()) {
  -                Operation operation = (Operation) operations.next();
  -                String namespace = portType.getQName().getNamespaceURI();
  -                Parameters parms = parameters(operation, namespace);
  -                portTypeInfo.put(operation, parms);
  +                Iterator operations = (new HashSet(portType.getOperations())).iterator();
  +                while(operations.hasNext()) {
  +                    Operation operation = (Operation) operations.next();
  +                    String namespace = portType.getQName().getNamespaceURI();
  +                    Parameters parms = parameters(operation, namespace);
  +                    portTypeInfo.put(operation.getName(), parms);
  +                }
  +                portTypesInfo.put(portType.getQName(), portTypeInfo);
               }
  -            portTypesInfo.put(portType, portTypeInfo);
           }
       } // createPortTypesInfo
   
  @@ -399,9 +404,15 @@
   
           while (i.hasNext()) {
               PortType portType = (PortType) i.next();
  -            HashMap operationParameters = (HashMap) portTypesInfo.get(portType);
  -            Writer writer = writerFactory.getWriter(portType, operationParameters);
  -            writer.write();
  +
  +            // If the portType is undefined, then we're parsing a Definition
  +            // that didn't contain a portType, merely a binding that referred
  +            // to a non-existent port type.  Don't bother writing it.
  +            if (!portType.isUndefined()) {
  +                HashMap operationParameters = (HashMap) portTypesInfo.get(portType.getQName());
  +                Writer writer = writerFactory.getWriter(portType, operationParameters);
  +                writer.write();
  +            }
           }
       } // writePortTypes
   
  @@ -747,16 +758,20 @@
           while (i.hasNext()) {
               Binding binding = (Binding) i.next();
   
  -            // If this isn't a SOAP binding, skip it
  -            if (wsdlAttr.getBindingType(binding) != WsdlAttributes.TYPE_SOAP) {
  -                continue;
  -            }
  +            // If the binding is undefined, then we're parsing a Definition
  +            // that didn't contain a binding, merely a service that referred
  +            // to a non-existent binding.  Don't bother writing it.
  +            if (!binding.isUndefined()) {
   
  -            HashMap portTypeInfo = (HashMap) portTypesInfo.get(binding.getPortType());
  +            // If this isn't a SOAP binding, skip it
  +                if (wsdlAttr.getBindingType(binding) != WsdlAttributes.TYPE_SOAP) {
  +                    continue;
  +                }
   
  -            HashMap operationParameters = (HashMap) portTypesInfo.get(binding.getPortType());
  -            Writer writer = writerFactory.getWriter(binding, operationParameters);
  -            writer.write();
  +                HashMap operationParameters = (HashMap) portTypesInfo.get(binding.getPortType().getQName());
  +                Writer writer = writerFactory.getWriter(binding, operationParameters);
  +                writer.write();
  +            }
           }
       } // writeBindings