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 na...@apache.org on 2006/04/07 04:23:50 UTC

svn commit: r392161 - in /webservices/axis/trunk/c: include/axis/ src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ tests/auto_build/testcases/client/c/ tests/auto_build/testcases/client/cpp/

Author: nadiramra
Date: Thu Apr  6 19:23:48 2006
New Revision: 392161

URL: http://svn.apache.org/viewcvs?rev=392161&view=rev
Log:
C support fixes/enhancements.

Modified:
    webservices/axis/trunk/c/include/axis/AxisUserAPI.h
    webservices/axis/trunk/c/include/axis/IWrapperSoapSerializer.hpp
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java
    webservices/axis/trunk/c/tests/auto_build/testcases/client/c/AxisBenchClient.c
    webservices/axis/trunk/c/tests/auto_build/testcases/client/c/SimpleTypeArrayClient.c
    webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/AxisBenchClient.cpp

Modified: webservices/axis/trunk/c/include/axis/AxisUserAPI.h
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/include/axis/AxisUserAPI.h?rev=392161&r1=392160&r2=392161&view=diff
==============================================================================
--- webservices/axis/trunk/c/include/axis/AxisUserAPI.h (original)
+++ webservices/axis/trunk/c/include/axis/AxisUserAPI.h Thu Apr  6 19:23:48 2006
@@ -324,14 +324,10 @@
  */
 typedef struct
 {
-    /**
-     * Binary data
-     */
+    /** Binary data */
     xsdc__unsignedByte * __ptr;
     
-    /**
-     * Length, in bytes, of binary data
-     */
+    /** Length, in bytes, of binary data */
     xsdc__int __size;
 } xsdc__base64Binary;
 
@@ -341,16 +337,13 @@
  */
 typedef struct
 {
-    /**
-     * Binary data
-     */
+    /** Binary data */
     xsdc__unsignedByte * __ptr;
     
-    /**
-     * Length, in bytes, of binary data
-     */
+    /** Length, in bytes, of binary data */
     xsdc__int __size;
 } xsdc__hexBinary;
+
 /**
  * @typedef xsdc__anyURI
  * Axis C++ defined type for xml basic type anyURI
@@ -390,7 +383,7 @@
     } type##_Array;
 
 typedef struct {
-    void* m_Array;
+    void** m_Array;
     int m_Size;
     AXISC_XSDTYPE m_Type; \
 } Axisc_Array;

Modified: webservices/axis/trunk/c/include/axis/IWrapperSoapSerializer.hpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/include/axis/IWrapperSoapSerializer.hpp?rev=392161&r1=392160&r2=392161&view=diff
==============================================================================
--- webservices/axis/trunk/c/include/axis/IWrapperSoapSerializer.hpp (original)
+++ webservices/axis/trunk/c/include/axis/IWrapperSoapSerializer.hpp Thu Apr  6 19:23:48 2006
@@ -35,17 +35,6 @@
  *
  */
 
-/*
- * Revision 1.1  2005/01/02 Roshan
- * Added addAttachmentBody
- * Added addAttachmentHeader
- */
-
-/*
- * Revision 1.2  2005/01/07 Roshan
- * Added addAttachment
- */
-
 AXIS_CPP_NAMESPACE_START
 
 class IWrapperSoapSerializer
@@ -54,18 +43,19 @@
     virtual ~IWrapperSoapSerializer(){};
 
     virtual int AXISCALL createSoapMethod(const AxisChar* sLocalName, 
-        const AxisChar* sURI)=0;
+                                          const AxisChar* sURI)=0;
 
     virtual int AXISCALL createSoapFault(const AxisChar* sLocalName, 
-        const AxisChar* sURI, const AxisChar* sFaultCode,
-	const AxisChar* sFaultString)=0;
+                                         const AxisChar* sURI, 
+                                         const AxisChar* sFaultCode,
+                                         const AxisChar* sFaultString)=0;
     /**
      * Returns the corrosponding namespace prefix.
      * @param pNamespace The namespace.
      * @return The corrosponding prefix.
      */
