[ 
https://issues.apache.org/jira/browse/QPID-1780?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12723693#action_12723693
 ] 

Pete MacKinnon commented on QPID-1780:
--------------------------------------

This also still affects the existing QMF C++ API which is generated from 
qmf-gen:

boost/iterator/iterator_facade.hpp
^
|
qpid/framing/Buffer.h
^
|
qpid/management/ManagementObject.h


> Remove boost dependencies from C++ client API
> ---------------------------------------------
>
>                 Key: QPID-1780
>                 URL: https://issues.apache.org/jira/browse/QPID-1780
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Client
>    Affects Versions: M4
>            Reporter: Steve Huston
>
> Currently there is a dependency on Boost headers being present when building 
> a Qpid client application. I believe that Qpid client programmers should not 
> have to be exposed to Boost just for building Qpid applications. It's a Bad 
> Idea to impose a requirement such as this on all users - Boost is a 
> supporting artifact of the implementation and shouldn't be a requirement for 
> users.
> More pointedly, it could cause version skew on Windows installed kits. Unlike 
> on RHEL, Windows doesn't offer Boost packages as part of the vendor-supplied 
> OS kit. So, Windows users needing Boost must get their kit somewhere else. 
> This makes it impossible to predict what version of Boost will (or won't) be 
> on a user's system. To take care of this, the Windows installable kit is 
> currently including the needed Boost DLLs that the kit is built against 
> within the install. This removes the need to have Boost installed by the user 
> prior to installing/using Qpid and isolates Qpid's binaries from whatever 
> Boost version is present if there is one. This is a Good Thing except that 
> when trying to build a client app (such as the Qpid examples) Boost ends up 
> getting pulled in from the client API at build time. This is bad because the 
> user now needs to go install Boost. If it's not the same version that the 
> installed kit was built against, there's a chance that object sizes, methods, 
> etc. will differ between what Qpid was built with and what the user installed.
> The case that brought this up immediately is that qpid/SessionId.h derives 
> from boost::totally_ordered1<SessionId>. Since 
> qpid/client/Session_Base_0_10.h defines a method which returns a SessionId by 
> value, it needs to pull in SessionId.h which yields a compile error if Boost 
> is not available.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to