You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by ax...@ws.apache.org on 2004/10/14 11:25:51 UTC

[jira] Created: (AXISCPP-202) enums cause name clashes

Message:

  A new issue has been created in JIRA.

---------------------------------------------------------------------
View the issue:
  http://issues.apache.org/jira/browse/AXISCPP-202

Here is an overview of the issue:
---------------------------------------------------------------------
        Key: AXISCPP-202
    Summary: enums cause name clashes
       Type: Bug

     Status: Unassigned
   Priority: Major

    Project: Axis-C++
 Components: 
             Basic Architecture
   Versions:
             1.3 Final

   Assignee: 
   Reporter: Mark Whitlock

    Created: Thu, 14 Oct 2004 2:25 AM
    Updated: Thu, 14 Oct 2004 2:25 AM

Description:

> --- Valentin Kuznetsov <vk...@yahoo.com> wrote:
> 
> > 2) Add namespace around all enums. I found that Axis
> > conflicts with other software we use who also have
> > enum with CRITICAL, INFO, WARN keywords. If we'll wrap
> > those enum in axis into axis specific namespace all
> > existing and potential future problems will go away.
> > 
> 
> +1
> 
> Samisa...
> 

Simply putting namespaces around these enums would break C applications, since C does not support namespaces. I agree this is the right solution for C++. For C, it would be good to prefix all enums with AXIS_. I don't think AXIS_SEVERITY_LEVEL needs to be externalised anyway, since it is only used by trace and AxisTrace.h is not external. There is also a problem with some externalised #defines like XML_Ch and SOAPACTIONHEADER which could also clash.

So I propose move AXIS_SEVERITY_LEVEL to AxisTrace.h, for C++ put namespaces around all enums, for C prefix all enums with AXIS_, and for *both* C and C++ prefix all #defines with AXIS_.

Unfortunately this will require applications changing, WSDL2WS changes and stubs being regenerated when users move to 1.3. Is this critical for 1.3 or should we just move AXIS_SEVERITY_LEVEL to AxisTrace.h in 1.3 and fix it all properly for 1.4? 
 



---------------------------------------------------------------------
JIRA INFORMATION:
This message is automatically generated by JIRA.

If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa

If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


[jira] Resolved: (AXISCPP-202) enums cause name clashes

Posted by "Mark Whitlock (JIRA)" <ax...@ws.apache.org>.
     [ http://nagoya.apache.org/jira/browse/AXISCPP-202?page=history ]
     
Mark Whitlock resolved AXISCPP-202:
-----------------------------------

     Resolution: Fixed
    Fix Version: 1.5 Alpha

I have fixed this by putting all external definitions in the axiscpp namespace.

> enums cause name clashes
> ------------------------
>
>          Key: AXISCPP-202
>          URL: http://nagoya.apache.org/jira/browse/AXISCPP-202
>      Project: Axis-C++
>         Type: Bug
>   Components: Basic Architecture
>     Versions: 1.3 Final
>     Reporter: Mark Whitlock
>     Assignee: Mark Whitlock
>      Fix For: 1.5 Alpha

>
> > --- Valentin Kuznetsov <vk...@yahoo.com> wrote:
> > 
> > > 2) Add namespace around all enums. I found that Axis
> > > conflicts with other software we use who also have
> > > enum with CRITICAL, INFO, WARN keywords. If we'll wrap
> > > those enum in axis into axis specific namespace all
> > > existing and potential future problems will go away.
> > > 
> > 
> > +1
> > 
> > Samisa...
> > 
> Simply putting namespaces around these enums would break C applications, since C does not support namespaces. I agree this is the right solution for C++. For C, it would be good to prefix all enums with AXIS_. I don't think AXIS_SEVERITY_LEVEL needs to be externalised anyway, since it is only used by trace and AxisTrace.h is not external. There is also a problem with some externalised #defines like XML_Ch and SOAPACTIONHEADER which could also clash.
> So I propose move AXIS_SEVERITY_LEVEL to AxisTrace.h, for C++ put namespaces around all enums, for C prefix all enums with AXIS_, and for *both* C and C++ prefix all #defines with AXIS_.
> Unfortunately this will require applications changing, WSDL2WS changes and stubs being regenerated when users move to 1.3. Is this critical for 1.3 or should we just move AXIS_SEVERITY_LEVEL to AxisTrace.h in 1.3 and fix it all properly for 1.4? 
>  

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://nagoya.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


[jira] Closed: (AXISCPP-202) enums cause name clashes

Posted by "Adrian Dick (JIRA)" <ax...@ws.apache.org>.
     [ http://issues.apache.org/jira/browse/AXISCPP-202?page=all ]
     
Adrian Dick closed AXISCPP-202:
-------------------------------


> enums cause name clashes
> ------------------------
>
>          Key: AXISCPP-202
>          URL: http://issues.apache.org/jira/browse/AXISCPP-202
>      Project: Axis-C++
>         Type: Bug

>   Components: Basic Architecture
>     Versions: 1.3 Final
>     Reporter: Mark Whitlock
>     Assignee: Mark Whitlock
>      Fix For: 1.5 Alpha

>
> > --- Valentin Kuznetsov <vk...@yahoo.com> wrote:
> > 
> > > 2) Add namespace around all enums. I found that Axis
> > > conflicts with other software we use who also have
> > > enum with CRITICAL, INFO, WARN keywords. If we'll wrap
> > > those enum in axis into axis specific namespace all
> > > existing and potential future problems will go away.
> > > 
> > 
> > +1
> > 
> > Samisa...
> > 
> Simply putting namespaces around these enums would break C applications, since C does not support namespaces. I agree this is the right solution for C++. For C, it would be good to prefix all enums with AXIS_. I don't think AXIS_SEVERITY_LEVEL needs to be externalised anyway, since it is only used by trace and AxisTrace.h is not external. There is also a problem with some externalised #defines like XML_Ch and SOAPACTIONHEADER which could also clash.
> So I propose move AXIS_SEVERITY_LEVEL to AxisTrace.h, for C++ put namespaces around all enums, for C prefix all enums with AXIS_, and for *both* C and C++ prefix all #defines with AXIS_.
> Unfortunately this will require applications changing, WSDL2WS changes and stubs being regenerated when users move to 1.3. Is this critical for 1.3 or should we just move AXIS_SEVERITY_LEVEL to AxisTrace.h in 1.3 and fix it all properly for 1.4? 
>  

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