You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by su...@apache.org on 2004/08/20 15:03:40 UTC

cvs commit: ws-axis/c/vc/soap SoapLibrary.dsp

susantha    2004/08/20 06:03:40

  Modified:    c/include/axis/server IWrapperSoapDeSerializer.h
                        IWrapperSoapSerializer.h
               c/src/common AxisTime.cpp AxisTime.h BasicTypeSerializer.cpp
                        BasicTypeSerializer.h
               c/src/soap SoapDeSerializer.cpp SoapDeSerializer.h
                        SoapSerializer.cpp SoapSerializer.h
               c/src/wsdl/.externalToolBuilders Jar_Builder.launch
               c/src/wsdl/org/apache/axis/wsdl/symbolTable SchemaUtils.java
               c/src/wsdl/org/apache/axis/wsdl/wsdl2ws ParamWriter.java
                        WSDL2Ws.java
               c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal
                        BeanParamWriter.java ParmHeaderFileWriter.java
               c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info Type.java
               c/tests/server/exceptionTest/gen_src MathOpsWrapper.cpp
               c/vc/common CommonLibrary.dsp
               c/vc/soap SoapLibrary.dsp
  Log:
  added the support for complexTypes with simpleContent
  1. WSDL2Ws tool additions
  2. Serializer and Deserializer code additions
  
  Revision  Changes    Path
  1.26      +6 -0      ws-axis/c/include/axis/server/IWrapperSoapDeSerializer.h
  
  Index: IWrapperSoapDeSerializer.h
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/include/axis/server/IWrapperSoapDeSerializer.h,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- IWrapperSoapDeSerializer.h	6 Aug 2004 14:44:20 -0000	1.25
  +++ IWrapperSoapDeSerializer.h	20 Aug 2004 13:03:37 -0000	1.26
  @@ -139,6 +139,7 @@
           const AxisChar* pNamespace);
       int (AXISCALL* getStatus)(void* pObj);
       AnyType* (AXISCALL* getAnyObject)(void* pObj);
  +    void (AXISCALL* getChardataAs)(void* pObj, void* pValue, XSDTYPE type);
   } IWrapperSoapDeSerializerFunctions;
   
   typedef struct { 
  @@ -286,6 +287,7 @@
       virtual int getVersion()=0;
       virtual int getHeader()=0;    
   	virtual AnyType* AXISCALL getAnyObject()=0;            
  +    virtual void getChardataAs(void* pValue, XSDTYPE type)=0;
   
       /* following stuff is needed to provide the interface for C web services */
   public:
  @@ -494,6 +496,9 @@
       { return ((IWrapperSoapDeSerializer*)pObj)->getStatus();};
   	static 	AnyType* AXISCALL s_GetAnyObject(void* pObj)
   	{ return ((IWrapperSoapDeSerializer*)pObj)->getAnyObject();};
  +    static void AXISCALL s_GetChardataAs(void* pObj, void* pValue, XSDTYPE type)
  +    { ((IWrapperSoapDeSerializer*)pObj)->getChardataAs(pValue, type);};
  +
   
       static void s_Initialize()
       {
  @@ -549,6 +554,7 @@
           ms_VFtable.getAttributeAsDuration = s_GetAttributeAsDuration;
           ms_VFtable.getStatus = s_GetStatus;
   		ms_VFtable.getAnyObject = s_GetAnyObject;
  +        ms_VFtable.getChardataAs = s_GetChardataAs;
       }
   };
   #endif
  
  
  
  1.21      +13 -1     ws-axis/c/include/axis/server/IWrapperSoapSerializer.h
  
  Index: IWrapperSoapSerializer.h
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/include/axis/server/IWrapperSoapSerializer.h,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- IWrapperSoapSerializer.h	6 Aug 2004 14:44:20 -0000	1.20
  +++ IWrapperSoapSerializer.h	20 Aug 2004 13:03:37 -0000	1.21
  @@ -86,7 +86,10 @@
   
       int (AXISCALL* addOutputAnyObject)(void* pObj, AnyType* pAnyObject);
   
  -    int (AXISCALL* serializeAnyObject)(void* pObj, AnyType* pAnyObject);    
  +    int (AXISCALL* serializeAnyObject)(void* pObj, AnyType* pAnyObject); 
  +    
  +    int (AXISCALL* serializeAsChardata)(void* pObj, void* pValue, XSDTYPE type);
  +
   }IWrapperSoapSerializerFunctions;
   
   typedef struct 
  @@ -197,6 +200,8 @@
   
       virtual int serializeAnyObject(AnyType* pAnyObject)=0;
   
  +    virtual int serializeAsChardata(void* pValue, XSDTYPE type)=0;
  +
       /* following stuff is needed to provide the interface for C web services */
   public:
       static IWrapperSoapSerializerFunctions ms_VFtable;
  @@ -295,6 +300,12 @@
           return ((IWrapperSoapSerializer*)pObj)->serializeAnyObject(pAnyObject);
       }
   
  +    static int AXISCALL s_SerializeAsChardata(void* pObj,
  +        void* pValue, XSDTYPE type)
  +    {
  +        return ((IWrapperSoapSerializer*)pObj)->serializeAsChardata(pValue, type);
  +    }
  +
       static void s_Initialize()
       {
           ms_VFtable.createSoapMethod = s_CreateSoapMethod;
  @@ -315,6 +326,7 @@
           ms_VFtable.serializeEndElementOfType = s_SerializeEndElementOfType;
           ms_VFtable.addOutputAnyObject = s_AddOutputAnyObject;
           ms_VFtable.serializeAnyObject = s_SerializeAnyObject;
  +        ms_VFtable.serializeAsChardata = s_SerializeAsChardata;
       }
   };
   
  
  
  
  1.26      +2 -4      ws-axis/c/src/common/AxisTime.cpp
  
  Index: AxisTime.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/common/AxisTime.cpp,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- AxisTime.cpp	6 Aug 2004 14:44:28 -0000	1.25
  +++ AxisTime.cpp	20 Aug 2004 13:03:37 -0000	1.26
  @@ -82,8 +82,7 @@
   * of the format PnYnMnDTnHnMnS
   */
   
  -AxisString & AxisTime::serialize (const AxisChar* sName, long lDuration,
  -    XSDTYPE nType)
  +AxisString & AxisTime::serialize(long lDuration, XSDTYPE nType)
   {
       AxisChar buff[4];
       strXSDDuration = "P";
  @@ -135,8 +134,7 @@
   * Serialize the c type tm struct into a xml date string.
   * The serialized date will represent UTC time
   */
  -AxisString & AxisTime::serialize (const AxisChar* sName, struct tm tValue,
  -                                  XSDTYPE nType)
  +AxisString & AxisTime::serialize(struct tm tValue, XSDTYPE nType)
   {
       /*formats the output date in the format CCYY-MM-DDThh:mm:ssZ */
       switch (nType)
  
  
  
  1.9       +2 -3      ws-axis/c/src/common/AxisTime.h
  
  Index: AxisTime.h
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/common/AxisTime.h,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- AxisTime.h	6 Aug 2004 14:44:28 -0000	1.8
  +++ AxisTime.h	20 Aug 2004 13:03:37 -0000	1.9
  @@ -61,10 +61,9 @@
           void setValue(XSDTYPE type, uParamValue Value);
           void setType(XSDTYPE m_Type);
           AxisString getValue();
  -        AxisString& serialize(const AxisChar* sName, struct tm tValue, 
  -            XSDTYPE nType);
  -        AxisString& serialize(const AxisChar* sName, long lDuration, 
  +        AxisString& serialize(struct tm tValue, 
               XSDTYPE nType);
  +        AxisString& serialize(long lDuration, XSDTYPE nType);
           double getDuration();
           struct tm getDateTime();
           struct tm getDate();
  
  
  
  1.30      +4 -4      ws-axis/c/src/common/BasicTypeSerializer.cpp
  
  Index: BasicTypeSerializer.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/common/BasicTypeSerializer.cpp,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- BasicTypeSerializer.cpp	6 Aug 2004 14:44:28 -0000	1.29
  +++ BasicTypeSerializer.cpp	20 Aug 2004 13:03:37 -0000	1.30
  @@ -90,7 +90,7 @@
               m_sSZ += m_Buf;
               break;
           case XSD_DURATION:
  -            AxisSprintf (m_Buf, BTS_BUFFSIZE, "%s", m_AxisTime.serialize (pName,
  +            AxisSprintf (m_Buf, BTS_BUFFSIZE, "%s", m_AxisTime.serialize(
                   *((long*)(pValue)), type).c_str ());
               m_sSZ += m_Buf;
               break;
  @@ -134,7 +134,7 @@
           case XSD_DATETIME:
           case XSD_DATE:
           case XSD_TIME:
  -            AxisSprintf (m_Buf, BTS_BUFFSIZE, "%s", m_AxisTime.serialize (pName,
  +            AxisSprintf (m_Buf, BTS_BUFFSIZE, "%s", m_AxisTime.serialize(
                   *((struct tm*)(pValue)), type).c_str ());
               m_sSZ += m_Buf;
               break;
  @@ -223,7 +223,7 @@
               break;
           case XSD_DURATION:
               AxisSprintf (m_Buf, BTS_BUFFSIZE, "%s",
  -                m_AxisTime.serialize (pName, *((long*)(pValue)),
  +                m_AxisTime.serialize (*((long*)(pValue)),
                   type).c_str ());
               m_sSZ += m_Buf;
               break;
  @@ -258,7 +258,7 @@
           case XSD_DATE:
           case XSD_TIME:
               AxisSprintf (m_Buf, BTS_BUFFSIZE, "%s",
  -                m_AxisTime.serialize (pName, *((struct tm *) (pValue)),
  +                m_AxisTime.serialize (*((struct tm *) (pValue)),
                   type).c_str ());
               m_sSZ += m_Buf;
               break;
  
  
  
  1.18      +1 -0      ws-axis/c/src/common/BasicTypeSerializer.h
  
  Index: BasicTypeSerializer.h
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/common/BasicTypeSerializer.h,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- BasicTypeSerializer.h	6 Aug 2004 14:44:28 -0000	1.17
  +++ BasicTypeSerializer.h	20 Aug 2004 13:03:37 -0000	1.18
  @@ -56,6 +56,7 @@
   
   class BasicTypeSerializer
   {
  +    friend class SoapSerializer;
   public:
       BasicTypeSerializer();
       virtual ~BasicTypeSerializer();
  
  
  
  1.81      +68 -0     ws-axis/c/src/soap/SoapDeSerializer.cpp
  
  Index: SoapDeSerializer.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/soap/SoapDeSerializer.cpp,v
  retrieving revision 1.80
  retrieving revision 1.81
  diff -u -r1.80 -r1.81
  --- SoapDeSerializer.cpp	17 Aug 2004 14:13:50 -0000	1.80
  +++ SoapDeSerializer.cpp	20 Aug 2004 13:03:37 -0000	1.81
  @@ -3364,4 +3364,72 @@
       }
   }
   
  +void SoapDeSerializer::getChardataAs(void* pValue, XSDTYPE type)
  +{
  +    if (!m_pNode) m_pNode = m_pParser->next(true); /* charactor node */
  +    if (m_pNode && (CHARACTER_ELEMENT == m_pNode->m_type))
  +    {
  +        switch (type)
  +        {
  +        case XSD_INT:
  +            *((int*)(pValue)) = strtod(m_pNode->m_pchNameOrValue, &m_pEndptr);
  +            break;
  +        case XSD_BOOLEAN:
  +            *((int*)(pValue)) = (strcmp(m_pNode->m_pchNameOrValue, "true")==0) ? false_ : true_; 
  +            break;
  +        case XSD_UNSIGNEDINT:
  +            *((unsigned int*)(pValue)) = strtoul(m_pNode->m_pchNameOrValue, &m_pEndptr, 10);
  +            break;
  +        case XSD_SHORT:
  +            *((short*)(pValue)) = strtod(m_pNode->m_pchNameOrValue, &m_pEndptr);
  +            break;
  +        case XSD_UNSIGNEDSHORT:
  +            *((unsigned short*)(pValue)) = strtoul(m_pNode->m_pchNameOrValue, &m_pEndptr, 10);
  +            break;
  +        case XSD_BYTE:
  +            *((char*)(pValue)) = strtod(m_pNode->m_pchNameOrValue, &m_pEndptr);
  +            break;
  +        case XSD_UNSIGNEDBYTE:
  +            *((unsigned char*)(pValue)) = strtoul(m_pNode->m_pchNameOrValue, &m_pEndptr, 10);
  +            break;
  +        case XSD_LONG:
  +        case XSD_INTEGER:
  +            *((long*)(pValue)) = strtol(m_pNode->m_pchNameOrValue, &m_pEndptr, 10);
  +            break;
  +        case XSD_DURATION:
  +            *((long*)(pValue)) = AxisTime::deserializeDuration(m_pNode->m_pchNameOrValue, 
  +                    XSD_DURATION);
  +            break;
  +        case XSD_UNSIGNEDLONG:
  +            *((unsigned long*)(pValue)) = strtoul(m_pNode->m_pchNameOrValue, &m_pEndptr, 10);
  +            break;
  +        case XSD_FLOAT:
  +            *((float*)(pValue)) = strtod(m_pNode->m_pchNameOrValue, &m_pEndptr);
  +            break;
  +        case XSD_DOUBLE:
  +        case XSD_DECIMAL:
  +            *((double*)(pValue)) = strtod(m_pNode->m_pchNameOrValue, &m_pEndptr);
  +            break;
  +        case XSD_STRING:
  +        case XSD_ANYURI:
  +        case XSD_QNAME:
  +        case XSD_NOTATION:
  +            *((char**)(pValue)) = strdup(m_pNode->m_pchNameOrValue);
  +            break;
  +        case XSD_HEXBINARY:
  +            *(xsd__hexBinary*)(pValue) = decodeFromHexBinary(m_pNode->m_pchNameOrValue);
  +            break;
  +        case XSD_BASE64BINARY:
  +            *(xsd__base64Binary*)(pValue) = decodeFromBase64Binary(m_pNode->m_pchNameOrValue);
  +            break;
  +        case XSD_DATETIME:
  +        case XSD_DATE:
  +        case XSD_TIME:
  +            *((struct tm*)(pValue)) = AxisTime::deserialize(m_pNode->m_pchNameOrValue, type);
  +            break;
  +        default:;
  +        }
  +    }
  +}
  +
   AXIS_CPP_NAMESPACE_END
  
  
  
  1.19      +2 -0      ws-axis/c/src/soap/SoapDeSerializer.h
  
  Index: SoapDeSerializer.h
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/soap/SoapDeSerializer.h,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- SoapDeSerializer.h	6 Aug 2004 14:44:36 -0000	1.18
  +++ SoapDeSerializer.h	20 Aug 2004 13:03:37 -0000	1.19
  @@ -207,6 +207,8 @@
       int AXISCALL getStatus(){return m_nStatus;};
   	AnyType* AXISCALL getAnyObject();
       void serializeTag(AxisString& xmlStr, const AnyElement* node, AxisString& nsDecls);
  +    void getChardataAs(void* pValue, XSDTYPE type);
  +
   
   private:
       int getElementForAttributes(const AxisChar* pName, 
  
  
  
  1.68      +72 -0     ws-axis/c/src/soap/SoapSerializer.cpp
  
  Index: SoapSerializer.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/soap/SoapSerializer.cpp,v
  retrieving revision 1.67
  retrieving revision 1.68
  diff -u -r1.67 -r1.68
  --- SoapSerializer.cpp	6 Aug 2004 14:44:37 -0000	1.67
  +++ SoapSerializer.cpp	20 Aug 2004 13:03:37 -0000	1.68
  @@ -819,4 +819,76 @@
   	return m_pSoapEnvelope->m_pSoapHeader->getNextHeaderBlock();
   }
   
  +int SoapSerializer::serializeAsChardata(void* pValue, XSDTYPE type)
  +{
  +    const char* pStr = m_Buf;
  +    switch (type)
  +    {
  +    case XSD_INT:
  +        AxisSprintf (m_Buf, BTS_BUFFSIZE, "%d", *((int*)(pValue)));
  +        break;
  +    case XSD_BOOLEAN:
  +        AxisSprintf (m_Buf, BTS_BUFFSIZE, "%s",
  +                   (*((int*)(pValue)) == false_) ? "false" : "true");
  +        break;
  +    case XSD_UNSIGNEDINT:
  +        AxisSprintf (m_Buf, BTS_BUFFSIZE, "%u", *((unsigned int*)(pValue)));
  +        break;
  +    case XSD_SHORT:
  +        AxisSprintf (m_Buf, BTS_BUFFSIZE, "%d", *((short*)(pValue)));
  +        break;
  +    case XSD_UNSIGNEDSHORT:
  +        AxisSprintf (m_Buf, BTS_BUFFSIZE, "%u", 
  +            *((unsigned short*)(pValue)));
  +        break;
  +    case XSD_BYTE:
  +        AxisSprintf (m_Buf, BTS_BUFFSIZE, "%d", *((char*)(pValue)));
  +        break;
  +    case XSD_UNSIGNEDBYTE:
  +        AxisSprintf (m_Buf, BTS_BUFFSIZE, "%u", 
  +            *((unsigned char*)(pValue)));
  +        break;
  +    case XSD_LONG:
  +    case XSD_INTEGER:
  +        AxisSprintf (m_Buf, BTS_BUFFSIZE, "%d", *((long*)(pValue)));
  +        break;
  +    case XSD_DURATION:
  +        AxisSprintf (m_Buf, BTS_BUFFSIZE, "%s", m_BTSZ.m_AxisTime.serialize(
  +            *((long*)(pValue)), type).c_str ());
  +        break;
  +    case XSD_UNSIGNEDLONG:
  +        AxisSprintf (m_Buf, BTS_BUFFSIZE, "%u", *((unsigned long*)(pValue)));
  +        break;
  +    case XSD_FLOAT:
  +        AxisSprintf (m_Buf, BTS_BUFFSIZE, "%f", *((float*)(pValue)));
  +        break;
  +    case XSD_DOUBLE:
  +    case XSD_DECIMAL:
  +        AxisSprintf (m_Buf, BTS_BUFFSIZE, "%f", *((double*)(pValue)));
  +        break;
  +    case XSD_STRING:
  +    case XSD_ANYURI:
  +    case XSD_QNAME:
  +    case XSD_NOTATION:
  +        pStr = *((char**)(pValue));
  +        pStr = m_BTSZ.getEntityReferenced(std::string(pStr)).c_str();
  +        break;
  +    case XSD_HEXBINARY:
  +        pStr = m_BTSZ.encodeToHexBinary((xsd__hexBinary*)(pValue));
  +        break;
  +    case XSD_BASE64BINARY:
  +        pStr = m_BTSZ.encodeToBase64Binary((xsd__base64Binary*)(pValue));
  +        break;
  +    case XSD_DATETIME:
  +    case XSD_DATE:
  +    case XSD_TIME:
  +        AxisSprintf (m_Buf, BTS_BUFFSIZE, "%s", m_BTSZ.m_AxisTime.serialize(
  +            *((struct tm*)(pValue)), type).c_str ());
  +        break;
  +    default:;
  +    }
  +    *this << pStr;
  +    return AXIS_SUCCESS;
  +}
  +
   AXIS_CPP_NAMESPACE_END
  
  
  
  1.27      +3 -1      ws-axis/c/src/soap/SoapSerializer.h
  
  Index: SoapSerializer.h
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/soap/SoapSerializer.h,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- SoapSerializer.h	6 Aug 2004 14:44:37 -0000	1.26
  +++ SoapSerializer.h	20 Aug 2004 13:03:38 -0000	1.27
  @@ -47,7 +47,7 @@
   {
   private:
       int m_nCounter;
  -    AxisChar m_Buf[8];
  +    AxisChar m_Buf[BTS_BUFFSIZE];
       SoapEnvelope* m_pSoapEnvelope;    
       int m_iSoapVersion;
       /* Current Serialization Style */
  @@ -177,6 +177,8 @@
       const AxisChar* AXISCALL getBodyAsString();
   	int addOutputAnyObject(AnyType* pAnyObject);
   	int serializeAnyObject(AnyType* pAnyObject);
  +    int serializeAsChardata(void* pValue, XSDTYPE type);
  +
   };
   
   AXIS_CPP_NAMESPACE_END
  
  
  
  1.5       +1 -1      ws-axis/c/src/wsdl/.externalToolBuilders/Jar_Builder.launch
  
  Index: Jar_Builder.launch
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/wsdl/.externalToolBuilders/Jar_Builder.launch,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- Jar_Builder.launch	26 Apr 2004 10:30:03 -0000	1.4
  +++ Jar_Builder.launch	20 Aug 2004 13:03:38 -0000	1.5
  @@ -7,7 +7,7 @@
       <stringAttribute
           key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,"/>
       <stringAttribute
  -        key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="E:\Axis\ws-axis\c\bin"/>
  +        key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="E:\Axis\ws-axis\c_head\bin"/>
       <stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="C:\j2sdk1.4.1_01\bin\jar.exe"/>
       <stringAttribute key="org.eclipse.debug.ui.target_run_perspective" value="perspective_none"/>
   </launchConfiguration>
  
  
  
  1.6       +1 -0      ws-axis/c/src/wsdl/org/apache/axis/wsdl/symbolTable/SchemaUtils.java
  
  Index: SchemaUtils.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/symbolTable/SchemaUtils.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- SchemaUtils.java	23 Jul 2004 12:21:07 -0000	1.5
  +++ SchemaUtils.java	20 Aug 2004 13:03:38 -0000	1.6
  @@ -1574,6 +1574,7 @@
   
   		// add type and name to vector, skip it if we couldn't parse it
   		// XXX - this may need to be revisited.
  +		//attributeName.getLocalPart().equals("name>lang")
   		if ((type != null) && (attributeName != null)) {
   			v.add(type);
   			v.add(attributeName);
  
  
  
  1.11      +10 -1     ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/ParamWriter.java
  
  Index: ParamWriter.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/ParamWriter.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- ParamWriter.java	6 Aug 2004 14:44:43 -0000	1.10
  +++ ParamWriter.java	20 Aug 2004 13:03:39 -0000	1.11
  @@ -39,6 +39,7 @@
       protected static final int RETURN_PARM = 1;
       protected static final int COMMAN_PARM = 2;
   	
  +	protected AttributeInfo extensionBaseAttrib=null;
   	/* no of parameters treated as attributes: ie first attributeParamCount of
   	 * attribs will be treated as attributes
   	 */
  @@ -64,7 +65,7 @@
   			writer.write(" * This file was auto-generated by the Axis C++ Web Service Generator (WSDL2Ws)\n");
   			writer.write(" * This file contains functions to manipulate complex type "+ classname+"\n");
   			writer.write(" */\n\n");
  -      } catch (IOException e) {
  +    	   } catch (IOException e) {
               e.printStackTrace();
               throw new WrapperFault(e);
           }
  @@ -74,6 +75,14 @@
   	}   
    	/* genarate the arrtibs array */
    	private void populateAttribList(String Qualifiedname) throws WrapperFault {
  + 		ElementInfo elemi = type.getExtensionBaseType();
  + 		if ( elemi != null){
  +			extensionBaseAttrib = new AttributeInfo();
  +			extensionBaseAttrib.setParamName(elemi.getName().getLocalPart());
  +			extensionBaseAttrib.setTypeName(CUtils.getclass4qname(elemi.getType().getName()));
  +			extensionBaseAttrib.setType(elemi.getType());
  +			extensionBaseAttrib.setElementName(elemi.getName());
  + 		}
   		ArrayList attribfeilds = new ArrayList();
   		ArrayList elementfeilds = new ArrayList();
   
  
  
  
  1.36      +15 -4     ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/WSDL2Ws.java
  
  Index: WSDL2Ws.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/WSDL2Ws.java,v
  retrieving revision 1.35
  retrieving revision 1.36
  diff -u -r1.35 -r1.36
  --- WSDL2Ws.java	19 Aug 2004 12:54:54 -0000	1.35
  +++ WSDL2Ws.java	20 Aug 2004 13:03:39 -0000	1.36
  @@ -564,10 +564,21 @@
   
   		Vector restrictdata = null;
   		if(type.isSimpleType()){
  -			//extended types and types declared as simpleType
  -			restrictdata = CUtils.getRestrictionBaseAndValues(node,symbolTable);
  -			if(restrictdata != null)
  -				typedata.setRestrictiondata(restrictdata);
  +			//check for extended types
  +			TypeEntry base = SchemaUtils.getComplexElementExtensionBase(type.getNode(),symbolTable);
  +			if (base != null){
  +				String localpart = type.getQName().getLocalPart()+ "_value";
  +				QName typeName = new QName(type.getQName().getNamespaceURI(),localpart);
  +				ElementInfo eleinfo = new ElementInfo(typeName,createTypeInfo(base.getQName(),targetLanguage));
  +				typedata.setExtensionBaseType(eleinfo);
  +				System.out.print("=====complexType with simpleContent is found : "+ type.getQName().getLocalPart()+"=====\n");
  +			}
  +			else{
  +			//types declared as simpleType
  +				restrictdata = CUtils.getRestrictionBaseAndValues(node,symbolTable);
  +				if(restrictdata != null)
  +					typedata.setRestrictiondata(restrictdata);
  +			}
   			// There can be attributes in this extended basic type
   			// Process the attributes
   			Vector attributes = SchemaUtils.getContainedAttributeTypes(
  
  
  
  1.22      +10 -1     ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/BeanParamWriter.java
  
  Index: BeanParamWriter.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/BeanParamWriter.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- BeanParamWriter.java	16 Aug 2004 09:22:52 -0000	1.21
  +++ BeanParamWriter.java	20 Aug 2004 13:03:39 -0000	1.22
  @@ -105,6 +105,9 @@
   		if (attribs.length == 0) {
   			System.out.println("possible error class with no attributes....................");
   			writer.write("\tpSZ->serialize(\">\", NULL);\n");
  +			if (extensionBaseAttrib != null){
  +				writer.write("\tpSZ->serializeAsChardata((void*)&(param->"+extensionBaseAttrib.getParamName()+"), "+CUtils.getXSDTypeForBasicType(extensionBaseAttrib.getTypeName())+");\n");
  +			}
   			writer.write("\treturn AXIS_SUCCESS;\n");
   			writer.write("}\n\n");				 
   			return;
  @@ -136,6 +139,9 @@
   			}
   		}
   		writer.write("\tpSZ->serialize(\">\", 0);\n");
  +		if (extensionBaseAttrib != null){
  +			writer.write("\tpSZ->serializeAsChardata((void*)&(param->"+extensionBaseAttrib.getParamName()+"), "+CUtils.getXSDTypeForBasicType(extensionBaseAttrib.getTypeName())+");\n");
  +		}
   		writer.write("\t/* then serialize elements if any*/\n");
   		for(int i = attributeParamCount; i< attribs.length;i++){
   			if(attribs[i].isAnyType()){
  @@ -179,7 +185,7 @@
   			writer.write("}\n\n");
   			return;
   		 }
  -		String arrayType = null;
  +		 String arrayType = null;
   		/* Needed for Aix xlc */
   		for(int i = 0; i< attribs.length;i++){
   			if(attribs[i].isArray()) {
  @@ -213,6 +219,9 @@
   					"\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");				
   			}		
  +		}
  +		if (extensionBaseAttrib != null){
  +			writer.write("\tpIWSDZ->getChardataAs((void*)&(param->"+extensionBaseAttrib.getParamName()+"), "+CUtils.getXSDTypeForBasicType(extensionBaseAttrib.getTypeName())+");\n");
   		}
   		writer.write("\treturn pIWSDZ->getStatus();\n");
   		writer.write("}\n");
  
  
  
  1.17      +2 -0      ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ParmHeaderFileWriter.java
  
  Index: ParmHeaderFileWriter.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ParmHeaderFileWriter.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- ParmHeaderFileWriter.java	19 Aug 2004 12:54:54 -0000	1.16
  +++ ParmHeaderFileWriter.java	20 Aug 2004 13:03:39 -0000	1.17
  @@ -142,6 +142,8 @@
   			  for(int i=0;i<attribs.length;i++){
   				  writer.write("\t"+getCorrectParmNameConsideringArraysAndComplexTypes(attribs[i])+" "+attribs[i].getParamName()+";\n");
   			  }    
  +			  if (extensionBaseAttrib != null)
  +			  	writer.write("\t"+getCorrectParmNameConsideringArraysAndComplexTypes(extensionBaseAttrib)+" "+extensionBaseAttrib.getParamName()+";\n");
   		  } catch (IOException e) {
   			   throw new WrapperFault(e);
   		  }
  
  
  
  1.21      +20 -0     ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/Type.java
  
  Index: Type.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/Type.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- Type.java	19 Aug 2004 12:54:54 -0000	1.20
  +++ Type.java	20 Aug 2004 13:03:39 -0000	1.21
  @@ -41,6 +41,11 @@
       private static final int MAXIMUM_NO_ATTRIBS = 101;
       private QName name;
       /**
  +     * variable that represents extension base value in case of a complexType 
  +     * with simpleContent
  +     */
  +	private ElementInfo extensionBaseType=null;    
  +    /**
        * Indicate whether this is a schema defined simpleType
        */
   	private boolean isSimpleType=false;
  @@ -415,6 +420,21 @@
   	
   	public String getElementType() {
   		return elementType;
  +	}
  +
  +	/**
  +	 * @return ElementInfo
  +	 */
  +	public ElementInfo getExtensionBaseType() {
  +		return extensionBaseType;
  +	}
  +
  +	/**
  +	 * Sets the extensionBaseType.
  +	 * @param extensionBaseType The extensionBaseType to set
  +	 */
  +	public void setExtensionBaseType(ElementInfo extensionBaseType) {
  +		this.extensionBaseType = extensionBaseType;
   	}
   
   }
  
  
  
  1.3       +6 -0      ws-axis/c/tests/server/exceptionTest/gen_src/MathOpsWrapper.cpp
  
  Index: MathOpsWrapper.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/tests/server/exceptionTest/gen_src/MathOpsWrapper.cpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- MathOpsWrapper.cpp	6 Jul 2004 08:34:43 -0000	1.2
  +++ MathOpsWrapper.cpp	20 Aug 2004 13:03:39 -0000	1.3
  @@ -128,3 +128,9 @@
   	}
   }
   
  +class OutOfBoundException : public AxisServiceException
  +{
  +    void 
  +}
  +
  +
  
  
  
  1.9       +49 -9     ws-axis/c/vc/common/CommonLibrary.dsp
  
  Index: CommonLibrary.dsp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/vc/common/CommonLibrary.dsp,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- CommonLibrary.dsp	14 Jun 2004 15:54:47 -0000	1.8
  +++ CommonLibrary.dsp	20 Aug 2004 13:03:39 -0000	1.9
  @@ -146,7 +146,7 @@
   # PROP Default_Filter "h;hpp;hxx;hm;inl"
   # Begin Source File
   
  -SOURCE=..\..\include\axis\server\AdminUtils.h
  +SOURCE=..\..\src\common\AdminUtils.h
   # End Source File
   # Begin Source File
   
  @@ -154,7 +154,15 @@
   # End Source File
   # Begin Source File
   
  -SOURCE=..\..\include\axis\server\AxisConfig.h
  +SOURCE=..\..\src\common\AxisConfig.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=..\..\src\common\AxisConfigException.cpp
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=..\..\src\common\AxisConfigException.h
   # End Source File
   # Begin Source File
   
  @@ -162,15 +170,31 @@
   # End Source File
   # Begin Source File
   
  -SOURCE=..\..\include\axis\server\AxisFile.h
  +SOURCE=..\..\src\common\AxisFile.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=..\..\src\common\AxisGenException.cpp
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=..\..\src\common\AxisMessage.cpp
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=..\..\src\common\AxisMessage.h
   # End Source File
   # Begin Source File
   
  -SOURCE=..\..\include\axis\server\AxisTime.h
  +SOURCE=..\..\src\common\AxisSocketUtils.h
   # End Source File
   # Begin Source File
   
  -SOURCE=..\..\include\axis\server\AxisTrace.h
  +SOURCE=..\..\src\common\AxisTime.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=..\..\src\common\AxisTrace.h
   # End Source File
   # Begin Source File
   
  @@ -178,11 +202,15 @@
   # End Source File
   # Begin Source File
   
  +SOURCE=..\..\src\common\AxisUtils.h
  +# End Source File
  +# Begin Source File
  +
   SOURCE=..\..\include\axis\server\AxisWrapperAPI.h
   # End Source File
   # Begin Source File
   
  -SOURCE=..\..\include\axis\server\BasicTypeSerializer.h
  +SOURCE=..\..\src\common\BasicTypeSerializer.h
   # End Source File
   # Begin Source File
   
  @@ -190,7 +218,15 @@
   # End Source File
   # Begin Source File
   
  -SOURCE=..\..\include\axis\server\IAdminUtils.h
  +SOURCE=..\..\src\common\IAdminUtils.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=..\..\src\common\IArrayBean.h
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=..\..\src\common\IDeployerUtils.h
   # End Source File
   # Begin Source File
   
  @@ -218,6 +254,10 @@
   # End Source File
   # Begin Source File
   
  +SOURCE=..\..\src\common\ISoapMethod.h
  +# End Source File
  +# Begin Source File
  +
   SOURCE=..\..\include\axis\server\IWrapperSoapDeSerializer.h
   # End Source File
   # Begin Source File
  @@ -226,7 +266,7 @@
   # End Source File
   # Begin Source File
   
  -SOURCE=..\..\include\axis\server\MessageData.h
  +SOURCE=..\..\src\common\MessageData.h
   # End Source File
   # Begin Source File
   
  @@ -234,7 +274,7 @@
   # End Source File
   # Begin Source File
   
  -SOURCE=..\..\include\axis\server\Param.h
  +SOURCE=..\..\src\common\Param.h
   # End Source File
   # Begin Source File
   
  
  
  
  1.8       +13 -21    ws-axis/c/vc/soap/SoapLibrary.dsp
  
  Index: SoapLibrary.dsp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/vc/soap/SoapLibrary.dsp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- SoapLibrary.dsp	24 Jun 2004 10:39:31 -0000	1.7
  +++ SoapLibrary.dsp	20 Aug 2004 13:03:39 -0000	1.8
  @@ -94,6 +94,10 @@
   # End Source File
   # Begin Source File
   
  +SOURCE=..\..\src\soap\AxisSoapException.cpp
  +# End Source File
  +# Begin Source File
  +
   SOURCE=..\..\src\soap\BasicNode.cpp
   # End Source File
   # Begin Source File
  @@ -210,11 +214,15 @@
   # End Source File
   # Begin Source File
   
  +SOURCE=..\..\src\soap\AxisSoapException.h
  +# End Source File
  +# Begin Source File
  +
   SOURCE=..\..\include\axis\server\BasicNode.h
   # End Source File
   # Begin Source File
   
  -SOURCE=..\..\include\axis\server\CharacterElement.h
  +SOURCE=..\..\src\soap\CharacterElement.h
   # End Source File
   # Begin Source File
   
  @@ -222,7 +230,7 @@
   # End Source File
   # Begin Source File
   
  -SOURCE=..\..\include\axis\server\HeaderBlock.h
  +SOURCE=..\..\src\soap\HeaderBlock.h
   # End Source File
   # Begin Source File
   
  @@ -238,7 +246,7 @@
   # End Source File
   # Begin Source File
   
  -SOURCE=..\..\include\axis\server\SoapDeSerializer.h
  +SOURCE=..\..\src\soap\SoapDeSerializer.h
   # End Source File
   # Begin Source File
   
  @@ -250,7 +258,7 @@
   # End Source File
   # Begin Source File
   
  -SOURCE=..\..\include\axis\server\SoapHeader.h
  +SOURCE=..\..\src\soap\SoapHeader.h
   # End Source File
   # Begin Source File
   
  @@ -266,27 +274,11 @@
   # End Source File
   # Begin Source File
   
  -SOURCE=..\..\src\soap\SoapParserExpat.h
  -# End Source File
  -# Begin Source File
  -
  -SOURCE=..\..\src\soap\SoapParserXerces.h
  -# End Source File
  -# Begin Source File
  -
  -SOURCE=..\..\src\xml\xerces\SoapParserXerces.h
  -# End Source File
  -# Begin Source File
  -
  -SOURCE=..\..\include\axis\server\SoapSerializer.h
  +SOURCE=..\..\src\soap\SoapSerializer.h
   # End Source File
   # Begin Source File
   
   SOURCE=..\..\src\soap\URIMapping.h
  -# End Source File
  -# Begin Source File
  -
  -SOURCE=..\..\src\soap\XercesHandler.h
   # End Source File
   # Begin Source File