butek 02/02/07 06:15:06 Modified: java/src/org/apache/axis/wsdl/toJava JavaBindingWriter.java JavaWriterFactory.java SymbolTable.java java/test/wsdl/filegen AllOptionTestCase.java Log: Make sure stubs/skeletons are not generated for non-SOAP bindings, even if --all is turned on. Revision Changes Path 1.3 +9 -6 xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaBindingWriter.java Index: JavaBindingWriter.java =================================================================== RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaBindingWriter.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- JavaBindingWriter.java 24 Jan 2002 23:12:59 -0000 1.2 +++ JavaBindingWriter.java 7 Feb 2002 14:15:06 -0000 1.3 @@ -82,13 +82,16 @@ SymbolTable symbolTable) { BindingEntry bEntry = symbolTable.getBindingEntry(binding.getQName()); + + // Interface writer + PortTypeEntry ptEntry = + symbolTable.getPortTypeEntry(binding.getPortType().getQName()); + if (ptEntry.isReferenced()) { + interfaceWriter = new JavaInterfaceWriter( + emitter, ptEntry, bEntry, symbolTable); + } + if (bEntry.isReferenced()) { - // Interface writer - PortTypeEntry ptEntry = - symbolTable.getPortTypeEntry(binding.getPortType().getQName()); - interfaceWriter = - new JavaInterfaceWriter(emitter, ptEntry, bEntry, symbolTable); - // Stub writer stubWriter = new JavaStubWriter(emitter, bEntry, symbolTable); 1.12 +11 -3 xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaWriterFactory.java Index: JavaWriterFactory.java =================================================================== RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaWriterFactory.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- JavaWriterFactory.java 6 Feb 2002 21:08:54 -0000 1.11 +++ JavaWriterFactory.java 7 Feb 2002 14:15:06 -0000 1.12 @@ -324,8 +324,9 @@ } /** - * The --all flag is set on the command line (or generateAll(true) is called on WSDL2Java). - * Set all symbols as referenced. + * The --all flag is set on the command line (or generateAll(true) is called + * on WSDL2Java). Set all symbols as referenced (except nonSOAP bindings + * which we don't know how to deal with). */ private void setAllReferencesToTrue() { Iterator it = symbolTable.getHashMap().values().iterator(); @@ -333,7 +334,14 @@ Vector v = (Vector) it.next(); for (int i = 0; i < v.size(); ++i) { SymTabEntry entry = (SymTabEntry) v.elementAt(i); - entry.setIsReferenced(true); + if (entry instanceof BindingEntry && + ((BindingEntry) entry).getBindingType() != + BindingEntry.TYPE_SOAP) { + entry.setIsReferenced(false); + } + else { + entry.setIsReferenced(true); + } } } } // setAllReferencesToTrue 1.26 +33 -22 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.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- SymbolTable.java 6 Feb 2002 21:00:20 -0000 1.25 +++ SymbolTable.java 7 Feb 2002 14:15:06 -0000 1.26 @@ -1220,6 +1220,10 @@ } } // setReferences + /** + * Set the isReferenced flag to true on the given TypeEntry and all + * SymTabEntries that it refers to. + */ private void setTypeReferences(TypeEntry entry, Document doc, boolean literal) { @@ -1264,7 +1268,8 @@ } // setTypeReferences /** - * Set the isReferenced flag to true on all SymTabEntries that the given Meesage refers to. + * Set the isReferenced flag to true on the given MessageEntry and all + * SymTabEntries that it refers to. */ private void setMessageReferences( MessageEntry entry, Definition def, Document doc, boolean literal) { @@ -1305,7 +1310,8 @@ } // setMessageReference /** - * Set the isReferenced flag to true on all SymTabEntries that the given PortType refers to. + * Set the isReferenced flag to true on the given PortTypeEntry and all + * SymTabEntries that it refers to. */ private void setPortTypeReferences( PortTypeEntry entry, BindingEntry bEntry, @@ -1384,36 +1390,41 @@ } // setPortTypeReferences /** - * Set the isReferenced flag to true on all SymTabEntries that the given Meesage refers to. + * Set the isReferenced flag to true on the given BindingEntry and all + * SymTabEntries that it refers to ONLY if this binding is a SOAP binding. */ private void setBindingReferences( BindingEntry entry, Definition def, Document doc) { - // If we don't want to emit stuff from imported files, only set the - // isReferenced flag if this entry exists in the immediate WSDL file. - Binding binding = entry.getBinding(); - if (addImports) { - entry.setIsReferenced(true); - } - else { - // NOTE: I thought I could have simply done: - // if (def.getBindng(binding.getQName()) != null) - // but that method traces through all imported bindings. - Map bindings = def.getBindings(); - if (bindings.containsValue(binding)) { + + if (entry.getBindingType() == BindingEntry.TYPE_SOAP) { + // If we don't want to emit stuff from imported files, only set the + // isReferenced flag if this entry exists in the immediate WSDL file. + Binding binding = entry.getBinding(); + if (addImports) { entry.setIsReferenced(true); } - } + else { + // NOTE: I thought I could have simply done: + // if (def.getBindng(binding.getQName()) != null) + // but that method traces through all imported bindings. + Map bindings = def.getBindings(); + if (bindings.containsValue(binding)) { + entry.setIsReferenced(true); + } + } - // Set all the binding's portTypes - PortType portType = binding.getPortType(); - PortTypeEntry ptEntry = getPortTypeEntry(portType.getQName()); - if (ptEntry != null) { - setPortTypeReferences(ptEntry, entry, def, doc); + // Set all the binding's portTypes + PortType portType = binding.getPortType(); + PortTypeEntry ptEntry = getPortTypeEntry(portType.getQName()); + if (ptEntry != null) { + setPortTypeReferences(ptEntry, entry, def, doc); + } } } // setBindingReferences /** - * Set the isReferenced flag to true on all SymTabEntries that the given Meesage refers to. + * Set the isReferenced flag to true on the given ServiceEntry and all + * SymTabEntries that it refers to. */ private void setServiceReferences( ServiceEntry entry, Definition def, Document doc) { 1.2 +0 -1 xml-axis/java/test/wsdl/filegen/AllOptionTestCase.java Index: AllOptionTestCase.java =================================================================== RCS file: /home/cvs/xml-axis/java/test/wsdl/filegen/AllOptionTestCase.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- AllOptionTestCase.java 6 Feb 2002 21:08:54 -0000 1.1 +++ AllOptionTestCase.java 7 Feb 2002 14:15:06 -0000 1.2 @@ -79,7 +79,6 @@ set.add("OpFault.java"); set.add("PortTypeNotSoap.java"); set.add("PortTypeSoap.java"); - set.add("ReferenceHttpGetStub.java"); set.add("ReferenceService.java"); set.add("ReferenceServiceLocator.java"); set.add("ReferenceSoapBindingStub.java");