[jira] Created: (WSFCPP-71) Support polymorphism and circular reference in C++ parser generation

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

[jira] Created: (WSFCPP-71) Support polymorphism and circular reference in C++ parser generation

JIRA jira@wso2.org
Support polymorphism and circular reference in C++ parser generation
--------------------------------------------------------------------

                 Key: WSFCPP-71
                 URL: https://wso2.org/jira/browse/WSFCPP-71
             Project: WSO2 WSF/C++
          Issue Type: Improvement
    Affects Versions: 2.0.0
         Environment: $ uname -a
Linux clearwater 2.6.18-8.el5 #1 SMP Thu Mar 15 19:46:53 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux

$ gcc --version
gcc (GCC) 4.2.2
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ javac -version
javac 1.6.0_05

$ java -version
java version "1.6.0_05"
Java(TM) SE Runtime Environment (build 1.6.0_05-b13)
Java HotSpot(TM) Server VM (build 10.0-b19, mixed mode)
            Reporter: Russell Tempero
            Assignee: Uthaiyashankar
            Priority: High
         Attachments: full_polly_support.2009.08.12.diff

There are actually fixes to two different problems contained in this patch. I apologize for submitting them together but it would have been difficult to split the changes apart.

**************************************************************************************************************
Issue 1:

The first issue is with circular references defined in a WSDL. If you define your WSDL in such a way that ObjectType1 contains a field of type ObjectType2 which in turn contains a field of type ObjectType1, you will get a build error with the code generated by the current C++ code generator. The simple fix that I used was to put a forward declaration of each class in the header file for that class before the include statements for *all* other header files. For example, the top of ObjectType1.h would appear as the following:

#ifndef OBJECTTYPE1_H
#define OBJECTTYPE1_H

/**
 * various comments
       .
       .
       .
 */

namespace <name_of_namespace> {
    class ObjectType1;
}

#include ObjectType2.h
       .
       .
       .

A more advanced solution might be to add code in the code generator to only add the forward declaration if it is needed. However, this would probably end up being rather complex and I'm not sure it would buy much except a negligibly faster compile time.

The changes in the included patch file that deal with this issue are for modules/adb-codegen/src/org/apache/axis2/schema/template/CPPADBBeanTemplateHeader.xsl and are labeled with "// rnt-mod: start: forward declaration for circular references".

FYI: one of my colleges submitted a similar fix for the circular reference problem to the Axis2 project for the C code generator: https://issues.apache.org/jira/browse/AXIS2-4432

**************************************************************************************************************
Issue 2:

The second issue has to do with polymorphism support in the generated code from a WSDL that uses <extension base="">. My changes to support polymorphism were rather extensive and included alterations of the following files:

modules/adb-codegen/src/org/apache/axis2/schema/template/CPPADBBeanTemplateSource.xsl
modules/adb-codegen/src/org/apache/axis2/schema/template/CPPADBBeanTemplateHeader.xsl
modules/adb-codegen/src/org/apache/axis2/schema/BeanWriterMetaInfoHolder.java
modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
modules/adb-codegen/src/org/apache/axis2/schema/writer/CStructWriter.java
modules/adb-codegen/src/org/apache/axis2/schema/writer/CPPBeanWriter.java
modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java
modules/adb-codegen/src/org/apache/axis2/schema/writer/BeanWriter.java

You will probably want to review my changes to make sure they are suitable for inclusion in the WSF/C++ project. I only checked to make sure these changes worked with our WSDL, so there may be a few things that I am not taking into account. There may also be a better way to accomplish some of the things I am trying to do with some of my changes.

Off the top of my head, there are a couple areas of my changes that may need further attention.

Area 1: In order for the parser to create an object that corresponds to the passed in xsi:type, I created a member function for each class called createByType(). This function does not take namespaces into account and assumes you only have one class defined with a certain name accross all namespaces. This may need to be fixed if dealing with larger, more complex WSDLs.

Area 2: In order for each class to be aware of the different subtypes of itself, I had to wait until all data types were processed in the WSDL before writing out the classes for those types. I did this by means of a java function called deferredWrite(). However, in order to make everything work, I had to make changes to the SchemaCompiler class as well as the CStructWriter, JavaBeanWriter and BeanWriter classes. Ideally, we should only be making changes to the CPPBeanWriter class because that is the code generator to which we are adding polymorphism support. I was going to attempt to resolve this issues and make changes in such a way that only the C++ code generator java code was affected. However, I looks like I won't have time to work on this myself. Let me know if there is anyway I can help out though.

**************************************************************************************************************

I hope that these changes will be useful for enhancing the WSF/C++ project. Let me know if there is anything more I can do to help.

Russell

P.S. There is also a change included in the diff to modules/codegen/src/org/apache/axis2/wsdl/template/cpp/SkelHeaderTemplate.xsl. This was to change angle brackets to quotes on include statements to resolve an issue with compiling the generated code. If this issue has not already been dealt with, please feel free to commit this change as well.

--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://wso2.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

_______________________________________________
Wsf-c-dev mailing list
[hidden email]
https://wso2.org/cgi-bin/mailman/listinfo/wsf-c-dev
Reply | Threaded
Open this post in threaded view
|

[jira] Commented: (WSFCPP-71) Support polymorphism and circular reference in C++ parser generation

