[ 
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)

Reply via email to