-    virtual const AxisChar* AXISCALL getNamespacePrefix
-        (const AxisChar* pNamespace)=0;
+    virtual const AxisChar* AXISCALL getNamespacePrefix(const AxisChar* pNamespace)=0;
+    
     /**
      * Returns the corrosponding namespace prefix. This method is 
      * called when the caller also wants to know whether this is a new 
@@ -76,51 +66,74 @@
      * @return The corrosponding prefix.
      */
     virtual const AxisChar* AXISCALL getNamespacePrefix(const AxisChar* pNamespace,
-        bool& blnIsNewPrefix)=0;
-
+                                                        bool& blnIsNewPrefix)=0;
+    
     virtual void AXISCALL removeNamespacePrefix(const AxisChar* pNamespace)=0;
 
     /* for basic types */
-    virtual int AXISCALL addOutputParam(const AxisChar* pchName, void* pValue, 
-        XSDTYPE type)=0;
+    virtual int AXISCALL addOutputParam(const AxisChar* pchName, 
+                                        void* pValue, 
+                                        XSDTYPE type)=0;
 
     /* for arrays */
     virtual int AXISCALL addOutputCmplxArrayParam(const Axis_Array* pArray, 
-        void* pSZFunct, void* pDelFunct, void* pSizeFunct, 
-        const AxisChar* pName, const AxisChar* pNamespace)=0;
+                                                  void* pSZFunct, 
+                                                  void* pDelFunct, 
+                                                  void* pSizeFunct, 
+                                                  const AxisChar* pName, 
+                                                  const AxisChar* pNamespace)=0;
 
     virtual int AXISCALL addOutputBasicArrayParam(const Axis_Array* pArray, 
-        XSDTYPE nType, const AxisChar* pName)=0;
+                                                  XSDTYPE nType, 
+                                                  const AxisChar* pName)=0;
 
     /* for complex types */
-    virtual int AXISCALL addOutputCmplxParam(void* pObject, void* pSZFunct, 
-        void* pDelFunct, const AxisChar* pName, const AxisChar* pNamespace) = 0;
-
-    virtual int AXISCALL addFaultDetail(void* pObject, void* pSZFunct,
-        void* pDelFunct, const AxisChar* pName, const AxisChar* pNamespace) = 0;
+    virtual int AXISCALL addOutputCmplxParam(void* pObject, 
+                                             void* pSZFunct,
+                                             void* pDelFunct, 
+                                             const AxisChar* pName, 
+                                             const AxisChar* pNamespace) = 0;
+
+    virtual int AXISCALL addFaultDetail(void* pObject, 
+                                        void* pSZFunct, 
+                                        void* pDelFunct, 
+                                        const AxisChar* pName, 
+                                        const AxisChar* pNamespace) = 0;
 
     /* Methods used to serialize arrays */
-    virtual int AXISCALL serializeCmplxArray(const Axis_Array* pArray, 
-        void* pSZFunct, void* pDelFunct, void* pSizeFunct, 
-        const AxisChar* pName, const AxisChar* pNamespace)=0;
-
-    virtual int AXISCALL serializeBasicArray
-        (const Axis_Array* pArray, XSDTYPE nType, const AxisChar* pName)=0;
-
-	virtual int AXISCALL serializeBasicArray
-		(const Axis_Array* pArray, const AxisChar* pNamespace, XSDTYPE nType, const AxisChar* pName)=0;
+    virtual int AXISCALL serializeCmplxArray(const Axis_Array* pArray,
+                                             void* pSZFunct, 
+                                             void* pDelFunct, 
+                                             void* pSizeFunct,
+                                             const AxisChar* pName, 
+                                             const AxisChar* pNamespace)=0;
+
+    virtual int AXISCALL serializeBasicArray(const Axis_Array* pArray, 
+                                             XSDTYPE nType, 
+                                             const AxisChar* pName)=0;
+
+    virtual int AXISCALL serializeBasicArray(const Axis_Array* pArray, 
+                                             const AxisChar* pNamespace, 
+                                             XSDTYPE nType, 
+                                             const AxisChar* pName)=0;
 
     /* Basic Type Serializing methods */
