Return-Path: Delivered-To: apmail-ws-axis-c-dev-archive@www.apache.org Received: (qmail 62793 invoked from network); 20 Feb 2004 09:29:20 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (208.185.179.12) by minotaur-2.apache.org with SMTP; 20 Feb 2004 09:29:20 -0000 Received: (qmail 74522 invoked by uid 500); 20 Feb 2004 09:28:53 -0000 Delivered-To: apmail-ws-axis-c-dev-archive@ws.apache.org Received: (qmail 74482 invoked by uid 500); 20 Feb 2004 09:28:52 -0000 Mailing-List: contact axis-c-dev-help@ws.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: list-post: List-Id: "Apache AXIS C Developers List" Reply-To: "Apache AXIS C Developers List" Delivered-To: mailing list axis-c-dev@ws.apache.org Received: (qmail 74423 invoked from network); 20 Feb 2004 09:28:52 -0000 Received: from unknown (HELO e34.co.us.ibm.com) (32.97.110.132) by daedalus.apache.org with SMTP; 20 Feb 2004 09:28:52 -0000 Received: from westrelay02.boulder.ibm.com (westrelay02.boulder.ibm.com [9.17.195.11]) by e34.co.us.ibm.com (8.12.10/8.12.2) with ESMTP id i1K9T4vC395016 for ; Fri, 20 Feb 2004 04:29:04 -0500 Received: from austin.ibm.com (d03av02.boulder.ibm.com [9.17.193.82]) by westrelay02.boulder.ibm.com (8.12.10/NCO/VER6.6) with ESMTP id i1K9T3IN165684 for ; Fri, 20 Feb 2004 02:29:04 -0700 Received: from login-2.austin.ibm.com (login-2.austin.ibm.com [9.41.248.166]) by austin.ibm.com (8.12.10/8.12.10) with ESMTP id i1K9T34s058166 for ; Fri, 20 Feb 2004 03:29:03 -0600 Received: from ns (ns.parislab.fr.ibm.com [9.101.40.87]) by login-2.austin.ibm.com (AIX4.3/8.9.3p2/8.7-client1.01) with ESMTP id DAA41290 for ; Fri, 20 Feb 2004 03:30:18 -0600 Received: from (free.fr) [9.145.152.16] by ns with esmtp (Exim 3.35 #1 (Debian)) id 1Au6xm-0006ix-00; Fri, 20 Feb 2004 10:28:51 +0100 Message-ID: <4035E016.7010302@free.fr> Date: Fri, 20 Feb 2004 10:23:18 +0000 From: Jean-Yves Baudy User-Agent: Mozilla/5.0 (X11; U; Linux i686; fr-FR; rv:1.6) Gecko/20040122 Debian/1.6-1 X-Accept-Language: en MIME-Version: 1.0 To: axis-c-dev@ws.apache.org Subject: DOC/LIT : Some new patches Content-Type: multipart/mixed; boundary="------------070509080509080207030908" X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N This is a multi-part message in MIME format. --------------070509080509080207030908 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Hi, Sory to send you new patches but by now is the only channel I have. Two files are provided one for the WSDL2Ws generator and one for the Axis runtime (minor fixes). WSDL2Ws (some are re-submitted for memo only) --------------------------------------------- CUtils.java : Correct a bug that appear this week. May be the wrong place. WSDL2Ws.java: Add the one way message to Axis stack (WS-I 1.0). It may be already in the user mailing list. It was make by a collegue of me (Nicolas Renaudet). BeanParamWriter.java: Fix compilations issues when type is empty. Integration of null value (otherwise segmentation fault in Axis runtime). Change SerializeAsAttribute calls (wrong parameter type instead of name). Fix issue for <.. ref= .../> ClientStubWriter.java Add one way message. WrapWriter.java Add one way message. ParameterInfo.java Fix issue for ref <.. ref= ../> Type.java Replace reserved C char by '_' ('>' added) Axis runtime ----------------- SoapDeSerializer.cpp: Attributes fixes Handle <.. xsi:nil=true ../> for complexType Regards, Jean-Yves --------------070509080509080207030908 Content-Type: text/plain; name="wsdl2ws.txt" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="wsdl2ws.txt" -------------------------- ./org/apache/axis/wsdl/wsdl2ws/CUtils.java ---------------------------------- 64d63 < import java.util.Enumeration; 66a66 > import org.apache.axis.wsdl.wsdl2ws.WrapperConstants; 201,212c201,204 < public static boolean isSimpleType(QName qname){ < // JBY : Strange only works for "string" < // if(qname2classmap.containsKey(name)) < // return true; < // return false; < Enumeration keys = qname2classmap.keys(); < while ( keys.hasMoreElements()) { < QName current = (QName)keys.nextElement(); < if ( current.getLocalPart().equals(qname.getLocalPart())) < return true; < } < return false; --- > public static boolean isSimpleType(QName name){ > if(qname2classmap.containsKey(name)) > return true; > return false; 234,247c226,230 < // JBY : Strange only works for "string" < // Object val = qname2classmap.get(qname); < // Object val = class2QNamemap.get(qname.getLocalPart()); < // if (val != null) < // return (String) val; < // else < // return null; < Enumeration keys = qname2classmap.keys(); < while ( keys.hasMoreElements()) { < QName current = (QName)keys.nextElement(); < if ( current.getLocalPart().equals(qname.getLocalPart())) < return (String)qname2classmap.get(current); < } < return null; --- > Object val = qname2classmap.get(qname); > if (val != null) > return (String) val; > else > return null; 249d231 < -------------------------- ./org/apache/axis/wsdl/wsdl2ws/WSDL2Ws.java ---------------------------------- 290,291d289 < // to enable one-way operations < if(op.getOutput()!=null){ 293c291 < if (returnlist.hasNext() && "document".equals(bindingEntry.getBindingStyle().getName())){ --- > if ("document".equals(bindingEntry.getBindingStyle().getName())){ 332c330 < if (returnlist.hasNext()) { --- > while (returnlist.hasNext()) { 338d335 < } -------------------------- ./org/apache/axis/wsdl/wsdl2ws/cpp/literal/BeanParamWriter.java ---------------------------------- 126,129d125 < // compilation issue; < writer.write("\tpSZ->Serialize(\">\", NULL);\n"); < writer.write("\treturn AXIS_SUCCESS;\n"); < writer.write("}\n\n"); 133,137d128 < writer.write("\tif ( param == NULL ) {\n"); < writer.write("\t /* TODO : may need to check nillable value*/\n"); < writer.write("\t pSZ->SerializeAsAttribute(\"xsi:nil\", 0, (void*)\"true\", XSD_BOOLEAN);\n"); < writer.write("\t pSZ->Serialize(\">_\", NULL);\n"); < writer.write("\t} else {\n"); 146c137 < writer.write("\t\tpSZ->SerializeAsAttribute(\""+attribs[i].getParamName()+"\", 0, (void*)(param->"+attribs[i].getParamName()+"), "+ CUtils.getXSDTypeForBasicType(attribs[i].getTypeName())+");\n"); --- > writer.write("\t\tpSZ->SerializeAsAttribute(\""+attribs[i].getElementName().getLocalPart()+"\", 0, (void*)(param->"+attribs[i].getParamName()+"), "+ CUtils.getXSDTypeForBasicType(attribs[i].getTypeName())+");\n"); 149c140 < writer.write("\tpSZ->SerializeAsAttribute(\""+attribs[i].getParamName()+"\", 0, (void*)&(param->"+attribs[i].getParamName()+"), "+ CUtils.getXSDTypeForBasicType(attribs[i].getTypeName())+");\n"); --- > writer.write("\tpSZ->SerializeAsAttribute(\""+attribs[i].getElementName().getLocalPart()+"\", 0, (void*)&(param->"+attribs[i].getParamName()+"), "+ CUtils.getXSDTypeForBasicType(attribs[i].getTypeName())+");\n"); 172,176c163 < String elm = attribs[i].getParamName(); < if ( attribs[i].isReference() ) < elm = attribs[i].getTypeName(); < < writer.write("\tpSZ->Serialize(\"<"+elm+"\", 0);\n"); --- > writer.write("\tpSZ->Serialize(\"<"+attribs[i].getParamName()+"\", 0);\n"); 178c165 < writer.write("\tpSZ->Serialize(\"\", 0);\n"); --- > writer.write("\tpSZ->Serialize(\"<"+attribs[i].getParamName()+">\", 0);\n"); 181d167 < writer.write("}\n\n"); 183a170 > 193,195d179 < // compilation issue; < writer.write("\treturn AXIS_SUCCESS;\n"); < writer.write("}\n\n"); 213c197 < writer.write("\tparam->"+attribs[i].getParamName()+" = pIWSDZ->"+CUtils.getParameterGetValueMethodName(attribs[i].getTypeName(), attribs[i].isAttribute())+"(\""+(attribs[i].isAttribute() ? attribs[i].getParamName():attribs[i].getElementName().getLocalPart())+"\",0);\n"); --- > writer.write("\tparam->"+attribs[i].getParamName()+" = pIWSDZ->"+CUtils.getParameterGetValueMethodName(attribs[i].getTypeName(), attribs[i].isAttribute())+"(\""+attribs[i].getElementName().getLocalPart()+"\",0);\n"); -------------------------- ./org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java ---------------------------------- 327,328c327 < if(minfo.getOutputMessage()!=null) < writer.write("\t\tif(AXIS_SUCCESS == m_pCall->CheckMessage(\""+minfo.getOutputMessage().getLocalPart()+"\", \""+minfo.getOutputMessage().getNamespaceURI()+"\"))\n\t\t{\n"); --- > writer.write("\t\tif(AXIS_SUCCESS == m_pCall->CheckMessage(\""+minfo.getOutputMessage().getLocalPart()+"\", \""+minfo.getOutputMessage().getNamespaceURI()+"\"))\n\t\t{\n"); 371,372c370,371 < if(minfo.getOutputMessage()!=null) < writer.write("\t\t\t/*not successful*/\n\t\t}\n"); writer.write("\t}\n\tm_pCall->UnInitialize();\n"); --- > writer.write("\t\t\t/*not successful*/\n\t\t}\n"); > writer.write("\t}\n\tm_pCall->UnInitialize();\n"); -------------------------- ./org/apache/axis/wsdl/wsdl2ws/cpp/literal/WrapWriter.java ---------------------------------- 256,259c256 < if(minfo.getOutputMessage()!=null) < writer.write("\tpIWSSZ->CreateSoapMethod(\""+minfo.getInputMessage().getLocalPart()+"\", \""+minfo.getOutputMessage().getNamespaceURI()+"\");\n"); < else < writer.write("\tpIWSSZ->CreateSoapMethod(\""+minfo.getInputMessage().getLocalPart()+"\", \""+minfo.getInputMessage().getNamespaceURI()+"\");\n"); --- > writer.write("\tpIWSSZ->CreateSoapMethod(\""+minfo.getInputMessage().getLocalPart()+"\", \""+minfo.getOutputMessage().getNamespaceURI()+"\");\n"); -------------------------- ./org/apache/axis/wsdl/wsdl2ws/info/ParameterInfo.java ---------------------------------- 70,77c70 < // TODO: design review needed < // - If type and name are equals add "_Ref" ie : ref="..." < String result; < if (isReference()) < result = attribName + "_Ref"; < else < result = attribName; < return result; --- > return attribName; 127,132d119 < /** < * @return boolean < */ < public boolean isReference() { < return type != null && attribName.equals(type.getLanguageSpecificName()); < } -------------------------- ./org/apache/axis/wsdl/wsdl2ws/info/Type.java ---------------------------------- 148,159c148,150 < this.languageSpecificName = this.languageSpecificName.replaceAll("/","_"); < this.languageSpecificName = this.languageSpecificName.replaceAll(":","_"); < // JBY : add this one more clean? < // This arrived in case of inner type declaration. And for compilation < // we replace all '>' by '_' (not the first one). Quick and durty fix. < if ( this.languageSpecificName.length() > 1 ) { < char first = this.languageSpecificName.charAt(0); < if ( this.languageSpecificName.charAt(0) == '>' ) < this.languageSpecificName = ">" + this.languageSpecificName.substring(1).replaceAll(">","_"); < else < this.languageSpecificName = this.languageSpecificName.replaceAll(">","_"); < } --- > this.languageSpecificName.replaceAll("/","_"); > this.languageSpecificName.replaceAll(":","_"); > --------------070509080509080207030908 Content-Type: text/plain; name="axis.txt" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="axis.txt" 813,817d810 < if ( GetAttributeAsBoolean("nil",0) == true_ ) { < m_pParser->Next(); < m_pNode = NULL; < return NULL; < } 897c888 < ret = conv_func(m_pCurrNode->m_pchAttributes[i+2]);\ --- > ret = conv_func(m_pCurrNode->m_pchAttributes[i]);\ 928c919 < ret = strtol(m_pCurrNode->m_pchAttributes[i+2], &m_pEndptr, 10); --- > ret = strtol(m_pCurrNode->m_pchAttributes[i], &m_pEndptr, 10); 955c946 < ret = (0 == strcmp(m_pCurrNode->m_pchAttributes[i+2], "true")) ? true_: false_; --- > ret = (0 == strcmp(m_pCurrNode->m_pchAttributes[i], "true")) ? true_: false_; --------------070509080509080207030908--