JIRA jira@wso2.org

    [ https://wso2.org/jira/browse/WSFCPP-71?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=28635#action_28635 ]

Nandika Jayawardana commented on WSFCPP-71:
-------------------------------------------

Thanks for attaching the patch.  I will look into this and apply the patch.

> Support polymorphism and circular reference in C++ parser generation
> --------------------------------------------------------------------
>
>                 Key: WSFCPP-71
>                 URL: https://wso2.org/jira/browse/WSFCPP-71
>             Project: WSO2 WSF/C++
>          Issue Type: Improvement
>    Affects Versions: 2.0.0
>         Environment: $ uname -a
> Linux clearwater 2.6.18-8.el5 #1 SMP Thu Mar 15 19:46:53 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux
> $ gcc --version
> gcc (GCC) 4.2.2
> Copyright (C) 2007 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> $ javac -version
> javac 1.6.0_05
> $ java -version
> java version "1.6.0_05"
> Java(TM) SE Runtime Environment (build 1.6.0_05-b13)
> Java HotSpot(TM) Server VM (build 10.0-b19, mixed mode)
>            Reporter: Russell Tempero
>            Assignee: Uthaiyashankar
>            Priority: High
>         Attachments: full_polly_support.2009.08.12.diff
>
>   Original Estimate: 1 day
>  Remaining Estimate: 1 day
>
> There are actually fixes to two different problems contained in this patch. I apologize for submitting them together but it would have been difficult to split the changes apart.
> **************************************************************************************************************
> Issue 1:
> The first issue is with circular references defined in a WSDL. If you define your WSDL in such a way that ObjectType1 contains a field of type ObjectType2 which in turn contains a field of type ObjectType1, you will get a build error with the code generated by the current C++ code generator. The simple fix that I used was to put a forward declaration of each class in the header file for that class before the include statements for *all* other header files. For example, the top of ObjectType1.h would appear as the following:
> #ifndef OBJECTTYPE1_H
> #define OBJECTTYPE1_H
> /**
>  * various comments
>        .
>        .
>        .
>  */
> namespace <name_of_namespace> {
>     class ObjectType1;
> }
> #include ObjectType2.h
>        .
>        .
>        .
> A more advanced solution might be to add code in the code generator to only add the forward declaration if it is needed. However, this would probably end up being rather complex and I'm not sure it would buy much except a negligibly faster compile time.
> The changes in the included patch file that deal with this issue are for modules/adb-codegen/src/org/apache/axis2/schema/template/CPPADBBeanTemplateHeader.xsl and are labeled with "// rnt-mod: start: forward declaration for circular references".
> FYI: one of my colleges submitted a similar fix for the circular reference problem to the Axis2 project for the C code generator: https://issues.apache.org/jira/browse/AXIS2-4432
> **************************************************************************************************************
> Issue 2:
> The second issue has to do with polymorphism support in the generated code from a WSDL that uses <extension base="">. My changes to support polymorphism were rather extensive and included alterations of the following files:
> modules/adb-codegen/src/org/apache/axis2/schema/template/CPPADBBeanTemplateSource.xsl
> modules/adb-codegen/src/org/apache/axis2/schema/template/CPPADBBeanTemplateHeader.xsl
> modules/adb-codegen/src/org/apache/axis2/schema/BeanWriterMetaInfoHolder.java
> modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
> modules/adb-codegen/src/org/apache/axis2/schema/writer/CStructWriter.java
> modules/adb-codegen/src/org/apache/axis2/schema/writer/CPPBeanWriter.java
> modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java
> modules/adb-codegen/src/org/apache/axis2/schema/writer/BeanWriter.java
> You will probably want to review my changes to make sure they are suitable for inclusion in the WSF/C++ project. I only checked to make sure these changes worked with our WSDL, so there may be a few things that I am not taking into account. There may also be a better way to accomplish some of the things I am trying to do with some of my changes.
> Off the top of my head, there are a couple areas of my changes that may need further attention.
> Area 1: In order for the parser to create an object that corresponds to the passed in xsi:type, I created a member function for each class called createByType(). This function does not take namespaces into account and assumes you only have one class defined with a certain name accross all namespaces. This may need to be fixed if dealing with larger, more complex WSDLs.
> Area 2: In order for each class to be aware of the different subtypes of itself, I had to wait until all data types were processed in the WSDL before writing out the classes for those types. I did this by means of a java function called deferredWrite(). However, in order to make everything work, I had to make changes to the SchemaCompiler class as well as the CStructWriter, JavaBeanWriter and BeanWriter classes. Ideally, we should only be making changes to the CPPBeanWriter class because that is the code generator to which we are adding polymorphism support. I was going to attempt to resolve this issues and make changes in such a way that only the C++ code generator java code was affected. However, I looks like I won't have time to work on this myself. Let me know if there is anyway I can help out though.
> **************************************************************************************************************
> I hope that these changes will be useful for enhancing the WSF/C++ project. Let me know if there is anything more I can do to help.
> Russell
> P.S. There is also a change included in the diff to modules/codegen/src/org/apache/axis2/wsdl/template/cpp/SkelHeaderTemplate.xsl. This was to change angle brackets to quotes on include statements to resolve an issue with compiling the generated code. If this issue has not already been dealt with, please feel free to commit this change as well.

--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://wso2.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

_______________________________________________
Wsf-c-dev mailing list
[hidden email]
https://wso2.org/cgi-bin/mailman/listinfo/wsf-c-dev
Reply | Threaded
Open this post in threaded view
|

[jira] Assigned: (WSFCPP-71) Support polymorphism and circular reference in C++ parser generation

JIRA jira@wso2.org
In reply to this post by JIRA jira@wso2.org

     [ https://wso2.org/jira/browse/WSFCPP-71?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Nandika Jayawardana reassigned WSFCPP-71:
-----------------------------------------

    Assignee: Nandika Jayawardana  (was: Uthaiyashankar)

> Support polymorphism and circular reference in C++ parser generation
> --------------------------------------------------------------------
>
>                 Key: WSFCPP-71
>                 URL: https://wso2.org/jira/browse/WSFCPP-71
>             Project: WSO2 WSF/C++
>          Issue Type: Improvement
>    Affects Versions: 2.0.0
>         Environment: $ uname -a
> Linux clearwater 2.6.18-8.el5 #1 SMP Thu Mar 15 19:46:53 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux
> $ gcc --version
> gcc (GCC) 4.2.2
> Copyright (C) 2007 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> $ javac -version
> javac 1.6.0_05
> $ java -version
> java version "1.6.0_05"
> Java(TM) SE Runtime Environment (build 1.6.0_05-b13)
> Java HotSpot(TM) Server VM (build 10.0-b19, mixed mode)
>            Reporter: Russell Tempero
>            Assignee: Nandika Jayawardana
>            Priority: High
>         Attachments: full_polly_support.2009.08.12.diff
>
>   Original Estimate: 1 day
>  Remaining Estimate: 1 day
>
> There are actually fixes to two different problems contained in this patch. I apologize for submitting them together but it would have been difficult to split the changes apart.
> **************************************************************************************************************
> Issue 1:
> The first issue is with circular references defined in a WSDL. If you define your WSDL in such a way that ObjectType1 contains a field of type ObjectType2 which in turn contains a field of type ObjectType1, you will get a build error with the code generated by the current C++ code generator. The simple fix that I used was to put a forward declaration of each class in the header file for that class before the include statements for *all* other header files. For example, the top of ObjectType1.h would appear as the following:
> #ifndef OBJECTTYPE1_H
> #define OBJECTTYPE1_H
> /**
>  * various comments
>        .
>        .
>        .
>  */
> namespace <name_of_namespace> {
>     class ObjectType1;
> }
> #include ObjectType2.h
>        .
>        .
>        .
> A more advanced solution might be to add code in the code generator to only add the forward declaration if it is needed. However, this would probably end up being rather complex and I'm not sure it would buy much except a negligibly faster compile time.
> The changes in the included patch file that deal with this issue are for modules/adb-codegen/src/org/apache/axis2/schema/template/CPPADBBeanTemplateHeader.xsl and are labeled with "// rnt-mod: start: forward declaration for circular references".
> FYI: one of my colleges submitted a similar fix for the circular reference problem to the Axis2 project for the C code generator: https://issues.apache.org/jira/browse/AXIS2-4432
> **************************************************************************************************************
> Issue 2:
> The second issue has to do with polymorphism support in the generated code from a WSDL that uses <extension base="">. My changes to support polymorphism were rather extensive and included alterations of the following files:
> modules/adb-codegen/src/org/apache/axis2/schema/template/CPPADBBeanTemplateSource.xsl
> modules/adb-codegen/src/org/apache/axis2/schema/template/CPPADBBeanTemplateHeader.xsl
> modules/adb-codegen/src/org/apache/axis2/schema/BeanWriterMetaInfoHolder.java
> modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
> modules/adb-codegen/src/org/apache/axis2/schema/writer/CStructWriter.java
> modules/adb-codegen/src/org/apache/axis2/schema/writer/CPPBeanWriter.java
> modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java
> modules/adb-codegen/src/org/apache/axis2/schema/writer/BeanWriter.java
> You will probably want to review my changes to make sure they are suitable for inclusion in the WSF/C++ project. I only checked to make sure these changes worked with our WSDL, so there may be a few things that I am not taking into account. There may also be a better way to accomplish some of the things I am trying to do with some of my changes.
> Off the top of my head, there are a couple areas of my changes that may need further attention.
> Area 1: In order for the parser to create an object that corresponds to the passed in xsi:type, I created a member function for each class called createByType(). This function does not take namespaces into account and assumes you only have one class defined with a certain name accross all namespaces. This may need to be fixed if dealing with larger, more complex WSDLs.
> Area 2: In order for each class to be aware of the different subtypes of itself, I had to wait until all data types were processed in the WSDL before writing out the classes for those types. I did this by means of a java function called deferredWrite(). However, in order to make everything work, I had to make changes to the SchemaCompiler class as well as the CStructWriter, JavaBeanWriter and BeanWriter classes. Ideally, we should only be making changes to the CPPBeanWriter class because that is the code generator to which we are adding polymorphism support. I was going to attempt to resolve this issues and make changes in such a way that only the C++ code generator java code was affected. However, I looks like I won't have time to work on this myself. Let me know if there is anyway I can help out though.
> **************************************************************************************************************
> I hope that these changes will be useful for enhancing the WSF/C++ project. Let me know if there is anything more I can do to help.
> Russell
> P.S. There is also a change included in the diff to modules/codegen/src/org/apache/axis2/wsdl/template/cpp/SkelHeaderTemplate.xsl. This was to change angle brackets to quotes on include statements to resolve an issue with compiling the generated code. If this issue has not already been dealt with, please feel free to commit this change as well.

--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://wso2.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

_______________________________________________
Wsf-c-dev mailing list
[hidden email]
https://wso2.org/cgi-bin/mailman/listinfo/wsf-c-dev
Reply | Threaded
Open this post in threaded view
|

[jira] Commented: (WSFCPP-71) Support polymorphism and circular reference in C++ parser generation

JIRA jira@wso2.org
In reply to this post by JIRA jira@wso2.org

    [ https://wso2.org/jira/browse/WSFCPP-71?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=28675#action_28675 ]

Nandika Jayawardana commented on WSFCPP-71:
-------------------------------------------

If possible, can you attach an svn patch.


> Support polymorphism and circular reference in C++ parser generation
> --------------------------------------------------------------------
>
>                 Key: WSFCPP-71
>                 URL: https://wso2.org/jira/browse/WSFCPP-71
>             Project: WSO2 WSF/C++
>          Issue Type: Improvement
>    Affects Versions: 2.0.0
>         Environment: $ uname -a
> Linux clearwater 2.6.18-8.el5 #1 SMP Thu Mar 15 19:46:53 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux
> $ gcc --version
> gcc (GCC) 4.2.2
> Copyright (C) 2007 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> $ javac -version
> javac 1.6.0_05
> $ java -version
> java version "1.6.0_05"
> Java(TM) SE Runtime Environment (build 1.6.0_05-b13)
> Java HotSpot(TM) Server VM (build 10.0-b19, mixed mode)
>            Reporter: Russell Tempero
>            Assignee: Nandika Jayawardana
>            Priority: High
>         Attachments: full_polly_support.2009.08.12.diff
>
>   Original Estimate: 1 day
>  Remaining Estimate: 1 day
>
> There are actually fixes to two different problems contained in this patch. I apologize for submitting them together but it would have been difficult to split the changes apart.
> **************************************************************************************************************
> Issue 1:
> The first issue is with circular references defined in a WSDL. If you define your WSDL in such a way that ObjectType1 contains a field of type ObjectType2 which in turn contains a field of type ObjectType1, you will get a build error with the code generated by the current C++ code generator. The simple fix that I used was to put a forward declaration of each class in the header file for that class before the include statements for *all* other header files. For example, the top of ObjectType1.h would appear as the following:
> #ifndef OBJECTTYPE1_H
> #define OBJECTTYPE1_H
> /**
>  * various comments
>        .
>        .
>        .
>  */
> namespace <name_of_namespace> {
>     class ObjectType1;
> }
> #include ObjectType2.h
>        .
>        .
>        .
> A more advanced solution might be to add code in the code generator to only add the forward declaration if it is needed. However, this would probably end up being rather complex and I'm not sure it would buy much except a negligibly faster compile time.
> The changes in the included patch file that deal with this issue are for modules/adb-codegen/src/org/apache/axis2/schema/template/CPPADBBeanTemplateHeader.xsl and are labeled with "// rnt-mod: start: forward declaration for circular references".
> FYI: one of my colleges submitted a similar fix for the circular reference problem to the Axis2 project for the C code generator: https://issues.apache.org/jira/browse/AXIS2-4432
> **************************************************************************************************************
> Issue 2:
> The second issue has to do with polymorphism support in the generated code from a WSDL that uses <extension base="">. My changes to support polymorphism were rather extensive and included alterations of the following files:
> modules/adb-codegen/src/org/apache/axis2/schema/template/CPPADBBeanTemplateSource.xsl
> modules/adb-codegen/src/org/apache/axis2/schema/template/CPPADBBeanTemplateHeader.xsl
> modules/adb-codegen/src/org/apache/axis2/schema/BeanWriterMetaInfoHolder.java
> modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
> modules/adb-codegen/src/org/apache/axis2/schema/writer/CStructWriter.java
> modules/adb-codegen/src/org/apache/axis2/schema/writer/CPPBeanWriter.java
> modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java
> modules/adb-codegen/src/org/apache/axis2/schema/writer/BeanWriter.java
> You will probably want to review my changes to make sure they are suitable for inclusion in the WSF/C++ project. I only checked to make sure these changes worked with our WSDL, so there may be a few things that I am not taking into account. There may also be a better way to accomplish some of the things I am trying to do with some of my changes.
> Off the top of my head, there are a couple areas of my changes that may need further attention.
> Area 1: In order for the parser to create an object that corresponds to the passed in xsi:type, I created a member function for each class called createByType(). This function does not take namespaces into account and assumes you only have one class defined with a certain name accross all namespaces. This may need to be fixed if dealing with larger, more complex WSDLs.
> Area 2: In order for each class to be aware of the different subtypes of itself, I had to wait until all data types were processed in the WSDL before writing out the classes for those types. I did this by means of a java function called deferredWrite(). However, in order to make everything work, I had to make changes to the SchemaCompiler class as well as the CStructWriter, JavaBeanWriter and BeanWriter classes. Ideally, we should only be making changes to the CPPBeanWriter class because that is the code generator to which we are adding polymorphism support. I was going to attempt to resolve this issues and make changes in such a way that only the C++ code generator java code was affected. However, I looks like I won't have time to work on this myself. Let me know if there is anyway I can help out though.
> **************************************************************************************************************
> I hope that these changes will be useful for enhancing the WSF/C++ project. Let me know if there is anything more I can do to help.
> Russell
> P.S. There is also a change included in the diff to modules/codegen/src/org/apache/axis2/wsdl/template/cpp/SkelHeaderTemplate.xsl. This was to change angle brackets to quotes on include statements to resolve an issue with compiling the generated code. If this issue has not already been dealt with, please feel free to commit this change as well.

--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://wso2.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

_______________________________________________
Wsf-c-dev mailing list
[hidden email]
https://wso2.org/cgi-bin/mailman/listinfo/wsf-c-dev
Reply | Threaded
Open this post in threaded view
|

[jira] Commented: (WSFCPP-71) Support polymorphism and circular reference in C++ parser generation

JIRA jira@wso2.org
In reply to this post by JIRA jira@wso2.org

    [ https://wso2.org/jira/browse/WSFCPP-71?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=28691#action_28691 ]

Russell Tempero commented on WSFCPP-71:
---------------------------------------

Sure. What is the URL for the SVN repository for wsdl2cpp? I poked around a bit on the site but couldn't seem to come up with a repository URL.

Russell

> Support polymorphism and circular reference in C++ parser generation
> --------------------------------------------------------------------
>
>                 Key: WSFCPP-71
>                 URL: https://wso2.org/jira/browse/WSFCPP-71
>             Project: WSO2 WSF/C++
>          Issue Type: Improvement
>    Affects Versions: 2.0.0
>         Environment: $ uname -a
> Linux clearwater 2.6.18-8.el5 #1 SMP Thu Mar 15 19:46:53 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux
> $ gcc --version
> gcc (GCC) 4.2.2
> Copyright (C) 2007 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> $ javac -version
> javac 1.6.0_05
> $ java -version
> java version "1.6.0_05"
> Java(TM) SE Runtime Environment (build 1.6.0_05-b13)
> Java HotSpot(TM) Server VM (build 10.0-b19, mixed mode)
>            Reporter: Russell Tempero
>            Assignee: Nandika Jayawardana
>            Priority: High
>         Attachments: full_polly_support.2009.08.12.diff
>
>   Original Estimate: 1 day
>  Remaining Estimate: 1 day
>
> There are actually fixes to two different problems contained in this patch. I apologize for submitting them together but it would have been difficult to split the changes apart.
> **************************************************************************************************************
> Issue 1:
> The first issue is with circular references defined in a WSDL. If you define your WSDL in such a way that ObjectType1 contains a field of type ObjectType2 which in turn contains a field of type ObjectType1, you will get a build error with the code generated by the current C++ code generator. The simple fix that I used was to put a forward declaration of each class in the header file for that class before the include statements for *all* other header files. For example, the top of ObjectType1.h would appear as the following:
> #ifndef OBJECTTYPE1_H
> #define OBJECTTYPE1_H
> /**
>  * various comments
>        .
>        .
>        .
>  */
> namespace <name_of_namespace> {
>     class ObjectType1;
> }
> #include ObjectType2.h
>        .
>        .
>        .
> A more advanced solution might be to add code in the code generator to only add the forward declaration if it is needed. However, this would probably end up being rather complex and I'm not sure it would buy much except a negligibly faster compile time.
> The changes in the included patch file that deal with this issue are for modules/adb-codegen/src/org/apache/axis2/schema/template/CPPADBBeanTemplateHeader.xsl and are labeled with "// rnt-mod: start: forward declaration for circular references".
> FYI: one of my colleges submitted a similar fix for the circular reference problem to the Axis2 project for the C code generator: https://issues.apache.org/jira/browse/AXIS2-4432
> **************************************************************************************************************
> Issue 2:
> The second issue has to do with polymorphism support in the generated code from a WSDL that uses <extension base="">. My changes to support polymorphism were rather extensive and included alterations of the following files:
> modules/adb-codegen/src/org/apache/axis2/schema/template/CPPADBBeanTemplateSource.xsl
> modules/adb-codegen/src/org/apache/axis2/schema/template/CPPADBBeanTemplateHeader.xsl
> modules/adb-codegen/src/org/apache/axis2/schema/BeanWriterMetaInfoHolder.java
> modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
> modules/adb-codegen/src/org/apache/axis2/schema/writer/CStructWriter.java
> modules/adb-codegen/src/org/apache/axis2/schema/writer/CPPBeanWriter.java
> modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java
> modules/adb-codegen/src/org/apache/axis2/schema/writer/BeanWriter.java
> You will probably want to review my changes to make sure they are suitable for inclusion in the WSF/C++ project. I only checked to make sure these changes worked with our WSDL, so there may be a few things that I am not taking into account. There may also be a better way to accomplish some of the things I am trying to do with some of my changes.
> Off the top of my head, there are a couple areas of my changes that may need further attention.
> Area 1: In order for the parser to create an object that corresponds to the passed in xsi:type, I created a member function for each class called createByType(). This function does not take namespaces into account and assumes you only have one class defined with a certain name accross all namespaces. This may need to be fixed if dealing with larger, more complex WSDLs.
> Area 2: In order for each class to be aware of the different subtypes of itself, I had to wait until all data types were processed in the WSDL before writing out the classes for those types. I did this by means of a java function called deferredWrite(). However, in order to make everything work, I had to make changes to the SchemaCompiler class as well as the CStructWriter, JavaBeanWriter and BeanWriter classes. Ideally, we should only be making changes to the CPPBeanWriter class because that is the code generator to which we are adding polymorphism support. I was going to attempt to resolve this issues and make changes in such a way that only the C++ code generator java code was affected. However, I looks like I won't have time to work on this myself. Let me know if there is anyway I can help out though.
> **************************************************************************************************************
> I hope that these changes will be useful for enhancing the WSF/C++ project. Let me know if there is anything more I can do to help.
> Russell
> P.S. There is also a change included in the diff to modules/codegen/src/org/apache/axis2/wsdl/template/cpp/SkelHeaderTemplate.xsl. This was to change angle brackets to quotes on include statements to resolve an issue with compiling the generated code. If this issue has not already been dealt with, please feel free to commit this change as well.

--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://wso2.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

_______________________________________________
Wsf-c-dev mailing list
[hidden email]
https://wso2.org/cgi-bin/mailman/listinfo/wsf-c-dev
Reply | Threaded
Open this post in threaded view
|

[jira] Commented: (WSFCPP-71) Support polymorphism and circular reference in C++ parser generation

JIRA jira@wso2.org
In reply to this post by JIRA jira@wso2.org

    [ https://wso2.org/jira/browse/WSFCPP-71?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=28693#action_28693 ]

Nandika Jayawardana commented on WSFCPP-71:
-------------------------------------------

You can get the svn checkout of WSF/CPP using url http://wso2.org/repos/wso2/trunk/wsf/cpp or https://wso2.org/repos/wso2/trunk/wsf/cpp

Regards
Nandika

> Support polymorphism and circular reference in C++ parser generation
> --------------------------------------------------------------------
>
>                 Key: WSFCPP-71
>                 URL: https://wso2.org/jira/browse/WSFCPP-71
>             Project: WSO2 WSF/C++
>          Issue Type: Improvement
>    Affects Versions: 2.0.0
>         Environment: $ uname -a
> Linux clearwater 2.6.18-8.el5 #1 SMP Thu Mar 15 19:46:53 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux
> $ gcc --version
> gcc (GCC) 4.2.2
> Copyright (C) 2007 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> $ javac -version
> javac 1.6.0_05
> $ java -version
> java version "1.6.0_05"
> Java(TM) SE Runtime Environment (build 1.6.0_05-b13)
> Java HotSpot(TM) Server VM (build 10.0-b19, mixed mode)
>            Reporter: Russell Tempero
>            Assignee: Nandika Jayawardana
>            Priority: High
>         Attachments: full_polly_support.2009.08.12.diff
>
>   Original Estimate: 1 day
>  Remaining Estimate: 1 day
>
> There are actually fixes to two different problems contained in this patch. I apologize for submitting them together but it would have been difficult to split the changes apart.
> **************************************************************************************************************
> Issue 1:
> The first issue is with circular references defined in a WSDL. If you define your WSDL in such a way that ObjectType1 contains a field of type ObjectType2 which in turn contains a field of type ObjectType1, you will get a build error with the code generated by the current C++ code generator. The simple fix that I used was to put a forward declaration of each class in the header file for that class before the include statements for *all* other header files. For example, the top of ObjectType1.h would appear as the following:
> #ifndef OBJECTTYPE1_H
> #define OBJECTTYPE1_H
> /**
>  * various comments
>        .
>        .
>        .
>  */
> namespace <name_of_namespace> {
>     class ObjectType1;
> }
> #include ObjectType2.h
>        .
>        .
>        .
> A more advanced solution might be to add code in the code generator to only add the forward declaration if it is needed. However, this would probably end up being rather complex and I'm not sure it would buy much except a negligibly faster compile time.
> The changes in the included patch file that deal with this issue are for modules/adb-codegen/src/org/apache/axis2/schema/template/CPPADBBeanTemplateHeader.xsl and are labeled with "// rnt-mod: start: forward declaration for circular references".
> FYI: one of my colleges submitted a similar fix for the circular reference problem to the Axis2 project for the C code generator: https://issues.apache.org/jira/browse/AXIS2-4432
> **************************************************************************************************************
> Issue 2:
> The second issue has to do with polymorphism support in the generated code from a WSDL that uses <extension base="">. My changes to support polymorphism were rather extensive and included alterations of the following files:
> modules/adb-codegen/src/org/apache/axis2/schema/template/CPPADBBeanTemplateSource.xsl
> modules/adb-codegen/src/org/apache/axis2/schema/template/CPPADBBeanTemplateHeader.xsl
> modules/adb-codegen/src/org/apache/axis2/schema/BeanWriterMetaInfoHolder.java
> modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
> modules/adb-codegen/src/org/apache/axis2/schema/writer/CStructWriter.java
> modules/adb-codegen/src/org/apache/axis2/schema/writer/CPPBeanWriter.java
> modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java
> modules/adb-codegen/src/org/apache/axis2/schema/writer/BeanWriter.java
> You will probably want to review my changes to make sure they are suitable for inclusion in the WSF/C++ project. I only checked to make sure these changes worked with our WSDL, so there may be a few things that I am not taking into account. There may also be a better way to accomplish some of the things I am trying to do with some of my changes.
> Off the top of my head, there are a couple areas of my changes that may need further attention.
> Area 1: In order for the parser to create an object that corresponds to the passed in xsi:type, I created a member function for each class called createByType(). This function does not take namespaces into account and assumes you only have one class defined with a certain name accross all namespaces. This may need to be fixed if dealing with larger, more complex WSDLs.
> Area 2: In order for each class to be aware of the different subtypes of itself, I had to wait until all data types were processed in the WSDL before writing out the classes for those types. I did this by means of a java function called deferredWrite(). However, in order to make everything work, I had to make changes to the SchemaCompiler class as well as the CStructWriter, JavaBeanWriter and BeanWriter classes. Ideally, we should only be making changes to the CPPBeanWriter class because that is the code generator to which we are adding polymorphism support. I was going to attempt to resolve this issues and make changes in such a way that only the C++ code generator java code was affected. However, I looks like I won't have time to work on this myself. Let me know if there is anyway I can help out though.
> **************************************************************************************************************
> I hope that these changes will be useful for enhancing the WSF/C++ project. Let me know if there is anything more I can do to help.
> Russell
> P.S. There is also a change included in the diff to modules/codegen/src/org/apache/axis2/wsdl/template/cpp/SkelHeaderTemplate.xsl. This was to change angle brackets to quotes on include statements to resolve an issue with compiling the generated code. If this issue has not already been dealt with, please feel free to commit this change as well.

--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://wso2.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

_______________________________________________
Wsf-c-dev mailing list
[hidden email]
https://wso2.org/cgi-bin/mailman/listinfo/wsf-c-dev
Reply | Threaded
Open this post in threaded view
|

[jira] Updated: (WSFCPP-71) Support polymorphism and circular reference in C++ parser generation

JIRA jira@wso2.org
In reply to this post by JIRA jira@wso2.org

     [ https://wso2.org/jira/browse/WSFCPP-71?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Russell Tempero updated WSFCPP-71:
----------------------------------

    Attachment: full_poly_support.2009.08.12.svn.diff

Hi Nandika,

I have attached the requested SVN diff as full_poly_support.2009.08.12.svn.diff.

Please note that there are two important differences between this diff and the one that I attached previously. The first difference is that I fixed a problem with my previous changes where inherited fields were not returned in SOAP responses. The second difference is that I fixed a problem where my last set of changes did not support multi-level inheritance. For example: ObjectType3 extends ObjectType2 which extends ObjectType1.

Let me know if you notice any problems or if there are any ways that I can further assist you.

Thanks,
Russell

> Support polymorphism and circular reference in C++ parser generation
> --------------------------------------------------------------------
>
>                 Key: WSFCPP-71
>                 URL: https://wso2.org/jira/browse/WSFCPP-71
>             Project: WSO2 WSF/C++
>          Issue Type: Improvement
>    Affects Versions: 2.0.0
>         Environment: $ uname -a
> Linux clearwater 2.6.18-8.el5 #1 SMP Thu Mar 15 19:46:53 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux
> $ gcc --version
> gcc (GCC) 4.2.2
> Copyright (C) 2007 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> $ javac -version
> javac 1.6.0_05
> $ java -version
> java version "1.6.0_05"
> Java(TM) SE Runtime Environment (build 1.6.0_05-b13)
> Java HotSpot(TM) Server VM (build 10.0-b19, mixed mode)
>            Reporter: Russell Tempero
>            Assignee: Nandika Jayawardana
>            Priority: High
>         Attachments: full_polly_support.2009.08.12.diff, full_poly_support.2009.08.12.svn.diff
>
>   Original Estimate: 1 day
>  Remaining Estimate: 1 day
>
> There are actually fixes to two different problems contained in this patch. I apologize for submitting them together but it would have been difficult to split the changes apart.
> **************************************************************************************************************
> Issue 1:
> The first issue is with circular references defined in a WSDL. If you define your WSDL in such a way that ObjectType1 contains a field of type ObjectType2 which in turn contains a field of type ObjectType1, you will get a build error with the code generated by the current C++ code generator. The simple fix that I used was to put a forward declaration of each class in the header file for that class before the include statements for *all* other header files. For example, the top of ObjectType1.h would appear as the following:
> #ifndef OBJECTTYPE1_H
> #define OBJECTTYPE1_H
> /**
>  * various comments
>        .
>        .
>        .
>  */
> namespace <name_of_namespace> {
>     class ObjectType1;
> }
> #include ObjectType2.h
>        .
>        .
>        .
> A more advanced solution might be to add code in the code generator to only add the forward declaration if it is needed. However, this would probably end up being rather complex and I'm not sure it would buy much except a negligibly faster compile time.
> The changes in the included patch file that deal with this issue are for modules/adb-codegen/src/org/apache/axis2/schema/template/CPPADBBeanTemplateHeader.xsl and are labeled with "// rnt-mod: start: forward declaration for circular references".
> FYI: one of my colleges submitted a similar fix for the circular reference problem to the Axis2 project for the C code generator: https://issues.apache.org/jira/browse/AXIS2-4432
> **************************************************************************************************************
> Issue 2:
> The second issue has to do with polymorphism support in the generated code from a WSDL that uses <extension base="">. My changes to support polymorphism were rather extensive and included alterations of the following files:
> modules/adb-codegen/src/org/apache/axis2/schema/template/CPPADBBeanTemplateSource.xsl
> modules/adb-codegen/src/org/apache/axis2/schema/template/CPPADBBeanTemplateHeader.xsl
> modules/adb-codegen/src/org/apache/axis2/schema/BeanWriterMetaInfoHolder.java
> modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
> modules/adb-codegen/src/org/apache/axis2/schema/writer/CStructWriter.java
> modules/adb-codegen/src/org/apache/axis2/schema/writer/CPPBeanWriter.java
> modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java
> modules/adb-codegen/src/org/apache/axis2/schema/writer/BeanWriter.java
> You will probably want to review my changes to make sure they are suitable for inclusion in the WSF/C++ project. I only checked to make sure these changes worked with our WSDL, so there may be a few things that I am not taking into account. There may also be a better way to accomplish some of the things I am trying to do with some of my changes.
> Off the top of my head, there are a couple areas of my changes that may need further attention.
> Area 1: In order for the parser to create an object that corresponds to the passed in xsi:type, I created a member function for each class called createByType(). This function does not take namespaces into account and assumes you only have one class defined with a certain name accross all namespaces. This may need to be fixed if dealing with larger, more complex WSDLs.
> Area 2: In order for each class to be aware of the different subtypes of itself, I had to wait until all data types were processed in the WSDL before writing out the classes for those types. I did this by means of a java function called deferredWrite(). However, in order to make everything work, I had to make changes to the SchemaCompiler class as well as the CStructWriter, JavaBeanWriter and BeanWriter classes. Ideally, we should only be making changes to the CPPBeanWriter class because that is the code generator to which we are adding polymorphism support. I was going to attempt to resolve this issues and make changes in such a way that only the C++ code generator java code was affected. However, I looks like I won't have time to work on this myself. Let me know if there is anyway I can help out though.
> **************************************************************************************************************
> I hope that these changes will be useful for enhancing the WSF/C++ project. Let me know if there is anything more I can do to help.
> Russell
> P.S. There is also a change included in the diff to modules/codegen/src/org/apache/axis2/wsdl/template/cpp/SkelHeaderTemplate.xsl. This was to change angle brackets to quotes on include statements to resolve an issue with compiling the generated code. If this issue has not already been dealt with, please feel free to commit this change as well.

--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://wso2.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

_______________________________________________
Wsf-c-dev mailing list
[hidden email]
https://wso2.org/cgi-bin/mailman/listinfo/wsf-c-dev
Reply | Threaded
Open this post in threaded view
|

[jira] Commented: (WSFCPP-71) Support polymorphism and circular reference in C++ parser generation

JIRA jira@wso2.org
In reply to this post by JIRA jira@wso2.org

    [ https://wso2.org/jira/browse/WSFCPP-71?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=28695#action_28695 ]

Russell Tempero commented on WSFCPP-71:
---------------------------------------

I just remembered that I am not defining the "xsi" name space on SOAP responses or checking for it on requests. This is probably something that will need to be cleaned up for a proper fix.

Russell

> Support polymorphism and circular reference in C++ parser generation
> --------------------------------------------------------------------
>
>                 Key: WSFCPP-71
>                 URL: https://wso2.org/jira/browse/WSFCPP-71
>             Project: WSO2 WSF/C++
>          Issue Type: Improvement
>    Affects Versions: 2.0.0
>         Environment: $ uname -a
> Linux clearwater 2.6.18-8.el5 #1 SMP Thu Mar 15 19:46:53 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux
> $ gcc --version
> gcc (GCC) 4.2.2
> Copyright (C) 2007 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> $ javac -version
> javac 1.6.0_05
> $ java -version
> java version "1.6.0_05"
> Java(TM) SE Runtime Environment (build 1.6.0_05-b13)
> Java HotSpot(TM) Server VM (build 10.0-b19, mixed mode)
>            Reporter: Russell Tempero
>            Assignee: Nandika Jayawardana
>            Priority: High
>         Attachments: full_polly_support.2009.08.12.diff, full_poly_support.2009.08.12.svn.diff
>
>   Original Estimate: 1 day
>  Remaining Estimate: 1 day
>
> There are actually fixes to two different problems contained in this patch. I apologize for submitting them together but it would have been difficult to split the changes apart.
> **************************************************************************************************************
> Issue 1:
> The first issue is with circular references defined in a WSDL. If you define your WSDL in such a way that ObjectType1 contains a field of type ObjectType2 which in turn contains a field of type ObjectType1, you will get a build error with the code generated by the current C++ code generator. The simple fix that I used was to put a forward declaration of each class in the header file for that class before the include statements for *all* other header files. For example, the top of ObjectType1.h would appear as the following:
> #ifndef OBJECTTYPE1_H
> #define OBJECTTYPE1_H
> /**
>  * various comments
>        .
>        .
>        .
>  */
> namespace <name_of_namespace> {
>     class ObjectType1;
> }
> #include ObjectType2.h
>        .
>        .
>        .
> A more advanced solution might be to add code in the code generator to only add the forward declaration if it is needed. However, this would probably end up being rather complex and I'm not sure it would buy much except a negligibly faster compile time.
> The changes in the included patch file that deal with this issue are for modules/adb-codegen/src/org/apache/axis2/schema/template/CPPADBBeanTemplateHeader.xsl and are labeled with "// rnt-mod: start: forward declaration for circular references".
> FYI: one of my colleges submitted a similar fix for the circular reference problem to the Axis2 project for the C code generator: https://issues.apache.org/jira/browse/AXIS2-4432
> **************************************************************************************************************
> Issue 2:
> The second issue has to do with polymorphism support in the generated code from a WSDL that uses <extension base="">. My changes to support polymorphism were rather extensive and included alterations of the following files:
> modules/adb-codegen/src/org/apache/axis2/schema/template/CPPADBBeanTemplateSource.xsl
> modules/adb-codegen/src/org/apache/axis2/schema/template/CPPADBBeanTemplateHeader.xsl
> modules/adb-codegen/src/org/apache/axis2/schema/BeanWriterMetaInfoHolder.java
> modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
> modules/adb-codegen/src/org/apache/axis2/schema/writer/CStructWriter.java
> modules/adb-codegen/src/org/apache/axis2/schema/writer/CPPBeanWriter.java
> modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java
> modules/adb-codegen/src/org/apache/axis2/schema/writer/BeanWriter.java
> You will probably want to review my changes to make sure they are suitable for inclusion in the WSF/C++ project. I only checked to make sure these changes worked with our WSDL, so there may be a few things that I am not taking into account. There may also be a better way to accomplish some of the things I am trying to do with some of my changes.
> Off the top of my head, there are a couple areas of my changes that may need further attention.
> Area 1: In order for the parser to create an object that corresponds to the passed in xsi:type, I created a member function for each class called createByType(). This function does not take namespaces into account and assumes you only have one class defined with a certain name accross all namespaces. This may need to be fixed if dealing with larger, more complex WSDLs.
> Area 2: In order for each class to be aware of the different subtypes of itself, I had to wait until all data types were processed in the WSDL before writing out the classes for those types. I did this by means of a java function called deferredWrite(). However, in order to make everything work, I had to make changes to the SchemaCompiler class as well as the CStructWriter, JavaBeanWriter and BeanWriter classes. Ideally, we should only be making changes to the CPPBeanWriter class because that is the code generator to which we are adding polymorphism support. I was going to attempt to resolve this issues and make changes in such a way that only the C++ code generator java code was affected. However, I looks like I won't have time to work on this myself. Let me know if there is anyway I can help out though.
> **************************************************************************************************************
> I hope that these changes will be useful for enhancing the WSF/C++ project. Let me know if there is anything more I can do to help.
> Russell
> P.S. There is also a change included in the diff to modules/codegen/src/org/apache/axis2/wsdl/template/cpp/SkelHeaderTemplate.xsl. This was to change angle brackets to quotes on include statements to resolve an issue with compiling the generated code. If this issue has not already been dealt with, please feel free to commit this change as well.

--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://wso2.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

_______________________________________________
Wsf-c-dev mailing list
[hidden email]
https://wso2.org/cgi-bin/mailman/listinfo/wsf-c-dev