-    virtual int AXISCALL serializeAsElement(const AxisChar* sName, 
-        void* pValue, XSDTYPE type)=0;
+    virtual int AXISCALL serializeAsElement(const AxisChar* sName,
+                                            void* pValue, 
+                                            XSDTYPE type)=0;
 
-    virtual int AXISCALL serializeAsElement(const AxisChar* sName, const AxisChar* pNamespace, 
-        void* pValue, XSDTYPE type)=0;
-
-    virtual int AXISCALL serializeAsAttribute(const AxisChar* sName, 
-        const AxisChar* pNamespace, void* pValue, XSDTYPE type)=0;
+    virtual int AXISCALL serializeAsElement(const AxisChar* sName, 
+                                            const AxisChar* pNamespace,
+                                            void* pValue, 
+                                            XSDTYPE type)=0;
+
+    virtual int AXISCALL serializeAsAttribute(const AxisChar* sName,
+                                              const AxisChar* pNamespace, 
+                                              void* pValue, 
+                                              XSDTYPE type)=0;
 
     virtual void AXISCALL serializeVargs(int count, const char** args)=0;
+    
     virtual void AXISCALL serialize(const char* pFirst, ...)=0;
 
     /* 
@@ -128,26 +141,11 @@
      * functions of complex types for RPC style web services 
      */
     virtual void AXISCALL serializeStartElementOfType(const AxisChar* pName, 
-        const AxisChar* pNamespace, const AxisChar* pPrefix)=0;
+                                                      const AxisChar* pNamespace, 
+                                                      const AxisChar* pPrefix)=0;
 
     virtual void AXISCALL serializeEndElementOfType(const AxisChar* pName)=0;
 
-    /* Externalization of serializer API */
-
-    /* Following functions need not be exposed. They are internal to the
-	 * Axis Engine - Commented by Susantha 02/07/2004
-
-    virtual int setOutputStream(SOAPTransport* pStream)=0;
-
-    virtual void markEndOfStream()=0;    
-
-    virtual int init()=0;    
-
-    virtual void setStyle(AXIS_BINDING_STYLE nStyle)=0;
-
-    virtual AXIS_BINDING_STYLE getStyle()=0;
-    */
-
     virtual PROVIDERTYPE getCurrentProviderType()=0;
 
     virtual void setCurrentProviderType(PROVIDERTYPE nType)=0;    
@@ -156,30 +154,35 @@
 
     virtual int serializeAnyObject(AnyType* pAnyObject)=0;
 
-    virtual int serializeAsChardata(void* pValue, XSDTYPE type)=0;
+    virtual int serializeAsChardata(void* pValue, 
+                                    XSDTYPE type)=0;
+
+    virtual void addAttachment(const AxisChar* achId, 
+                               ISoapAttachment* objAttach)=0;
 
-    virtual void addAttachment(const AxisChar* achId, ISoapAttachment* objAttach)=0;
+    virtual void addAttachments(ISoapAttachment** pAttach, 
+                                int iAttchArraySize)=0;
 
-	virtual void addAttachments(ISoapAttachment** pAttach, int iAttchArraySize)=0;
+    virtual void addAttachmentBody(const AxisChar* achId, 
+                                   xsd__base64Binary* pAttchBody)=0;
 
-	virtual void addAttachmentBody(const AxisChar* achId, xsd__base64Binary* pAttchBody)=0;
+    virtual void addAttachmentHeader(const AxisChar* achId, 
+                                     const AxisChar* achHeaderName, 
+                                     const AxisChar* achHeaderValue)=0;
 
