Return-Path: Delivered-To: apmail-ws-axis-c-dev-archive@www.apache.org Received: (qmail 63864 invoked from network); 9 Jul 2004 06:21:48 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 9 Jul 2004 06:21:48 -0000 Received: (qmail 8515 invoked by uid 500); 9 Jul 2004 06:21:46 -0000 Delivered-To: apmail-ws-axis-c-dev-archive@ws.apache.org Received: (qmail 8472 invoked by uid 500); 9 Jul 2004 06:21:45 -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 8454 invoked by uid 99); 9 Jul 2004 06:21:45 -0000 X-ASF-Spam-Status: No, hits=0.6 required=10.0 tests=NO_REAL_NAME,SPF_HELO_FAIL X-Spam-Check-By: apache.org Received: from [209.68.3.43] (HELO wbm2.pair.net) (209.68.3.43) by apache.org (qpsmtpd/0.27.1) with SMTP; Thu, 08 Jul 2004 23:21:40 -0700 Received: (qmail 635 invoked by uid 65534); 9 Jul 2004 06:21:34 -0000 Received: from 220.247.247.197 ([220.247.247.197]) (SquirrelMail authenticated user nithya@opensource.lk); by webmail2.pair.com with HTTP; Fri, 9 Jul 2004 02:21:34 -0400 (EDT) Message-ID: <32990.220.247.247.197.1089354094.squirrel@220.247.247.197> Date: Fri, 9 Jul 2004 02:21:34 -0400 (EDT) Subject: Changes to WSDL2WS tool and FaultMapping From: nithya@opensource.lk To: axis-c-user@ws.apache.org, axis-c-dev@ws.apache.org User-Agent: SquirrelMail/1.4.3a X-Mailer: SquirrelMail/1.4.3a MIME-Version: 1.0 Content-Type: multipart/mixed;boundary="----=_20040709022134_32154" X-Priority: 3 (Normal) Importance: Normal X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N ------=_20040709022134_32154 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit Dear all, I've modified the WSDL2Ws tool so that it generate stubs and skeltons enabling the fault mapping stuff. It should now be able to generate something like the rpcfault for client side as in tests/client/fault_mapping/gen_src tests folder and also for the server side as in tests/server/exceptionTest/gen_src tests folder. Please check and incorporate the code I have attached the patch below, Thanks in advance, Nithya. Rgds, Nithya. ------=_20040709022134_32154 Content-Type: text/x-diff; name="AllExceptionWriter.java.diff" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="AllExceptionWriter.java.diff" *** org/apache/axis/wsdl/wsdl2ws/cpp/AllExceptionWriter.java Tue Jun 8 13:06:29 2004 --- /home/nithya/projects/cvshead/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/AllExceptionWriter.java Fri Jul 9 09:53:55 2004 *************** *** 5,24 **** * Window>Preferences>Java>Code Generation>Code and Comments */ package org.apache.axis.wsdl.wsdl2ws.cpp; - import java.util.Iterator; - import java.util.ArrayList; import org.apache.axis.wsdl.wsdl2ws.SourceWriter; - import org.apache.axis.wsdl.wsdl2ws.WrapperUtils; import org.apache.axis.wsdl.wsdl2ws.WrapperFault; - //import org.apache.axis.wsdl.wsdl2ws.info.Type; - import org.apache.axis.wsdl.wsdl2ws.info.ParameterInfo; import org.apache.axis.wsdl.wsdl2ws.info.WebServiceContext; - import org.apache.axis.wsdl.wsdl2ws.info.MethodInfo; - - //import org.apache.axis.wsdl.wsdl2ws.info.Type; - import org.apache.axis.wsdl.wsdl2ws.info.FaultInfo; - /** * @author nithya * --- 5,14 ---- *************** *** 27,72 **** */ public class AllExceptionWriter implements SourceWriter{ private WebServiceContext wscontext; ! public AllExceptionWriter(WebServiceContext wscontext){ ! this.wscontext =wscontext; ! } /** * genarate all the Exceptions. * @see org.apache.axis.wsdl.wsdl2ws.SourceWriter#writeSource() */ ! public void writeSource() throws WrapperFault { ! ArrayList methods; ! methods = wscontext.getSerInfo().getMethods(); ! MethodInfo minfo; ! FaultInfo faultinfo; ! try{ ! for (int i = 0; i < methods.size(); i++) { ! minfo = (MethodInfo)methods.get(i); ! Iterator paramsFault = minfo.getFaultType().iterator(); ! String faultInfoName =null; ! String faultType =null; ! String langName =null; ! String paramName =null; ! while (paramsFault.hasNext()){ ! FaultInfo info = (FaultInfo)paramsFault.next(); ! faultInfoName =info.getFaultInfo(); ! ArrayList paramInfo =info.getParams(); ! for (int j= 0; j < paramInfo.size(); j++) { ! ParameterInfo par =(ParameterInfo)paramInfo.get(j); ! paramName = par.getParamName(); ! langName =par.getLangName(); ! faultType = WrapperUtils.getClassNameFromParamInfoConsideringArrays(par,wscontext); ! (new ExceptionHeaderWriter(wscontext,faultInfoName,langName,faultType)).writeSource(); ! (new ExceptionWriter(wscontext,faultInfoName,langName,faultType)).writeSource(); ! } ! } ! } ! ! }catch(Exception e){ System.out.println("Error occured yet we continue to genarate other classes ... you should check the error"); e.printStackTrace(); ! } ! } } --- 17,52 ---- */ public class AllExceptionWriter implements SourceWriter{ private WebServiceContext wscontext; + private String strFlag=""; ! public AllExceptionWriter(WebServiceContext wscontext,String strFlag){ ! this.wscontext =wscontext; ! this.strFlag =strFlag; ! } /** * genarate all the Exceptions. * @see org.apache.axis.wsdl.wsdl2ws.SourceWriter#writeSource() */ ! public void writeSource() throws WrapperFault ! { ! try ! { ! if (strFlag.equals("Client")) ! { ! (new ExceptionHeaderWriter(wscontext,"Client")).writeSource(); ! (new ExceptionWriter(wscontext,"Client")).writeSource(); ! } ! else if (strFlag.equals("Server")) ! { ! (new ExceptionHeaderWriter(wscontext,"Service")).writeSource(); ! (new ExceptionWriter(wscontext,"Service")).writeSource(); ! } ! } ! catch(Exception e) ! { System.out.println("Error occured yet we continue to genarate other classes ... you should check the error"); e.printStackTrace(); ! } ! } } ------=_20040709022134_32154 Content-Type: text/x-diff; name="BeanParamWriter.java.diff" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="BeanParamWriter.java.diff" *** org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java Fri Jun 11 11:01:28 2004 --- /home/nithya/projects/cvshead/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java Fri Jul 9 08:19:38 2004 *************** *** 182,188 **** elm = attribs[i].getTypeName(); writer.write("\tparam->"+attribs[i].getParamName()+" = ("+attribs[i].getTypeName()+"*)pIWSDZ->getCmplxObject((void*)Axis_DeSerialize_"+attribs[i].getTypeName()+ "\n\t\t, (void*)Axis_Create_"+attribs[i].getTypeName()+", (void*)Axis_Delete_"+attribs[i].getTypeName()+ ! "\n\t\t, \""+elm+"\", Axis_URI_"+attribs[i].getTypeName()+");\n"); } } writer.write("\treturn pIWSDZ->getStatus();\n"); --- 182,188 ---- elm = attribs[i].getTypeName(); writer.write("\tparam->"+attribs[i].getParamName()+" = ("+attribs[i].getTypeName()+"*)pIWSDZ->getCmplxObject((void*)Axis_DeSerialize_"+attribs[i].getTypeName()+ "\n\t\t, (void*)Axis_Create_"+attribs[i].getTypeName()+", (void*)Axis_Delete_"+attribs[i].getTypeName()+ ! "\n\t\t, \""+attribs[i].getTypeName()+"\", Axis_URI_"+attribs[i].getTypeName()+");\n"); } } writer.write("\treturn pIWSDZ->getStatus();\n"); ------=_20040709022134_32154 Content-Type: text/x-diff; name="BeanParamWriter_literal.java.diff" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="BeanParamWriter_literal.java.diff" *** org/apache/axis/wsdl/wsdl2ws/cpp/literal/BeanParamWriter.java Fri Jun 11 11:01:28 2004 --- /home/nithya/projects/cvshead/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/BeanParamWriter.java Fri Jul 9 09:22:07 2004 *************** *** 210,216 **** //if complex type writer.write("\tparam->"+attribs[i].getParamName()+" = ("+attribs[i].getTypeName()+"*)pIWSDZ->getCmplxObject((void*)Axis_DeSerialize_"+attribs[i].getTypeName()+ "\n\t\t, (void*)Axis_Create_"+attribs[i].getTypeName()+", (void*)Axis_Delete_"+attribs[i].getTypeName()+ ! "\n\t\t, \""+attribs[i].getElementName().getLocalPart()+"\", Axis_URI_"+attribs[i].getTypeName()+");\n"); } } writer.write("\treturn pIWSDZ->getStatus();\n"); --- 210,216 ---- //if complex type writer.write("\tparam->"+attribs[i].getParamName()+" = ("+attribs[i].getTypeName()+"*)pIWSDZ->getCmplxObject((void*)Axis_DeSerialize_"+attribs[i].getTypeName()+ "\n\t\t, (void*)Axis_Create_"+attribs[i].getTypeName()+", (void*)Axis_Delete_"+attribs[i].getTypeName()+ ! "\n\t\t, \""+attribs[i].getParamName()+"\", Axis_URI_"+attribs[i].getTypeName()+");\n"); } } writer.write("\treturn pIWSDZ->getStatus();\n"); ------=_20040709022134_32154 Content-Type: text/x-diff; name="ClientStubHeaderWriter.java.diff" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="ClientStubHeaderWriter.java.diff" *** org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubHeaderWriter.java Fri Jun 25 14:57:17 2004 --- /home/nithya/projects/cvshead/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubHeaderWriter.java Fri Jul 9 08:19:38 2004 *************** *** 161,168 **** protected void writePreprocssorStatements() throws WrapperFault { try{ writer.write("#include \n"); ! writer.write("#include \n"); ! writer.write("/*include Exception header files here*/\n");//damitha Type atype; Iterator types = this.wscontext.getTypemap().getTypes().iterator(); HashSet typeSet = new HashSet(); --- 161,168 ---- protected void writePreprocssorStatements() throws WrapperFault { try{ writer.write("#include \n"); ! writer.write("#include \"AxisClientException.h\"\n"); ! writer.write("#include \n"); Type atype; Iterator types = this.wscontext.getTypemap().getTypes().iterator(); HashSet typeSet = new HashSet(); *************** *** 179,185 **** writer.write("#include \""+itr.next().toString()+".h\"\n"); } //Method to print the Fault Exception headers ! writeFaultHeaders(); writer.write("\n"); }catch (IOException e) { e.printStackTrace(); --- 179,185 ---- writer.write("#include \""+itr.next().toString()+".h\"\n"); } //Method to print the Fault Exception headers ! //writeFaultHeaders(); writer.write("\n"); }catch (IOException e) { e.printStackTrace(); ------=_20040709022134_32154 Content-Type: text/x-diff; name="ClientStubHeaderWriter_literal.java.diff" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="ClientStubHeaderWriter_literal.java.diff" *** org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubHeaderWriter.java Fri Jun 25 14:58:58 2004 --- /home/nithya/projects/cvshead/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubHeaderWriter.java Fri Jul 9 09:22:07 2004 *************** *** 166,172 **** protected void writePreprocssorStatements() throws WrapperFault { try{ writer.write("#include \n"); ! writer.write("#include \n"); Type atype; Iterator types = this.wscontext.getTypemap().getTypes().iterator(); HashSet typeSet = new HashSet(); --- 166,173 ---- protected void writePreprocssorStatements() throws WrapperFault { try{ writer.write("#include \n"); ! writer.write("#include \n"); ! writer.write("#include \"AxisClientException.h\"\n"); Type atype; Iterator types = this.wscontext.getTypemap().getTypes().iterator(); HashSet typeSet = new HashSet(); *************** *** 181,187 **** writer.write("#include \""+itr.next().toString()+".h\"\n"); } // Method to print the Fault Exception headers ! writeFaultHeaders(); writer.write("\n"); }catch (IOException e) { e.printStackTrace(); --- 182,188 ---- writer.write("#include \""+itr.next().toString()+".h\"\n"); } // Method to print the Fault Exception headers ! //writeFaultHeaders(); writer.write("\n"); }catch (IOException e) { e.printStackTrace(); ------=_20040709022134_32154 Content-Type: text/x-diff; name="ClientStubWriter.java.diff" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="ClientStubWriter.java.diff" *** org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubWriter.java Fri Jun 25 14:57:17 2004 --- /home/nithya/projects/cvshead/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubWriter.java Fri Jul 9 08:19:38 2004 *************** *** 216,225 **** String channelSecurityType = (WrapperConstants.CHANNEL_SECURITY_SSL.equals(wscontext.getWrapInfo().getChannelSecurity()))? "SSL_CHANNEL" : "NORMAL_CHANNEL"; ! writer.write("\tchar* cFaultcode;\n"); ! writer.write("\tchar* cFaultstring;\n"); ! writer.write("\tchar* cFaultactor;\n"); ! writer.write("\tchar* cFaultdetail;\n"); writer.write("\ttry\n\t{"); writer.write("\n\t\tif (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER, "+channelSecurityType +")) \n\t\t\treturn ");//damitha if (returntype != null){ --- 216,225 ---- String channelSecurityType = (WrapperConstants.CHANNEL_SECURITY_SSL.equals(wscontext.getWrapInfo().getChannelSecurity()))? "SSL_CHANNEL" : "NORMAL_CHANNEL"; ! //writer.write("\tchar* cFaultcode;\n"); ! //writer.write("\tchar* cFaultstring;\n"); ! //writer.write("\tchar* cFaultactor;\n"); ! writer.write("\tconst char* pcCmplxFaultName;\n"); writer.write("\ttry\n\t{"); writer.write("\n\t\tif (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER, "+channelSecurityType +")) \n\t\t\treturn ");//damitha if (returntype != null){ *************** *** 349,362 **** writer.write("\t\tint iExceptionCode = e.getExceptionCode();\n"); writer.write("\t\tif(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)\n"); writer.write("\t\t{\n"); writer.write("\t\t\tthrow;\n"); writer.write("\t\t}\n"); ! writer.write("\t\telse if (AXIS_SUCCESS == m_pCall->checkFault(\"Fault\",\""+wscontext.getWrapInfo().getTargetEndpointURI()+"\" ))"); ! writer.write("//Exception handling code goes here\n"); ! writer.write("\t\t{\n"); ! writer.write("\t\t\tcFaultcode = m_pCall->getElementAsString(\"faultcode\", 0);\n"); ! writer.write("\t\t\tcFaultstring = m_pCall->getElementAsString(\"faultstring\", 0);\n"); ! writer.write("\t\t\tcFaultactor = m_pCall->getElementAsString(\"faultactor\", 0);\n"); //to get fault info Iterator paramsFault = minfo.getFaultType().iterator(); String faultInfoName =null; --- 349,364 ---- writer.write("\t\tint iExceptionCode = e.getExceptionCode();\n"); writer.write("\t\tif(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)\n"); writer.write("\t\t{\n"); + writer.write("\t\t\tm_pCall->unInitialize();\n"); writer.write("\t\t\tthrow;\n"); writer.write("\t\t}\n"); ! //ISoapFault* pSoapFault = (ISoapFault*) m_pCall->checkFault("Fault", "http://localhost/axis/MathOps"); ! ! ! writer.write("\t\tISoapFault* pSoapFault = (ISoapFault*) m_pCall->checkFault(\"Fault\",\""+wscontext.getWrapInfo().getTargetEndpointURI()+"\" );\n"); ! writer.write("\t\tif(pSoapFault)\n"); ! writer.write("\t\t{\n"); ! //writer.write("\t\t\tpcCmplxFaultName = pSoapFault->getCmplxFaultObjectName().c_str();\n"); //to get fault info Iterator paramsFault = minfo.getFaultType().iterator(); String faultInfoName =null; *************** *** 367,378 **** int j =0; if (!paramsFault.hasNext()) { ! writer.write("\t\t\tcFaultdetail = m_pCall->getElementAsString(\"faultdetail\", 0);\n"); ! writer.write("\t\t\tthrow AxisGenException(cFaultdetail);\n"); } else { flag =true; } while (paramsFault.hasNext()){ j =j+1; --- 369,381 ---- int j =0; if (!paramsFault.hasNext()) { ! writer.write("\t\t\tm_pCall->unInitialize();\n"); ! writer.write("\t\t\tthrow AxisClientException(pSoapFault);\n"); } else { flag =true; + writer.write("\t\t\tpcCmplxFaultName = pSoapFault->getCmplxFaultObjectName().c_str();\n"); } while (paramsFault.hasNext()){ j =j+1; *************** *** 400,407 **** if (flag ==true) { writer.write("\t\t\telse\n\t\t\t{\n"); ! writer.write("\t\t\t\t cFaultdetail = m_pCall->getElementAsString(\"faultdetail\", 0);\n"); ! writer.write("\t\t\t\t throw AxisGenException(cFaultdetail);\n"); writer.write("\t\t\t}\n"); } --- 403,410 ---- if (flag ==true) { writer.write("\t\t\telse\n\t\t\t{\n"); ! writer.write("\t\t\t\t m_pCall->unInitialize();\n"); ! writer.write("\t\t\t\t throw AxisClientException(pSoapFault);\n"); writer.write("\t\t\t}\n"); } *************** *** 412,432 **** } private void writeExceptions(String faulttype,String faultInfoName,String paramName,String langName) throws WrapperFault{ try{ ! writer.write("(0 == strcmp(\""+langName+"\", cFaultstring))\n"); ! // writer.write("\t\t\tif(0 == strcmp(\""+langName+"\", cFaultstring))\n"); writer.write("\t\t\t{\n"); ! writer.write("\t\t\t\tif (AXIS_SUCCESS == m_pCall->checkFault(\"faultdetail\",\""+wscontext.getWrapInfo().getTargetEndpointURI()+"\"))\n"); ! writer.write("\t\t\t\t{\n"); ! writer.write("\t\t\t\t\t"+faulttype+" pFaultDetail = NULL;\n"); ! writer.write("\t\t\t\t\tpFaultDetail = ("+faulttype+")m_pCall->\n"); ! writer.write("\t\t\t\t\t\tgetCmplxObject((void*) Axis_DeSerialize_"+langName+",\n"); ! writer.write("\t\t\t\t\t\t(void*) Axis_Create_"+langName+",\n"); ! writer.write("\t\t\t\t\t\t(void*) Axis_Delete_"+langName+",\""+paramName+"\", 0);\n"); ! writer.write("\t\t\t\t\t/*User code to handle the struct can be inserted here*/\n"); ! writer.write("\t\t\t\t\tm_pCall->unInitialize();\n"); ! writer.write("\t\t\t\t\tthrow Axis"+faultInfoName+"Exception(pFaultDetail);\n"); ! writer.write("\t\t\t\t}\n"); ! writer.write("\t\t\t}\n"); } catch (IOException e) { throw new WrapperFault(e); --- 415,433 ---- } private void writeExceptions(String faulttype,String faultInfoName,String paramName,String langName) throws WrapperFault{ try{ ! writer.write("(0 == strcmp(\""+langName+"\", pcCmplxFaultName))\n"); ! // writer.write("\t\t\tif(0 == strcmp(\""+langName+"\", pcCmplxFaultName))\n"); writer.write("\t\t\t{\n"); ! writer.write("\t\t\t\t\t"+faulttype+" pFaultDetail = NULL;\n"); ! writer.write("\t\t\t\t\tpFaultDetail = ("+faulttype+")pSoapFault->\n"); ! writer.write("\t\t\t\t\t\tgetCmplxFaultObject((void*) Axis_DeSerialize_"+langName+",\n"); ! writer.write("\t\t\t\t\t\t(void*) Axis_Create_"+langName+",\n"); ! writer.write("\t\t\t\t\t\t(void*) Axis_Delete_"+langName+",\""+langName+"\", 0);\n"); ! writer.write("\t\t\t\t\tpSoapFault->setCmplxFaultObject(pFaultDetail);\n"); ! writer.write("\t\t\t\t\tm_pCall->unInitialize();\n"); ! writer.write("\t\t\t\t\tthrow AxisClientException(pSoapFault);\n"); ! //writer.write("\t\t\t\t}\n"); ! writer.write("\t\t\t}\n"); } catch (IOException e) { throw new WrapperFault(e); ------=_20040709022134_32154 Content-Type: text/x-diff; name="ClientStubWriter_literal.java.diff" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="ClientStubWriter_literal.java.diff" *** org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java Fri Jun 25 14:58:58 2004 --- /home/nithya/projects/cvshead/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java Fri Jul 9 09:22:07 2004 *************** *** 264,277 **** } } String channelSecurityType = (WrapperConstants.CHANNEL_SECURITY_SSL.equals(wscontext.getWrapInfo().getChannelSecurity()))? ! "SSL_CHANNEL" : "NORMAL_CHANNEL"; ! //begin added Nithya ! writer.write("\tchar* cFaultcode;\n");//damitha added \t ! writer.write("\tchar* cFaultstring;\n");//damitha \t ! writer.write("\tchar* cFaultactor;\n");//damitha \t ! writer.write("\tchar* cFaultdetail;\n");//damitha \t ! writer.write("\ttry\n\t{");//damitha \n ! //ended by nithya writer.write("\tif (AXIS_SUCCESS != m_pCall->initialize(CPP_DOC_PROVIDER, "+channelSecurityType+")) return "); if (returntype != null){ writer.write((returntypeisarray?"RetArray":returntypeissimple?"Ret":"pReturn")+";\n\t"); --- 264,273 ---- } } String channelSecurityType = (WrapperConstants.CHANNEL_SECURITY_SSL.equals(wscontext.getWrapInfo().getChannelSecurity()))? ! "SSL_CHANNEL" : "NORMAL_CHANNEL"; ! writer.write("\tconst char* pcCmplxFaultName;\n"); ! writer.write("\ttry\n\t{"); ! writer.write("\tif (AXIS_SUCCESS != m_pCall->initialize(CPP_DOC_PROVIDER, "+channelSecurityType+")) return "); if (returntype != null){ writer.write((returntypeisarray?"RetArray":returntypeissimple?"Ret":"pReturn")+";\n\t"); *************** *** 434,464 **** writer.write("\t\tif(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)\n"); writer.write("\t\t{\n"); writer.write("\t\t\tthrow;\n"); ! writer.write("\t\t}\n"); ! writer.write("\t\telse if (AXIS_SUCCESS == m_pCall->checkFault(\"Fault\",\""+wscontext.getWrapInfo().getTargetEndpointURI()+"\" ))"); ! writer.write("//Exception handling code goes here\n"); ! writer.write("\t\t{\n"); ! writer.write("\t\t\tcFaultcode = m_pCall->getElementAsString(\"faultcode\", 0);\n"); ! writer.write("\t\t\tcFaultstring = m_pCall->getElementAsString(\"faultstring\", 0);\n"); ! writer.write("\t\t\tcFaultactor = m_pCall->getElementAsString(\"faultactor\", 0);\n"); //to get fault info ! Iterator paramsFault = minfo.getFaultType().iterator(); ! String faultInfoName =null; ! String faultType =null; ! String langName =null; ! String paramName =null; ! boolean flag =false; ! int j =0; ! if (!paramsFault.hasNext()) ! { ! writer.write("\t\t\tcFaultdetail = m_pCall->getElementAsString(\"faultdetail\", 0);\n"); ! writer.write("\t\t\tthrow AxisGenException(cFaultdetail);\n"); ! } ! else ! { ! flag =true; ! } while (paramsFault.hasNext()){ j =j+1; FaultInfo info = (FaultInfo)paramsFault.next(); --- 430,458 ---- writer.write("\t\tif(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)\n"); writer.write("\t\t{\n"); writer.write("\t\t\tthrow;\n"); ! writer.write("\t\t}\n"); ! writer.write("\t\tISoapFault* pSoapFault = (ISoapFault*) m_pCall->checkFault(\"Fault\",\""+wscontext.getWrapInfo().getTargetEndpointURI()+"\" );\n"); ! writer.write("\t\tif(pSoapFault)\n"); ! writer.write("\t\t{\n"); //to get fault info ! Iterator paramsFault = minfo.getFaultType().iterator(); ! String faultInfoName =null; ! String faultType =null; ! String langName =null; ! String paramName =null; ! boolean flag =false; ! int j =0; ! if (!paramsFault.hasNext()) ! { ! writer.write("\t\t\tm_pCall->unInitialize();\n"); ! writer.write("\t\t\tthrow AxisClientException(pSoapFault);\n"); ! } ! else ! { ! flag =true; ! writer.write("\t\t\tpcCmplxFaultName = pSoapFault->getCmplxFaultObjectName().c_str();\n"); ! } while (paramsFault.hasNext()){ j =j+1; FaultInfo info = (FaultInfo)paramsFault.next(); *************** *** 483,490 **** if (flag ==true) { writer.write("\t\t\telse\n\t\t\t{\n"); ! writer.write("\t\t\t\t cFaultdetail = m_pCall->getElementAsString(\"faultdetail\", 0);\n"); ! writer.write("\t\t\t\t throw AxisGenException(cFaultdetail);\n"); writer.write("\t\t\t}\n"); } writer.write("\t\t}\n"); --- 477,484 ---- if (flag ==true) { writer.write("\t\t\telse\n\t\t\t{\n"); ! writer.write("\t\t\t\t m_pCall->unInitialize();\n"); ! writer.write("\t\t\t\t throw AxisClientException(pSoapFault);\n"); writer.write("\t\t\t}\n"); } writer.write("\t\t}\n"); *************** *** 495,513 **** private void writeExceptions(String faulttype,String faultInfoName,String paramName,String langName) throws WrapperFault{ try{ ! writer.write("\t\t\tif(0 == strcmp(\""+langName+"\", cFaultstring))\n"); ! writer.write("\t\t\t{\n"); ! writer.write("\t\t\t\tif (AXIS_SUCCESS == m_pCall->checkFault(\"faultdetail\",\""+wscontext.getWrapInfo().getTargetEndpointURI()+"\"))\n"); ! writer.write("\t\t\t\t{\n"); ! writer.write("\t\t\t\t\t"+faulttype+" pFaultDetail = NULL;\n"); ! writer.write("\t\t\t\t\tpFaultDetail = ("+faulttype+")m_pCall->\n"); ! writer.write("\t\t\t\t\t\tgetCmplxObject((void*) Axis_DeSerialize_"+langName+",\n"); ! writer.write("\t\t\t\t\t\t(void*) Axis_Create_"+langName+",\n"); ! writer.write("\t\t\t\t\t\t(void*) Axis_Delete_"+langName+",\""+paramName+"\", 0);\n"); ! writer.write("\t\t\t\t\t/*User code to handle the struct can be inserted here*/\n"); ! writer.write("\t\t\t\t\tm_pCall->unInitialize();\n"); ! writer.write("\t\t\t\t\tthrow Axis"+faultInfoName+"Exception(pFaultDetail);\n"); ! writer.write("\t\t\t\t}\n"); writer.write("\t\t\t}\n"); } catch (IOException e) { --- 489,504 ---- private void writeExceptions(String faulttype,String faultInfoName,String paramName,String langName) throws WrapperFault{ try{ ! writer.write("(0 == strcmp(\""+faultInfoName+"\", pcCmplxFaultName))\n"); ! writer.write("\t\t\t{\n"); ! writer.write("\t\t\t\t"+faulttype+" pFaultDetail = NULL;\n"); ! writer.write("\t\t\t\tpFaultDetail = ("+faulttype+")pSoapFault->\n"); ! writer.write("\t\t\t\t\tgetCmplxFaultObject((void*) Axis_DeSerialize_"+langName+",\n"); ! writer.write("\t\t\t\t\t(void*) Axis_Create_"+langName+",\n"); ! writer.write("\t\t\t\t\t(void*) Axis_Delete_"+langName+",\""+faultInfoName+"\", 0);\n"); ! writer.write("\t\t\t\tpSoapFault->setCmplxFaultObject(pFaultDetail);\n"); ! writer.write("\t\t\t\tm_pCall->unInitialize();\n"); ! writer.write("\t\t\t\tthrow AxisClientException(pSoapFault);\n"); writer.write("\t\t\t}\n"); } catch (IOException e) { ------=_20040709022134_32154 Content-Type: text/x-diff; name="DocLitWebServiceGenarator.java.diff" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="DocLitWebServiceGenarator.java.diff" *** org/apache/axis/wsdl/wsdl2ws/doclit/DocLitWebServiceGenarator.java Sat Jun 12 09:57:12 2004 --- /home/nithya/projects/cvshead/src/wsdl/org/apache/axis/wsdl/wsdl2ws/doclit/DocLitWebServiceGenarator.java Fri Jul 9 10:14:46 2004 *************** *** 55,67 **** (new Genarator(WrapperConstants.GENERATOR_CLASSLOADER_CPP, wscontext)).genarate(); (new Genarator(WrapperConstants.GENERATOR_DEPLOYMENT, wscontext)).genarate(); (new Genarator(WrapperConstants.GENERATOR_UNDEPLOYMENT, wscontext)).genarate(); ! (new Genarator(WrapperConstants.GENERATOR_EXCEPTION_ALL, wscontext)).genarate(); //nithya (new Genarator(WrapperConstants.GENERATOR_BUILDSCRIPT, wscontext)).genarate(); }else{ (new Genarator(WrapperConstants.GENERATOR_CLIENT_STUB_CPP, wscontext)).genarate(); (new Genarator(WrapperConstants.GENERATOR_CLIENT_STUB_HPP, wscontext)).genarate(); (new Genarator(WrapperConstants.GENERATOR_PARAM_CPP_ALL, wscontext)).genarate(); ! (new Genarator(WrapperConstants.GENERATOR_EXCEPTION_ALL, wscontext)).genarate();//nithya (new Genarator(WrapperConstants.GENERATOR_BUILDSCRIPT, wscontext)).genarate(); } }else if(WrapperConstants.LANGUAGE_C.equalsIgnoreCase(language)){ --- 55,67 ---- (new Genarator(WrapperConstants.GENERATOR_CLASSLOADER_CPP, wscontext)).genarate(); (new Genarator(WrapperConstants.GENERATOR_DEPLOYMENT, wscontext)).genarate(); (new Genarator(WrapperConstants.GENERATOR_UNDEPLOYMENT, wscontext)).genarate(); ! (new Genarator(WrapperConstants.GENERATOR_SERVER_EXCEPTION, wscontext)).genarate(); (new Genarator(WrapperConstants.GENERATOR_BUILDSCRIPT, wscontext)).genarate(); }else{ (new Genarator(WrapperConstants.GENERATOR_CLIENT_STUB_CPP, wscontext)).genarate(); (new Genarator(WrapperConstants.GENERATOR_CLIENT_STUB_HPP, wscontext)).genarate(); (new Genarator(WrapperConstants.GENERATOR_PARAM_CPP_ALL, wscontext)).genarate(); ! (new Genarator(WrapperConstants.GENERATOR_CLIENT_EXCEPTION, wscontext)).genarate();//nithya (new Genarator(WrapperConstants.GENERATOR_BUILDSCRIPT, wscontext)).genarate(); } }else if(WrapperConstants.LANGUAGE_C.equalsIgnoreCase(language)){ ------=_20040709022134_32154 Content-Type: text/x-diff; name="RPCWebServiceGenarator.java.diff" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="RPCWebServiceGenarator.java.diff" *** org/apache/axis/wsdl/wsdl2ws/rpc/RPCWebServiceGenarator.java Sat Jun 12 09:57:12 2004 --- /home/nithya/projects/cvshead/src/wsdl/org/apache/axis/wsdl/wsdl2ws/rpc/RPCWebServiceGenarator.java Fri Jul 9 08:19:38 2004 *************** *** 57,63 **** (new Genarator(WrapperConstants.GENERATOR_PARAM_CPP_ALL, wscontext)).genarate(); (new Genarator(WrapperConstants.GENERATOR_CLASSLOADER_CPP, wscontext)).genarate(); (new Genarator(WrapperConstants.GENERATOR_DEPLOYMENT, wscontext)).genarate(); ! (new Genarator(WrapperConstants.GENERATOR_EXCEPTION_ALL, wscontext)).genarate(); (new Genarator(WrapperConstants.GENERATOR_UNDEPLOYMENT, wscontext)).genarate(); /* * make sure the BuildScript generator is called at last. If you call earlier not all files will be added --- 57,63 ---- (new Genarator(WrapperConstants.GENERATOR_PARAM_CPP_ALL, wscontext)).genarate(); (new Genarator(WrapperConstants.GENERATOR_CLASSLOADER_CPP, wscontext)).genarate(); (new Genarator(WrapperConstants.GENERATOR_DEPLOYMENT, wscontext)).genarate(); ! (new Genarator(WrapperConstants.GENERATOR_SERVER_EXCEPTION, wscontext)).genarate(); (new Genarator(WrapperConstants.GENERATOR_UNDEPLOYMENT, wscontext)).genarate(); /* * make sure the BuildScript generator is called at last. If you call earlier not all files will be added *************** *** 67,73 **** }else{ (new Genarator(WrapperConstants.GENERATOR_CLIENT_STUB_CPP, wscontext)).genarate(); (new Genarator(WrapperConstants.GENERATOR_CLIENT_STUB_HPP, wscontext)).genarate(); ! (new Genarator(WrapperConstants.GENERATOR_EXCEPTION_ALL, wscontext)).genarate(); (new Genarator(WrapperConstants.GENERATOR_PARAM_CPP_ALL, wscontext)).genarate(); /* * make sure the BuildScript generator is called at last. If you call earlier not all files will be added --- 67,73 ---- }else{ (new Genarator(WrapperConstants.GENERATOR_CLIENT_STUB_CPP, wscontext)).genarate(); (new Genarator(WrapperConstants.GENERATOR_CLIENT_STUB_HPP, wscontext)).genarate(); ! (new Genarator(WrapperConstants.GENERATOR_CLIENT_EXCEPTION, wscontext)).genarate(); (new Genarator(WrapperConstants.GENERATOR_PARAM_CPP_ALL, wscontext)).genarate(); /* * make sure the BuildScript generator is called at last. If you call earlier not all files will be added ------=_20040709022134_32154 Content-Type: text/x-diff; name="ServiceHeaderWriter.java.diff" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="ServiceHeaderWriter.java.diff" *** org/apache/axis/wsdl/wsdl2ws/cpp/ServiceHeaderWriter.java Tue Jul 6 13:16:03 2004 --- /home/nithya/projects/cvshead/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ServiceHeaderWriter.java Fri Jul 9 09:44:50 2004 *************** *** 160,166 **** Type atype; Iterator types = this.wscontext.getTypemap().getTypes().iterator(); HashSet typeSet = new HashSet(); ! writer.write("#include \n\n"); String typeName = null; while(types.hasNext()){ atype = (Type)types.next(); --- 160,167 ---- Type atype; Iterator types = this.wscontext.getTypemap().getTypes().iterator(); HashSet typeSet = new HashSet(); ! writer.write("#include \n"); ! writer.write("#include \"AxisServiceException.h\" \n\n"); String typeName = null; while(types.hasNext()){ atype = (Type)types.next(); *************** *** 174,180 **** { writer.write("#include \""+itr.next().toString()+".h\"\n"); } ! writeFaultHeaders(); writer.write("\n"); }catch (IOException e) { e.printStackTrace(); --- 175,181 ---- { writer.write("#include \""+itr.next().toString()+".h\"\n"); } ! //writeFaultHeaders(); writer.write("\n"); }catch (IOException e) { e.printStackTrace(); ------=_20040709022134_32154 Content-Type: text/x-diff; name="ServiceHeaderWriter_literal.java.diff" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="ServiceHeaderWriter_literal.java.diff" *** org/apache/axis/wsdl/wsdl2ws/cpp/literal/ServiceHeaderWriter.java Tue Jul 6 13:16:03 2004 --- /home/nithya/projects/cvshead/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ServiceHeaderWriter.java Fri Jul 9 09:44:20 2004 *************** *** 159,165 **** Type atype; Iterator types = this.wscontext.getTypemap().getTypes().iterator(); HashSet typeSet = new HashSet(); ! writer.write("#include \n\n"); while(types.hasNext()){ atype = (Type)types.next(); if (atype.getLanguageSpecificName().startsWith(">")) continue; --- 159,166 ---- Type atype; Iterator types = this.wscontext.getTypemap().getTypes().iterator(); HashSet typeSet = new HashSet(); ! writer.write("#include \n"); ! writer.write("#include \"AxisServiceException.h\" \n\n"); while(types.hasNext()){ atype = (Type)types.next(); if (atype.getLanguageSpecificName().startsWith(">")) continue; *************** *** 171,177 **** writer.write("#include \""+itr.next().toString()+".h\"\n"); } ! writeFaultHeaders(); writer.write("\n"); }catch (IOException e) { e.printStackTrace(); --- 172,178 ---- writer.write("#include \""+itr.next().toString()+".h\"\n"); } ! //writeFaultHeaders(); writer.write("\n"); }catch (IOException e) { e.printStackTrace(); ------=_20040709022134_32154 Content-Type: text/x-diff; name="SourceWriterFactory.java.diff" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="SourceWriterFactory.java.diff" *** org/apache/axis/wsdl/wsdl2ws/SourceWriterFactory.java Sat Jun 12 09:57:11 2004 --- /home/nithya/projects/cvshead/src/wsdl/org/apache/axis/wsdl/wsdl2ws/SourceWriterFactory.java Fri Jul 9 08:19:38 2004 *************** *** 52,59 **** return new org.apache.axis.wsdl.wsdl2ws.cpp.ClientStubHeaderWriter(wscontext); else if(genaratorType == WrapperConstants.GENERATOR_CLIENT_STUB_CPP) return new org.apache.axis.wsdl.wsdl2ws.cpp.ClientStubWriter(wscontext); ! else if(genaratorType == WrapperConstants.GENERATOR_EXCEPTION_ALL) // nithya ! return new org.apache.axis.wsdl.wsdl2ws.cpp.AllExceptionWriter(wscontext); //C else if(genaratorType == WrapperConstants.GENERATOR_PARAM_C_ALL) return new org.apache.axis.wsdl.wsdl2ws.c.AllParamWriter(wscontext); --- 52,61 ---- return new org.apache.axis.wsdl.wsdl2ws.cpp.ClientStubHeaderWriter(wscontext); else if(genaratorType == WrapperConstants.GENERATOR_CLIENT_STUB_CPP) return new org.apache.axis.wsdl.wsdl2ws.cpp.ClientStubWriter(wscontext); ! else if(genaratorType == WrapperConstants.GENERATOR_CLIENT_EXCEPTION) ! return new org.apache.axis.wsdl.wsdl2ws.cpp.AllExceptionWriter(wscontext,"Client"); ! else if(genaratorType == WrapperConstants.GENERATOR_SERVER_EXCEPTION) ! return new org.apache.axis.wsdl.wsdl2ws.cpp.AllExceptionWriter(wscontext,"Server"); //C else if(genaratorType == WrapperConstants.GENERATOR_PARAM_C_ALL) return new org.apache.axis.wsdl.wsdl2ws.c.AllParamWriter(wscontext); *************** *** 88,95 **** return new org.apache.axis.wsdl.wsdl2ws.cpp.literal.ClientStubHeaderWriter(wscontext); else if(genaratorType == WrapperConstants.GENERATOR_CLIENT_STUB_CPP) return new org.apache.axis.wsdl.wsdl2ws.cpp.literal.ClientStubWriter(wscontext); ! else if(genaratorType == WrapperConstants.GENERATOR_EXCEPTION_ALL) // nithya ! return new org.apache.axis.wsdl.wsdl2ws.cpp.AllExceptionWriter(wscontext); //C else if(genaratorType == WrapperConstants.GENERATOR_PARAM_C_ALL) --- 90,99 ---- return new org.apache.axis.wsdl.wsdl2ws.cpp.literal.ClientStubHeaderWriter(wscontext); else if(genaratorType == WrapperConstants.GENERATOR_CLIENT_STUB_CPP) return new org.apache.axis.wsdl.wsdl2ws.cpp.literal.ClientStubWriter(wscontext); ! else if(genaratorType == WrapperConstants.GENERATOR_CLIENT_EXCEPTION) // nithya ! return new org.apache.axis.wsdl.wsdl2ws.cpp.AllExceptionWriter(wscontext,"Client"); ! else if(genaratorType == WrapperConstants.GENERATOR_SERVER_EXCEPTION) // nithya ! return new org.apache.axis.wsdl.wsdl2ws.cpp.AllExceptionWriter(wscontext,"Server"); //C else if(genaratorType == WrapperConstants.GENERATOR_PARAM_C_ALL) ------=_20040709022134_32154 Content-Type: text/x-diff; name="WrapHeaderWriter.java.diff" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="WrapHeaderWriter.java.diff" *** org/apache/axis/wsdl/wsdl2ws/cpp/WrapHeaderWriter.java Tue Jul 6 13:16:03 2004 --- /home/nithya/projects/cvshead/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/WrapHeaderWriter.java Fri Jul 9 09:11:21 2004 *************** *** 117,124 **** writer.write("#include \n"); writer.write("#include \n"); writer.write("#include \n"); ! writer.write("#include \n\n"); ! writeFaultHeaders(); }catch(IOException e){ throw new WrapperFault(e); --- 117,125 ---- writer.write("#include \n"); writer.write("#include \n"); writer.write("#include \n"); ! writer.write("#include \n"); ! writer.write("#include \"AxisServiceException.h\" \n\n"); ! //writeFaultHeaders(); }catch(IOException e){ throw new WrapperFault(e); ------=_20040709022134_32154 Content-Type: text/x-diff; name="WrapHeaderWriter_literal.java.diff" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="WrapHeaderWriter_literal.java.diff" *** org/apache/axis/wsdl/wsdl2ws/cpp/literal/WrapHeaderWriter.java Tue Jul 6 13:16:03 2004 --- /home/nithya/projects/cvshead/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/WrapHeaderWriter.java Fri Jul 9 09:11:48 2004 *************** *** 117,124 **** writer.write("#include \n"); writer.write("#include \n"); writer.write("#include \n"); ! writer.write("#include \n\n"); ! writeFaultHeaders(); }catch(IOException e){ throw new WrapperFault(e); --- 117,125 ---- writer.write("#include \n"); writer.write("#include \n"); writer.write("#include \n"); ! writer.write("#include \n"); ! writer.write("#include \"AxisServiceException.h\" \n\n"); ! //writeFaultHeaders(); }catch(IOException e){ throw new WrapperFault(e); ------=_20040709022134_32154 Content-Type: text/x-diff; name="WrapperConstant.java.diff" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="WrapperConstant.java.diff" *** org/apache/axis/wsdl/wsdl2ws/WrapperConstants.java Sat Jun 12 09:57:11 2004 --- /home/nithya/projects/cvshead/src/wsdl/org/apache/axis/wsdl/wsdl2ws/WrapperConstants.java Fri Jul 9 08:19:38 2004 *************** *** 67,73 **** public static final int GENERATOR_CLIENT_STUB_HPP = 19; public static final int GENERATOR_PARAM_CPP_ALL = 20 ; public static final int GENERATOR_SERVICE_HPP = 21 ; ! public static final int GENERATOR_EXCEPTION_ALL = 50; //c constants public static final int GENERATOR_CLASSLOADER_C = 22 ; public static final int GENERATOR_WRAPPER_C = 23; --- 67,74 ---- public static final int GENERATOR_CLIENT_STUB_HPP = 19; public static final int GENERATOR_PARAM_CPP_ALL = 20 ; public static final int GENERATOR_SERVICE_HPP = 21 ; ! public static final int GENERATOR_CLIENT_EXCEPTION = 50; ! public static final int GENERATOR_SERVER_EXCEPTION = 51; //c constants public static final int GENERATOR_CLASSLOADER_C = 22 ; public static final int GENERATOR_WRAPPER_C = 23; ------=_20040709022134_32154 Content-Type: text/x-diff; name="WrapWriter_literal.java.diff" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="WrapWriter_literal.java.diff" *** org/apache/axis/wsdl/wsdl2ws/cpp/WrapWriter.java Tue Jul 6 13:16:03 2004 --- /home/nithya/projects/cvshead/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/WrapWriter.java Fri Jul 9 10:41:09 2004 *************** *** 19,25 **** * @author Susantha Kumara(susantha@opensource.lk, skumara@virtusa.com) */ ! package org.apache.axis.wsdl.wsdl2ws.cpp; import java.io.File; import java.io.IOException; --- 19,25 ---- * @author Susantha Kumara(susantha@opensource.lk, skumara@virtusa.com) */ ! package org.apache.axis.wsdl.wsdl2ws.cpp.literal; import java.io.File; import java.io.IOException; *************** *** 35,42 **** import org.apache.axis.wsdl.wsdl2ws.info.MethodInfo; import org.apache.axis.wsdl.wsdl2ws.info.ParameterInfo; import org.apache.axis.wsdl.wsdl2ws.info.Type; - import org.apache.axis.wsdl.wsdl2ws.info.WebServiceContext; import org.apache.axis.wsdl.wsdl2ws.info.FaultInfo; import org.apache.axis.wsdl.wsdl2ws.CUtils; public class WrapWriter extends CPPClassWriter{ --- 35,42 ---- import org.apache.axis.wsdl.wsdl2ws.info.MethodInfo; import org.apache.axis.wsdl.wsdl2ws.info.ParameterInfo; import org.apache.axis.wsdl.wsdl2ws.info.Type; import org.apache.axis.wsdl.wsdl2ws.info.FaultInfo; + import org.apache.axis.wsdl.wsdl2ws.info.WebServiceContext; import org.apache.axis.wsdl.wsdl2ws.CUtils; public class WrapWriter extends CPPClassWriter{ *************** *** 99,110 **** try{ writer.write("/*implementation of WrapperClassHandler interface*/\n"); ! writer.write("void "+classname+"::onFault(void *pMsg)\n{" + ! "\n\tpWs->onFault();\n}\n\n"); ! writer.write("int "+classname+"::init()\n{\n" + ! "\tpWs->init();\n\treturn AXIS_SUCCESS;\n}\n\n"); ! writer.write("int "+classname+"::fini()\n{\n" + ! "\tpWs->fini();\n\treturn AXIS_SUCCESS;\n}\n\n"); writeInvoke(); writer.write("\n/*Methods corresponding to the web service methods*/\n"); MethodInfo minfo; --- 99,107 ---- try{ writer.write("/*implementation of WrapperClassHandler interface*/\n"); ! writer.write("void "+classname+"::onFault(void *pMsg)\n{" + "\n\tpWs->onFault();\n}\n\n"); ! writer.write("int "+classname+"::init()\n{\n" + "\tpWs->init();\n\treturn AXIS_SUCCESS;\n}\n\n"); ! writer.write("int "+classname+"::fini()\n{\n" + "\tpWs->fini();\n\treturn AXIS_SUCCESS;\n}\n\n"); writeInvoke(); writer.write("\n/*Methods corresponding to the web service methods*/\n"); MethodInfo minfo; *************** *** 190,207 **** Collection params = minfo.getInputParameterTypes(); String methodName = minfo.getMethodname(); Type retType = null; ! String outparamType = null; ! String outparamTypeName = null; boolean returntypeissimple = false; boolean returntypeisarray = false; if (returntype != null){ - outparamTypeName = WrapperUtils.getClassNameFromParamInfoConsideringArrays(returntype, wscontext); retType = wscontext.getTypemap().getType(returntype.getSchemaName()); if (retType != null){ ! returntypeisarray = retType.isArray(); ! if (CUtils.isSimpleType(retType.getLanguageSpecificName())){ returntypeissimple = true; } } } writer.write("\n/*\n"); --- 187,211 ---- Collection params = minfo.getInputParameterTypes(); String methodName = minfo.getMethodname(); Type retType = null; ! String outparamType = null; boolean returntypeissimple = false; boolean returntypeisarray = false; if (returntype != null){ retType = wscontext.getTypemap().getType(returntype.getSchemaName()); if (retType != null){ ! if (retType.isSimpleType()){ //schema defined simpleType possibly with restrictions returntypeissimple = true; + outparamType = CUtils.getclass4qname(retType.getBaseType()); } + else{ + outparamType = retType.getLanguageSpecificName(); + returntypeisarray = retType.isArray(); + returntypeissimple = CUtils.isSimpleType(outparamType); + } + } + else{ + outparamType = returntype.getLangName(); + returntypeissimple = CUtils.isSimpleType(outparamType); } } writer.write("\n/*\n"); *************** *** 218,259 **** writer.write("\tmc->getSoapDeSerializer(&pIWSDZ);\n"); writer.write("\tif (!pIWSDZ) return AXIS_FAIL;\n"); writer.write("\t/* check whether we have got correct message */\n"); ! writer.write("\tif (AXIS_SUCCESS != pIWSDZ->checkMessageBody(\""+minfo.getMethodname()+"\", \""+wscontext.getWrapInfo().getTargetNameSpaceOfWSDL()+"\")) return AXIS_FAIL;\n"); ! writer.write("\tpIWSSZ->createSoapMethod(\""+minfo.getMethodname()+"Response\", \""+wscontext.getWrapInfo().getTargetNameSpaceOfWSDL()+"\");\n"); //create and populate variables for each parameter String paraTypeName; String parameterName; String returnParamName; - String paramType; ArrayList paramsB = new ArrayList(params); for (int i = 0; i < paramsB.size(); i++) { ! paraTypeName = ((ParameterInfo)paramsB.get(i)).getLangName(); ! paramType = WrapperUtils.getClassNameFromParamInfoConsideringArrays((ParameterInfo)paramsB.get(i), wscontext); ! parameterName = ((ParameterInfo)paramsB.get(i)).getParamName(); ! if((CUtils.isSimpleType(((ParameterInfo)paramsB.get(i)).getLangName()))){ //for simple types ! writer.write("\t"+paraTypeName+" v"+i+" = pIWSDZ->"+CUtils.getParameterGetValueMethodName(paraTypeName, false)+"(\""+parameterName+"\",0);\n"); ! }else if((type = this.wscontext.getTypemap().getType(((ParameterInfo)paramsB.get(i)).getSchemaName())) != null && type.isArray()){ ! QName qname = WrapperUtils.getArrayType(type).getName(); String containedType = null; if (CUtils.isSimpleType(qname)){ containedType = CUtils.getclass4qname(qname); ! writer.write("\t"+paramType+" v"+i+" = ("+CUtils.getBasicArrayNameforType(containedType)+"&)pIWSDZ->getBasicArray("+CUtils.getXSDTypeForBasicType(containedType)+ ", \""+parameterName+"\",0);\n"); } else{ containedType = qname.getLocalPart(); ! writer.write("\t"+paramType+" v"+i+" = ("+paramType+"&)pIWSDZ->getCmplxArray((void*)Axis_DeSerialize_"+containedType+ "\n\t\t, (void*)Axis_Create_"+containedType+", (void*)Axis_Delete_"+containedType+ ! "\n\t\t, (void*)Axis_GetSize_"+containedType+", \""+parameterName+"\", Axis_URI_"+containedType+");\n"); } }else{ //for complex types writer.write("\t"+paraTypeName+" *v"+i+" = ("+paraTypeName+"*)pIWSDZ->getCmplxObject((void*)Axis_DeSerialize_"+paraTypeName+ "\n\t\t, (void*)Axis_Create_"+paraTypeName+", (void*)Axis_Delete_"+paraTypeName+ ! "\n\t\t, \""+parameterName+"\", Axis_URI_"+paraTypeName+");\n"); } } ! writer.write("\tif (AXIS_SUCCESS != (nStatus = pIWSDZ->getStatus())) return nStatus;\n"); // Multiples parameters so fill the methods prototype if ( isAllTreatedAsOutParams ) { ArrayList paramsC = (ArrayList)minfo.getOutputParameterTypes(); --- 222,282 ---- writer.write("\tmc->getSoapDeSerializer(&pIWSDZ);\n"); writer.write("\tif (!pIWSDZ) return AXIS_FAIL;\n"); writer.write("\t/* check whether we have got correct message */\n"); ! writer.write("\tif (AXIS_SUCCESS != pIWSDZ->checkMessageBody(\""+minfo.getInputMessage().getLocalPart()+"\", \""+minfo.getInputMessage().getNamespaceURI()+"\")) return AXIS_FAIL;\n"); ! if(minfo.getOutputMessage()!=null) ! writer.write("\tpIWSSZ->createSoapMethod(\""+minfo.getOutputMessage().getLocalPart()+"\", \""+minfo.getOutputMessage().getNamespaceURI()+"\");\n"); //create and populate variables for each parameter String paraTypeName; String parameterName; + String elementName; String returnParamName; ArrayList paramsB = new ArrayList(params); for (int i = 0; i < paramsB.size(); i++) { ! ParameterInfo param = (ParameterInfo)paramsB.get(i); ! type = this.wscontext.getTypemap().getType(param.getSchemaName()); ! if (type != null && type.isSimpleType()){ //schema defined simpleType possibly with restrictions ! paraTypeName = CUtils.getclass4qname(type.getBaseType());; ! } ! else{ ! paraTypeName = param.getLangName(); ! } ! parameterName = param.getParamName(); ! elementName = param.getElementName().getLocalPart(); ! if (type != null && type.isSimpleType()){ //schema defined simpleType possibly with restrictions ! writer.write("\t"+paraTypeName+" v"+i+" = pIWSDZ->"+CUtils.getParameterGetValueMethodName(paraTypeName, false)+"(\""+elementName+"\",0);\n"); ! } ! else if((CUtils.isSimpleType(param.getLangName()))){ //for simple types ! writer.write("\t"+paraTypeName+" v"+i+" = pIWSDZ->"+CUtils.getParameterGetValueMethodName(paraTypeName, false)+"(\""+elementName+"\",0);\n"); ! }else if((type != null) && type.isArray()){ ! Type arrayType = WrapperUtils.getArrayType(type); ! QName qname = arrayType.getName(); String containedType = null; if (CUtils.isSimpleType(qname)){ containedType = CUtils.getclass4qname(qname); ! writer.write("\t"+paraTypeName+" v"+i+" = ("+CUtils.getBasicArrayNameforType(containedType)+"&)pIWSDZ->getBasicArray("+CUtils.getXSDTypeForBasicType(containedType)+ ", \""+elementName+"\",0);\n"); ! } ! else if (arrayType.isSimpleType()){//SimpleType in the schema ! containedType = CUtils.getclass4qname(arrayType.getBaseType()); ! writer.write("\t"+paraTypeName+" v"+i+" = ("+CUtils.getBasicArrayNameforType(containedType)+"&)pIWSDZ->getBasicArray("+CUtils.getXSDTypeForBasicType(containedType)+ ", \""+elementName+"\",0);\n"); } else{ containedType = qname.getLocalPart(); ! writer.write("\t"+paraTypeName+" v"+i+" = ("+paraTypeName+"&)pIWSDZ->getCmplxArray((void*)Axis_DeSerialize_"+containedType+ "\n\t\t, (void*)Axis_Create_"+containedType+", (void*)Axis_Delete_"+containedType+ ! "\n\t\t, (void*)Axis_GetSize_"+containedType+", \""+elementName+"\", Axis_URI_"+containedType+");\n"); } + }else if (param.isAnyType()){ + //for anyType + writer.write("\t"+paraTypeName+" *v"+i+" = ("+paraTypeName+"*)pIWSDZ->getAnyObject();\n"); }else{ //for complex types writer.write("\t"+paraTypeName+" *v"+i+" = ("+paraTypeName+"*)pIWSDZ->getCmplxObject((void*)Axis_DeSerialize_"+paraTypeName+ "\n\t\t, (void*)Axis_Create_"+paraTypeName+", (void*)Axis_Delete_"+paraTypeName+ ! "\n\t\t, \""+elementName+"\", Axis_URI_"+paraTypeName+");\n"); } } ! writer.write("\tif (AXIS_SUCCESS != (nStatus = pIWSDZ->getStatus())) return nStatus;\n"); // Multiples parameters so fill the methods prototype if ( isAllTreatedAsOutParams ) { ArrayList paramsC = (ArrayList)minfo.getOutputParameterTypes(); *************** *** 262,271 **** writer.write("\t"+WrapperUtils.getClassNameFromParamInfoConsideringArrays((ParameterInfo)paramsC.get(i),wscontext)+" out"+i+";\n"); } } ! writer.write("\ttry\n\t{\n"); ! if(returntype != null){ ! /* Invoke the service when return type not void */ ! writer.write("\t\t"+outparamTypeName+" ret = "+"pWs->"+methodName+"("); if (0"+methodName+"("); if (0addOutputParam(\""+methodName+"Return\", (void*)&ret, "+CUtils.getXSDTypeForBasicType(outparamTypeName)+");\n"); }else if(returntypeisarray){ ! QName qname = WrapperUtils.getArrayType(retType).getName(); String containedType = null; if (CUtils.isSimpleType(qname)){ containedType = CUtils.getclass4qname(qname); ! writer.write("\t\treturn pIWSSZ->addOutputBasicArrayParam((Axis_Array*)(&ret),"+CUtils.getXSDTypeForBasicType(containedType)+", \""+methodName+"Return\");\n"); } else{ containedType = qname.getLocalPart(); ! writer.write("\t\treturn pIWSSZ->addOutputCmplxArrayParam((Axis_Array*)(&ret),"+ ! "(void*) Axis_Serialize_"+containedType+", (void*) Axis_Delete_"+containedType+", (void*) Axis_GetSize_"+containedType+", \""+methodName+"Return\", Axis_URI_"+containedType+");\n"); } } else{ //complex type ! outparamTypeName = returntype.getLangName();//need to have complex type name without * ! writer.write("\t\treturn pIWSSZ->addOutputCmplxParam(ret, (void*)Axis_Serialize_"+outparamTypeName+", (void*)Axis_Delete_"+outparamTypeName+", \""+methodName+"Return\", Axis_URI_"+outparamTypeName+");\n"); } }else if (isAllTreatedAsOutParams){ ! writer.write("\t\tpWs->" + methodName + "("); if (0addOutputParam(\""+returnParamName+"\", (void*)&ret, "+CUtils.getXSDTypeForBasicType(outparamType)+");\n"); }else if(returntypeisarray){ ! Type arrayType = WrapperUtils.getArrayType(retType); ! QName qname = arrayType.getName(); String containedType = null; if (CUtils.isSimpleType(qname)){ containedType = CUtils.getclass4qname(qname); ! writer.write("\treturn pIWSSZ->addOutputBasicArrayParam((Axis_Array*)(&ret),"+CUtils.getXSDTypeForBasicType(containedType)+", \""+returnParamName+"\");\n"); ! } ! else if (arrayType.isSimpleType()){//SimpleType in the schema ! containedType = CUtils.getclass4qname(arrayType.getBaseType()); ! writer.write("\treturn pIWSSZ->addOutputBasicArrayParam((Axis_Array*)(&ret),"+CUtils.getXSDTypeForBasicType(containedType)+", \""+returnParamName+"\");\n"); } else{ containedType = qname.getLocalPart(); ! writer.write("\treturn pIWSSZ->addOutputCmplxArrayParam((Axis_Array*)(&ret),"+ ! "(void*) Axis_Serialize_"+containedType+", (void*) Axis_Delete_"+containedType+", (void*) Axis_GetSize_"+containedType+", \""+returnParamName+"\", Axis_URI_"+containedType+");\n"); } + }else if(returntype.isAnyType()){ + writer.write("\treturn pIWSSZ->addOutputAnyObject(ret);\n"); } else{ //complex type ! writer.write("\treturn pIWSSZ->addOutputCmplxParam(ret, (void*)Axis_Serialize_"+outparamType+", (void*)Axis_Delete_"+outparamType+", \""+returnParamName+"\", Axis_URI_"+outparamType+");\n"); } }else if (isAllTreatedAsOutParams){ ! writer.write("\tpWs->" + methodName + "("); if (0addOutputParam(\""+returnParamName+"\", (void*)&out"+i+", "+CUtils.getXSDTypeForBasicType(outparamType)+");\n"); }else if(returntypeisarray){ ! QName qname = WrapperUtils.getArrayType(retType).getName(); String containedType = null; if (CUtils.isSimpleType(qname)){ containedType = CUtils.getclass4qname(qname); ! writer.write("\t\tpIWSSZ->addOutputBasicArrayParam((Axis_Array*)(&out"+i+"),"+CUtils.getXSDTypeForBasicType(containedType)+", \""+returnParamName+"\");\n"); } else{ containedType = qname.getLocalPart(); ! writer.write("\t\tpIWSSZ->addOutputCmplxArrayParam((Axis_Array*)(&out"+i+"),"+ "(void*) Axis_Serialize_"+containedType+", (void*) Axis_Delete_"+containedType+", (void*) Axis_GetSize_"+containedType+", \""+returnParamName+"\", Axis_URI_"+containedType+");\n"); } } else{ //complex type ! writer.write("\t\tpIWSSZ->addOutputCmplxParam(out"+i+", (void*)Axis_Serialize_"+outparamType+", (void*)Axis_Delete_"+outparamType+", \""+returnParamName+"\", Axis_URI_"+outparamType+");\n"); } } writer.write("\treturn AXIS_SUCCESS;\n"); }else{//method does not return anything /* Invoke the service when return type is void */ ! writer.write("\t\tpWs->" + methodName + "("); if (0addOutputParam(\""+returnParamName+"\", (void*)&out"+i+", "+CUtils.getXSDTypeForBasicType(outparamType)+");\n"); }else if(returntypeisarray){ ! Type arrayType = WrapperUtils.getArrayType(retType); ! QName qname = arrayType.getName(); String containedType = null; if (CUtils.isSimpleType(qname)){ containedType = CUtils.getclass4qname(qname); ! writer.write("\tpIWSSZ->addOutputBasicArrayParam((Axis_Array*)(&out"+i+"),"+CUtils.getXSDTypeForBasicType(containedType)+", \""+returnParamName+"\");\n"); ! } ! else if (arrayType.isSimpleType()){//SimpleType in the schema ! containedType = CUtils.getclass4qname(arrayType.getBaseType()); ! writer.write("\tpIWSSZ->addOutputBasicArrayParam((Axis_Array*)(&out"+i+"),"+CUtils.getXSDTypeForBasicType(containedType)+", \""+returnParamName+"\");\n"); } else{ containedType = qname.getLocalPart(); ! writer.write("\tpIWSSZ->addOutputCmplxArrayParam((Axis_Array*)(&out"+i+"),"+ "(void*) Axis_Serialize_"+containedType+", (void*) Axis_Delete_"+containedType+", (void*) Axis_GetSize_"+containedType+", \""+returnParamName+"\", Axis_URI_"+containedType+");\n"); } } + else if (param.isAnyType()){ + //anyType + writer.write("\tpIWSSZ->addOutputAnyObject(out"+i+");\n"); + } else{ //complex type ! writer.write("\tpIWSSZ->addOutputCmplxParam(out"+i+", (void*)Axis_Serialize_"+outparamType+", (void*)Axis_Delete_"+outparamType+", \""+returnParamName+"\", Axis_URI_"+outparamType+");\n"); } } writer.write("\treturn AXIS_SUCCESS;\n"); }else{//method does not return anything /* Invoke the service when return type is void */ ! writer.write("\tpWs->" + methodName + "("); if (0createSoapFault(\""+langName+"\", \""+wscontext.getWrapInfo().getTargetNameSpaceOfWSDL()+"\");\n"); - writer.write("\t\t"+faulttype+" pObjFault = new "+langName+"();\n");//damitha - writer.write("\t\t/*User may write code here to fill the struct*/\n"); - writer.write("\t\tif (pObjFault)\n"); - writer.write("\t\t\tpIWSSZ->addFaultDetail(pObjFault, (void*) Axis_Serialize_"+langName+",\n");//damitha - writer.write("\t\t\t(void*) Axis_Delete_"+langName+",\""+faultInfoName+"\", Axis_URI_"+langName+");\n");//damitha - writer.write("\t\tthrow;\n");//damitha - writer.write("\t}\n"); - writer.write("\n"); - } - catch (IOException e) { - throw new WrapperFault(e); - } - } - protected void writeGlobalCodes() throws WrapperFault { Iterator types = wscontext.getTypemap().getTypes().iterator(); HashSet typeSet = new HashSet(); --- 397,453 ---- } writer.write(");\n"); writer.write("\treturn AXIS_SUCCESS;\n"); ! } ! writer.write("\t}\n");//nithya ! Iterator paramsFault = minfo.getFaultType().iterator(); ! String faultInfoName =null; ! String faultType =null; ! String langName =null; ! String paramName =null; ! while (paramsFault.hasNext()){ ! FaultInfo info = (FaultInfo)paramsFault.next(); ! faultInfoName =info.getFaultInfo(); ! ArrayList paramInfo =info.getParams(); ! for (int i= 0; i < paramInfo.size(); i++) { ! ParameterInfo par =(ParameterInfo)paramInfo.get(i); ! paramName = par.getParamName(); ! langName =par.getLangName(); ! faultType = WrapperUtils.getClassNameFromParamInfoConsideringArrays(par,wscontext); ! writeExceptions(faultType,faultInfoName,paramName,langName); ! } ! } writer.write("\tcatch(...){\n"); //nithya writer.write("\t}\n"); //nithya ! //write end of method ! writer.write("}\n"); ! } ! /* (non-Javadoc) ! * @see org.apache.axis.wsdl.wsdl2ws.cpp.CPPClassWriter#writeGlobalCodes() ! */ ! ! private void writeExceptions(String faulttype,String faultInfoName,String paramName,String langName) throws WrapperFault{ ! try{ ! writer.write("\tcatch("+faulttype+" pObjFault)\n"); ! writer.write("\t{\n"); ! writer.write("\t\tif (pObjFault)\n"); ! writer.write("\t\t{\n"); ! writer.write("\t\tpIWSSZ->createSoapFault(\""+faultInfoName+"\", \""+wscontext.getWrapInfo().getTargetNameSpaceOfWSDL()+"\",\"AxisC++ Faultcode\", \"Custom Out of bound exception\");\n"); ! // writer.write("\t\t"+faulttype+" pObjFault = new "+langName+"();\n");//damitha ! writer.write("\t\t\tpIWSSZ->addFaultDetail(pObjFault, (void*) Axis_Serialize_"+langName+",\n"); ! writer.write("\t\t\t(void*) Axis_Delete_"+langName+",\""+faultInfoName+"\", Axis_URI_"+langName+");\n"); ! writer.write("\t\tthrow AxisServiceException();\n"); ! writer.write("\t\t}\n"); ! writer.write("\t}\n"); ! writer.write("\n"); ! } ! catch (IOException e) { ! throw new WrapperFault(e); ! } ! } ! /* (non-Javadoc) * @see org.apache.axis.wsdl.wsdl2ws.cpp.CPPClassWriter#writeGlobalCodes() */ protected void writeGlobalCodes() throws WrapperFault { Iterator types = wscontext.getTypemap().getTypes().iterator(); HashSet typeSet = new HashSet(); *************** *** 408,413 **** --- 456,462 ---- try { while(types.hasNext()){ type = (Type)types.next(); + if (type.isSimpleType()) continue; if (type.isArray()) continue; typeName = type.getLanguageSpecificName(); if (typeName.startsWith(">")) continue; ------=_20040709022134_32154 Content-Type: text/x-diff; name="WrapWriter.java.diff" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="WrapWriter.java.diff" *** org/apache/axis/wsdl/wsdl2ws/cpp/WrapWriter.java Tue Jul 6 13:16:03 2004 --- /home/nithya/projects/cvshead/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/WrapWriter.java Fri Jul 9 08:43:35 2004 *************** *** 383,397 **** private void writeExceptions(String faulttype,String faultInfoName,String paramName,String langName) throws WrapperFault{ try{ ! writer.write("\tcatch(Axis"+faultInfoName+"Exception& e)\n"); //nithya ! writer.write("\t{\n"); ! writer.write("\t\tpIWSSZ->createSoapFault(\""+langName+"\", \""+wscontext.getWrapInfo().getTargetNameSpaceOfWSDL()+"\");\n"); ! writer.write("\t\t"+faulttype+" pObjFault = new "+langName+"();\n");//damitha ! writer.write("\t\t/*User may write code here to fill the struct*/\n"); ! writer.write("\t\tif (pObjFault)\n"); ! writer.write("\t\t\tpIWSSZ->addFaultDetail(pObjFault, (void*) Axis_Serialize_"+langName+",\n");//damitha ! writer.write("\t\t\t(void*) Axis_Delete_"+langName+",\""+faultInfoName+"\", Axis_URI_"+langName+");\n");//damitha ! writer.write("\t\tthrow;\n");//damitha writer.write("\t}\n"); writer.write("\n"); } --- 383,398 ---- private void writeExceptions(String faulttype,String faultInfoName,String paramName,String langName) throws WrapperFault{ try{ ! writer.write("\tcatch("+faulttype+" pObjFault)\n"); ! writer.write("\t{\n"); ! writer.write("\t\tif (pObjFault)\n"); ! writer.write("\t\t{\n"); ! writer.write("\t\tpIWSSZ->createSoapFault(\""+langName+"\", \""+wscontext.getWrapInfo().getTargetNameSpaceOfWSDL()+"\",\"AxisC++ Faultcode\", \"Custom Out of bound exception\");\n"); ! // writer.write("\t\t"+faulttype+" pObjFault = new "+langName+"();\n"); ! writer.write("\t\t\tpIWSSZ->addFaultDetail(pObjFault, (void*) Axis_Serialize_"+langName+",\n"); ! writer.write("\t\t\t(void*) Axis_Delete_"+langName+",\""+langName+"\", Axis_URI_"+langName+");\n"); ! writer.write("\t\tthrow AxisServiceException();\n"); ! writer.write("\t\t}\n"); writer.write("\t}\n"); writer.write("\n"); } ------=_20040709022134_32154--