-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/15747/#review29229
-----------------------------------------------------------


I really don't like this approach very much:

* I think that from the user point of view it is too easy to ignore the 
deprecation warnings.
* The changes are somewhat clunky.

I think it would be better to make application writers who really want to use 
the API turn it on explicitly with a #define. Perhaps called 
ALLOW_DEPRECATED_QMF_APIS.

You can implement that with the following snippet at the head of every API file 
that is deprecated.

Something like:

#if !defined(ALLOW_DEPRECATED_QMF_APIS) && !defined(QMF_EXPORT)
# error "In order to use the deprecated QMF Console API you need to define 
ALLOW_DEPRECATED_QMF_APIS"
#endif

This approach won't work well for deprecating individual API calls but in this 
case where we deprecate an entire API it is fine.

(Thanks to Justin for the explicit allow suggestion)

- Andrew Stitcher


On Nov. 21, 2013, 1:19 p.m., Kenneth Giusti wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15747/
> -----------------------------------------------------------
> 
> (Updated Nov. 21, 2013, 1:19 p.m.)
> 
> 
> Review request for qpid, Andrew Stitcher and Ted Ross.
> 
> 
> Bugs: qpid-5369
>     https://issues.apache.org/jira/browse/qpid-5369
> 
> 
> Repository: qpid
> 
> 
> Description
> -------
> 
> Causes the compiler to issue deprecation warnings when the C++ Agent or 
> Console API classes are used by applications.  Works for GNU C and Microsoft 
> Visual C++ only.
> 
> Update: I'd like this change considered for 0.26 release, so please indicate 
> whether you approve this change on the jira 
> https://issues.apache.org/jira/browse/qpid-5369 so I can ping Justin for 
> approval.
> 
> thanks
> 
> 
> Diffs
> -----
> 
>   /trunk/qpid/cpp/bindings/qmf2/examples/cpp/CMakeLists.txt 1543123 
>   /trunk/qpid/cpp/bindings/qmf2/python/CMakeLists.txt 1543123 
>   /trunk/qpid/cpp/bindings/qmf2/ruby/CMakeLists.txt 1543123 
>   /trunk/qpid/cpp/include/qmf/Agent.h 1543123 
>   /trunk/qpid/cpp/include/qmf/AgentEvent.h 1543123 
>   /trunk/qpid/cpp/include/qmf/AgentSession.h 1543123 
>   /trunk/qpid/cpp/include/qmf/ConsoleEvent.h 1543123 
>   /trunk/qpid/cpp/include/qmf/ConsoleSession.h 1543123 
>   /trunk/qpid/cpp/include/qmf/Data.h 1543123 
>   /trunk/qpid/cpp/include/qmf/DataAddr.h 1543123 
>   /trunk/qpid/cpp/include/qmf/ImportExport.h 1543123 
>   /trunk/qpid/cpp/include/qmf/Query.h 1543123 
>   /trunk/qpid/cpp/include/qmf/Schema.h 1543123 
>   /trunk/qpid/cpp/include/qmf/SchemaId.h 1543123 
>   /trunk/qpid/cpp/include/qmf/SchemaMethod.h 1543123 
>   /trunk/qpid/cpp/include/qmf/SchemaProperty.h 1543123 
>   /trunk/qpid/cpp/include/qmf/Subscription.h 1543123 
>   /trunk/qpid/cpp/include/qmf/exceptions.h 1543123 
>   /trunk/qpid/cpp/include/qmf/posix/EventNotifier.h 1543123 
> 
> Diff: https://reviews.apache.org/r/15747/diff/
> 
> 
> Testing
> -------
> 
> Removed the warning suppression flags and built the Agent and Console 
> examples on linux and windows - validated that the proper deprecation 
> warnings were issued.
> 
> 
> Thanks,
> 
> Kenneth Giusti
> 
>

Reply via email to