-	virtual void addAttachmentHeader(const AxisChar* achId, const AxisChar* achHeaderName, const AxisChar* achHeaderValue)=0;
-
-	/**
-    * creates and returns a SoapAttachment object to the caller of this methods.
-	*  The user can use this object and fill in the attachment details. This
-	*  method doesn't add the created SoapAttachment object to the Serializer.
-	*  The user will have to add this object explictly by calling the addAttachment 
-	*  method of the IWrapperSoapSerializer interface
-    *     
-    */
-	virtual ISoapAttachment* createSoapAttachment()=0;
-
-  /**
-    * This methos will clear up all the current out params in preperation of a 
-    * new method call
-    */
+    /**
+     * creates and returns a SoapAttachment object to the caller of this methods.
+     *  The user can use this object and fill in the attachment details. This
+     *  method doesn't add the created SoapAttachment object to the Serializer.
+     *  The user will have to add this object explictly by calling the addAttachment 
+     *  method of the IWrapperSoapSerializer interface   
+     */
+    virtual ISoapAttachment* createSoapAttachment()=0;
+
+    /**
+     * This method will clear up all the current out params in preparation of a 
+     * new method call
+     */
     virtual void reset() = 0;
 };
 

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamWriter.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamWriter.java?rev=392161&r1=392160&r2=392161&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamWriter.java Thu Apr  6 19:23:48 2006
@@ -154,7 +154,7 @@
              * </xsd:complexType>
              */
             writer.write("\tstruct " + attribs[0].getTypeName()
-                        + "Tag * m_Array;\n\tint m_Size;\n\tAXISC_XSD_TYPE m_Type;\n} "
+                        + "Tag ** m_Array;\n\tint m_Size;\n\tAXISC_XSDTYPE m_Type;\n} "
                         + classname + ";\n\n");
         }
         catch (IOException e)

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java?rev=392161&r1=392160&r2=392161&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java Thu Apr  6 19:23:48 2006
@@ -294,7 +294,7 @@
                     else
                         namespace = "NULL";
                     
