[
https://issues.apache.org/jira/browse/AMQNET-454?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14096005#comment-14096005
]
Chuck Rolke commented on AMQNET-454:
------------------------------------
Hi Jim,
Thanks for your attention to my checkins. Maybe you could advise me on how best
to proceed with my unmanaged content.
h4. Populating \lib with Apache Qpid vendor files
There is an issue with copying the Apache Qpid vendor files from the local
.nant repo into lib\net-2.0 or lib\net-4.0. For net-2.0 or net-4.0 the Qpid
vendor files are delivered in debug and release sets.
h5. Distinguishing debug from release
* qpid library file names have a "d" suffix.
* boost library file names have an extra "-gd" embedded in them.
* The library binding org.apache.qpid.messaging.dll files have the *identical
name* for debug and release.
h5. Distingushing net-2.0 from net-4.0
* qpid library file names are the same net-2.0 and net-4.0
* boost library file names have the vc compiler version embedded in them:
** net-2.0 identified by "-vc90"
** net-4.0 identified by "-vc100"
* The library binding org.apache.qpid.messaging.dll files have the *identical
name* for net-2.0 and net-4.0
It would be best if the net-2.0/net-4.0 debug/release files could be kept in
four directories in \lib. Without debug and release folders this isn't possible
and the debug and release files wind up on top of each other. This isn't a huge
issue until the release version of org.apache.qpid.messaging.dll overwrites the
debug version. As soon as the debug version of code is rebuilt in the \build
folder the release version of the dll is copied into the build debug folder and
nothing works after that. The .NET runtime error messages are not helpful in
diagnosing the issue: it says it can't load a dll but it does not explain why.
h4. Populating \build with libraries from \lib
Scripts must account for the file naming variations so that all the desired
files wind up in the proper places in build. It does not hurt to have the
unmanaged debug and release libraries both installed in the build folder but
care must be taken not to install the wrong build variant of
org.apache.qpid.messaging.dll.
h4. How to proceed
I notice that products like NUnit dodge this issue by having the same file in
the \debug and \release in the .nant local repo. I believe that org.apache.qpid
could do the same thing. If the same file set were in two places in the local
repo then there would never be a conflict in the \lib folders nor in the \build
folders. Release versions of products built on top of debug versions of the
qpid unmanged code would still work correctly.
There is still a conflict between the net-2.0 and the net-4.0 versions of boost
file names but that can be solved by adding the other names to the file copy
list added in http://svn.apache.org/r1617620
I'll give this a try before my next commit and see how it goes. Please reply if
you have ideas on how to proceed.
> Add Apache Qpid provider to NMS
> -------------------------------
>
> Key: AMQNET-454
> URL: https://issues.apache.org/jira/browse/AMQNET-454
> Project: ActiveMQ .Net
> Issue Type: New Feature
> Components: NMS
> Affects Versions: 1.6.0
> Reporter: Chuck Rolke
> Assignee: Jim Gomes
> Attachments: Apache.NMS.AMQP-21-Add-Map-Text-Message-tests.patch,
> Apache.NMS.AMQP-22-add-more-tests.patch,
> Apache.NMS.AMQP-23a-MessageDeliveryTest.cs.patch,
> Apache.NMS.AMQP-23b-MSConnectionFactoryTest.cs.patch,
> Apache.NMS.AMQP-23c-NmsConsoleTracer.cs.patch,
> Apache.NMS.AMQP-23d-addTraceStatements.patch,
> Apache.NMS.AMQP-23e-addFilesToTestProject.patch,
> Apache.NMS.AMQP-24-tidy-up.patch, Apache.NMS.AMQP-25-use-qpid-0.28.patch,
> Apache.NMS.AMQP-26-hook-in-session-ack.patch,
> Apache.NMS.AMQP-27-nant-unmanaged-copy.patch,
> Apache.NMS.AMQP-28-close-qpid-sender-receiver.patch,
> Apache.NMS.AMQP-Add-message-cloning-19.patch,
> Apache.NMS.AMQP-add-connection-property-table-17.patch,
> Apache.NMS.AMQP-add-hello-world-example-11.patch,
> Apache.NMS.AMQP-add-hello-world-example-retry-12.patch,
> Apache.NMS.AMQP-add-hello-world-to-vs2008-18.patch,
> Apache.NMS.AMQP-add-message-conversions-06.patch,
> Apache.NMS.AMQP-add-message-test-20.patch,
> Apache.NMS.AMQP-add-topic-05.patch,
> Apache.NMS.AMQP-connectionProperties-07.patch,
> Apache.NMS.AMQP-copyrights-conn-str-fix-09.patch,
> Apache.NMS.AMQP-fix-destination-to-use-qpid-address-10.patch,
> Apache.NMS.AMQP-fix-helloworld-13.patch,
> Apache.NMS.AMQP-fix-list-message-body-15.patch,
> Apache.NMS.AMQP-fix-map-message-body-14.patch,
> Apache.NMS.AMQP-fix-replyTo-and-receive-timeouts-16.patch,
> Apache.NMS.AMQP-object-lifecycle-04.patch,
> Apache.NMS.AMQP-provider-configs-03.patch,
> Apache.NMS.AMQP-qpid-object-lifecycle-02.patch,
> Apache.NMS.AMQP-set-connection-credentials-08.patch, RELEASE.txt,
> vendor-QPid-nant-01.patch
>
>
> NMS includes various providers ActiveMQ, STOMP, MSMQ, EMS, and WCF. This
> issue proposes to add [Apache Qpid|http://qpid.apache.org/index.html] as
> another provider.
> Qpid has a [Messaging .NET
> Binding|http://qpid.apache.org/releases/qpid-0.24/programming/book/ch05.html]
> that is layered on top of the native C++ Qpid Messaging client. The Qpid .NET
> binding is attractive as the hook for tying in Qpid as an NMS provider.
> The proposed NMS provider supports [AMQP
> 1.0|http://qpid.apache.org/amqp.html] by including [Qpid
> Proton|http://qpid.apache.org/proton/index.html] libraries.
> From a high level this addition to Active.NMS would consist of two parts
> * Add Qpid as a vendor kit. This includes both the Qpid .NET Binding and Qpid
> Proton in a single kit.
> * Add the new provider with code linking NMS to Qpid
--
This message was sent by Atlassian JIRA
(v6.2#6252)