-                    writer.write("\taxiscSerializeCmplxArray(pSZ, param->"
+                    writer.write("\taxiscSerializeCmplxArray(pSZ, (const Axisc_Array *)param->"
                                     + attribs[i].getParamNameAsMember() + ",\n");
                     writer.write("\t\t\t\t\t\t (void*) Axis_Serialize_" + arrayType + ",\n");
                     writer.write("\t\t\t\t\t\t (void*) Axis_Delete_" + arrayType + ",\n");

Modified: webservices/axis/trunk/c/tests/auto_build/testcases/client/c/AxisBenchClient.c
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/tests/auto_build/testcases/client/c/AxisBenchClient.c?rev=392161&r1=392160&r2=392161&view=diff
==============================================================================
--- webservices/axis/trunk/c/tests/auto_build/testcases/client/c/AxisBenchClient.c (original)
+++ webservices/axis/trunk/c/tests/auto_build/testcases/client/c/AxisBenchClient.c Thu Apr  6 19:23:48 2006
@@ -17,107 +17,191 @@
 #include <stdio.h>
 #include <time.h>
 
-#include <axis/Axis.h>
 #include "CommonClientTestCode.h"
 #include "AxisBench.h"
 
+#define WSDL_DEFAULT_ENDPOINT "http://localhost:9080/AxisBench/services/AxisBenchSoapImpl"
+
 int main(int argc, char* argv[])
 { 
-  BenchDataType *input;
-  BenchDataType *output;
-  BenchBasicDataType *pTemp;
-  time_t tim;
-  int i;
-  void * pStub;
-  xsdc__unsignedByte* buffer;
-  char *uri = "http://localhost:9080/AxisBench/services/AxisBenchSoapImpl";
+    AXISCHANDLE ws = NULL;
+  
+    BenchDataType *     input = NULL;
+  	BenchDataType *     output = NULL;
+    xsdc__unsignedByte* buffer = NULL;
+
+    char *	endpoint = WSDL_DEFAULT_ENDPOINT;
+    int    returnValue = 1; /* Assume Failure */
+
+    int i;
+
+    BenchBasicDataType_Array arrayIn;
+    BenchBasicDataType ** ppBBDT;
+
+    xsdc__long ll;
+    time_t tim;
+    struct tm *  temp;
+    struct tm lt;
+    
+    char * letterA_String;
+    
+    int request = 1;
+    
 
-  axiscRegisterExceptionHandler(exceptionHandler);
+    axiscRegisterExceptionHandler(exceptionHandler);
   
-  if (argc>1) 
-    uri = argv[1];
+    if (argc>2 && strcmp(argv[1], "-e") == 0) 
+        endpoint = argv[2];   
 
-  pStub = get_AxisBench_stub (uri);
+    ws = get_AxisBench_stub (endpoint);
+    
+    /* extend transport timeout value to 60 secs */
+    axiscSetTransportTimeout(ws, 60);
 
-  input = Axis_Create_BenchDataType(0,0,0);
+    ppBBDT = (BenchBasicDataType **)malloc(sizeof(BenchBasicDataType *) * 100);
 
-  input->count = 100;
-  input->infos.m_Array = Axis_Create_BenchBasicDataType(NULL,1,input->count);
-  input->infos.m_Size = input->count;
-
-  tim = 1079010407;
-  gmtime(&tim);
-
-  pTemp = input->infos.m_Array;
-
-  buffer = (xsdc__unsignedByte*)malloc ( input->count + 2 );
-  memset (buffer,0,input->count + 2);
-
-  for ( i = 0; i < input->count ; i++ ) 
-  {
-    BenchBasicDataType *type = Axis_Create_BenchBasicDataType(0,0,0);
-    type->StringType = c_strdup("StringType");
-    type->IntegerType = i;
-    type->DoubleType = 1;/*i/10;*/
-    type->BooleanType = true_;
-    type->DateTimeType = *gmtime(&tim);
-    type->DateType = *gmtime(&tim);
-    type->TimeType = *gmtime(&tim);
-
-    type->IntType = i;
-    type->ByteType = '1';
-    type->DecimalType = 10;
-    type->FloatType = i/2;
-    type->LongType = i*100;
-    type->QNameType = c_strdup("toto");
-    type->ShortType = 1;
-
-    type->Base64BinaryType.__size=i;
-    type->Base64BinaryType.__ptr=buffer;
-    type->HexBinary.__size=i;
-    type->HexBinary.__ptr=buffer;
-    strcat ( (char *)buffer, "A");
- 
-    pTemp[i] = *type;
-  }
-
-  output = doBenchRequest(pStub,input);
-
-  if (exceptionOccurred == C_TRUE ||
-      get_AxisBench_Status(pStub) == AXISC_FAIL ) 
-    printf ("Failed\n");
-  else 
-  {  
-      BenchBasicDataType *pTemp;
-      pTemp = output->infos.m_Array;
-      printf ("Count : %d \n", output->count);
-      for ( i = 0; i < output->count ; i++ ) 
-      {
-        printf (" ----------------------------------------------\n");
-        printf (" StringType %s \n", pTemp[i].StringType);
-        printf (" IntegerType %d \n", pTemp[i].IntegerType);
-        printf (" DoubleType %f \n", pTemp[i].DoubleType);
-        printf (" BooleanType %d \n", pTemp[i].BooleanType);
-        printf (" DateTimeType %s \n", asctime(&pTemp[i].DateTimeType));
-        printf (" DateType %s \n", asctime(&pTemp[i].DateType));
-        printf (" TimeType %s \n", asctime(&pTemp[i].TimeType));
-        printf (" ByteType %d \n", pTemp[i].ByteType);
-        printf (" DecimalType %f \n", pTemp[i].DecimalType);
-        printf (" FloatType %f \n", pTemp[i].FloatType);
-        printf (" LongType %ld \n", pTemp[i].LongType);
-        printf (" QNameType %s \n", pTemp[i].QNameType);
-        printf (" ShortType %d \n", pTemp[i].ShortType);
-    
-        printf (" Base64BinaryType %d \n", output->infos.m_Array[i].Base64BinaryType.__size);
-        printf (" Base64BinaryType %s \n", output->infos.m_Array[i].Base64BinaryType.__ptr);
-    
-        printf (" HexBinaryType %d \n", output->infos.m_Array[i].HexBinary.__size);
-        printf (" HexBinaryType %s \n", output->infos.m_Array[i].HexBinary.__ptr);
-      }
-  }
-  
-  Axis_Delete_BenchDataType (input,0,0);
-  Axis_Delete_BenchDataType (output,0,0);
+    input = Axis_Create_BenchDataType(0,0,0);
+    input->count = 100;
+    
+    ll = 10000;
+    tim = 1100246323;
+    temp = gmtime( &tim);
+    
+    memcpy( &lt, temp, sizeof( struct tm));
+    
+    letterA_String = stringToAscii( "A");
+    buffer = (xsdc__unsignedByte *) calloc( 1, input->count + 2);
+    strcpy( (char *) buffer, letterA_String);      
+
+    for( i = 0; i < input->count ; i++)
+    {
+        BenchBasicDataType *type = Axis_Create_BenchBasicDataType(0,0,0);
+
+        type->StringType = "StringType";
+        type->IntegerType = 10 * (i + 1);
+        type->DoubleType = 11.111 * (i + 1);
+        type->BooleanType = true_;
+        type->DateTimeType = lt;
+        type->TimeType = lt;
+        type->DateType = lt;
+        type->IntType = (i + 1);
+        type->ByteType = '1';
+        type->DecimalType = 10 * (i + 1);
+        type->FloatType = (float) ((float) (11 * (i + 1)) / (float) 2.0);
+        type->LongType = ll;
+        type->QNameType = "toto";
+        type->ShortType = (i + 1);
+        type->Base64BinaryType.__size=i;
+        type->Base64BinaryType.__ptr=buffer;
+        type->HexBinary.__size=i;
+        type->HexBinary.__ptr=buffer;
+    
+        ppBBDT[i] = type;
+
+        if( ll == 0) 
+        	ll = 1; 
+        else 
+        	ll += 10000;
+
+        strcat ( (char *) buffer, letterA_String);
+    }
+
+    arrayIn.m_Array = ppBBDT;
+    arrayIn.m_Size  = input->count;
+    
+    input->infos =  &arrayIn;
+    
+    for(i = 0; i < request; i++)
+    {
+        if (output)
+        { 
+        	int j;
+            BenchBasicDataType **	outArray = output->infos->m_Array;             
+			for( j = 0; j < output->infos->m_Size; j++)
+			{
+				Axis_Delete_BenchBasicDataType(outArray[j], 0, 0);
+				
+				/* Who deletes output->infos?? */
+			}
+
+            Axis_Delete_BenchDataType(output,0,0);
+            output = NULL;
+        }
+
+        output = doBenchRequest(ws, input);
+    }
+
+    for( i = 0; i < input->count; i++)
+    {
+        Axis_Delete_BenchBasicDataType(ppBBDT[i],0,0);
+    }
+
+    if (ppBBDT)
+      free(ppBBDT);
+    if (buffer)
+	  free( buffer);
+    
+  	output = doBenchRequest(ws,input);
+
+  	if (exceptionOccurred == C_TRUE 
+  			|| output == NULL 
+  			|| get_AxisBench_Status(ws) == AXISC_FAIL ) 
+    	printf ("Failed\n");
+  	else 
+  	{
+  		char	dateTime[50];
+  		BenchBasicDataType **	outArray = output->infos->m_Array;             
+  		
+        if( argc > 1)
+            i = output->count - 1;
+  		  
+        printf("Input Count : %d\n", input->count);
+        printf("Count : %d\n", output->count);
+  		  
+     	for ( i = 0; i < output->count ; i++ ) 
+      	{
+      		if( outArray[i] != NULL)
+      		{
+                printf( " ----------------------------------------------" );
+                printf( " StringType %s\n", outArray[i]->StringType );
+                printf( " IntType %d\n", outArray[i]->IntType );
+                printf( " IntegerType %d\n", outArray[i]->IntegerType );
+                printf( " DoubleType %f\n", outArray[i]->DoubleType );
+                printf( " BooleanType %d\n", outArray[i]->BooleanType );
+                strftime(dateTime, 50, "%a %b %d %H:%M:%S %Y", &outArray[i]->DateTimeType);
+                printf( " DateTimeType %s\n", dateTime );
+                strftime(dateTime, 50, "%a %b %d %Y", &outArray[i]->DateType);
+                printf( " DateType %s\n", dateTime );
+
+// Following check for os/400 - the mock server will return ascii char which needs to be converted
+#ifdef __OS400__
+                if( outArray[i]->ByteType == 0x31)
+                	outArray[i]->ByteType = '1';
+#endif
+                printf( " ByteType %d\n", outArray[i]->ByteType );
+                printf( " DecimalType %f\n", outArray[i]->DecimalType );
+                printf( " FloatType %f\n", outArray[i]->FloatType );
+                printf( " LongType %ld\n", outArray[i]->LongType );
+                printf( " QNameType %s\n", outArray[i]->QNameType );
+                printf( " ShortType %d\n", outArray[i]->ShortType );
+
+                printf( " Base64BinaryType ", outArray[i]->Base64BinaryType.__size );
+                if( outArray[i]->Base64BinaryType.__size > 0)
+                    printf( " Base64BinaryType ", asciiToString((char *)outArray[i]->Base64BinaryType.__ptr) );
+
+                printf( " HexBinaryType ", outArray[i]->HexBinary.__size );
+                if( outArray[i]->HexBinary.__size > 0)
+                    printf( " HexBinaryType ", asciiToString( (char *) outArray[i]->HexBinary.__ptr) );	    
+      		}
+      		
+      		returnValue = 0;
+      	}
+  	}
   
-  return 0;
+  	Axis_Delete_BenchDataType (input,0,0);
+  	Axis_Delete_BenchDataType (output,0,0);
+
+    printf( "---------------------- TEST COMPLETE -----------------------------" );
+    
+	return returnValue;
 }

Modified: webservices/axis/trunk/c/tests/auto_build/testcases/client/c/SimpleTypeArrayClient.c
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/tests/auto_build/testcases/client/c/SimpleTypeArrayClient.c?rev=392161&r1=392160&r2=392161&view=diff
==============================================================================
--- webservices/axis/trunk/c/tests/auto_build/testcases/client/c/SimpleTypeArrayClient.c (original)
+++ webservices/axis/trunk/c/tests/auto_build/testcases/client/c/SimpleTypeArrayClient.c Thu Apr  6 19:23:48 2006
@@ -13,12 +13,11 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "CommonClientTestCode.h"
+#include <stdio.h>
 
+#include "CommonClientTestCode.h"
 #include "SimpleTypeArrayWS.h" 
 
-#include <stdio.h>
-
 #define WSDL_DEFAULT_ENDPOINT "http://localhost:9080/SimpleTypeArray/services/sampleWS"
 
 int main(int argc, char* argv[])
@@ -33,6 +32,8 @@
     xsdc__int * array[100];
     xsdc__int   elements[100];
     int i;
+
+    axiscRegisterExceptionHandler(exceptionHandler);
 
     if (argc>2 && strcmp(argv[1], "-e") == 0) 
         endpoint = argv[2];   

Modified: webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/AxisBenchClient.cpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/AxisBenchClient.cpp?rev=392161&r1=392160&r2=392161&view=diff
==============================================================================
--- webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/AxisBenchClient.cpp (original)
+++ webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/AxisBenchClient.cpp Thu Apr  6 19:23:48 2006
@@ -236,9 +236,7 @@
 // Following check for os/400 - the mock server will return ascii char which needs to be converted
 #ifdef __OS400__
                         if( outArray[i]->ByteType == 0x31) 
-						{
                             outArray[i]->ByteType = '1';
-						}
 #endif
                         cout << " ByteType " << outArray[i]->ByteType << endl;
                         cout << " DecimalType " << outArray[i]->DecimalType << endl;
@@ -256,13 +254,7 @@
                         {
                             cout << " Base64BinaryType " << asciiToString((char *)base64BinaryData) << endl;
                         }
-/* Not Required
-                        if (base64BinaryData != NULL)
-                        {
-                            delete [] base64BinaryData;
-                            base64BinaryData = NULL;
-                        }
-*/
+
                         size = 0;
 
                         xsd__unsignedByte * hexBinaryData = outArray[i]->HexBinary.get(size);
@@ -273,14 +265,6 @@
                         {
                             cout << " HexBinaryType " << asciiToString( (char *) hexBinaryData) << endl;
                         }
-
-/* Not Required
-                        if (hexBinaryData != NULL)
-                        {
-                            delete [] hexBinaryData;
-                            hexBinaryData = NULL;
-                        }
-*/
                     }
 
                     returnValue = 0;